Page MenuHomeFreeBSD

D22008.id.diff
No OneTemporary

D22008.id.diff

Index: head/sys/kern/vfs_subr.c
===================================================================
--- head/sys/kern/vfs_subr.c
+++ head/sys/kern/vfs_subr.c
@@ -4395,8 +4395,6 @@
CTR2(KTR_VFS, "%s: mp %p", __func__, mp);
- vnlru_return_batch(mp);
-
MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) {
obj = vp->v_object;
if (obj != NULL && (obj->flags & OBJ_MIGHTBEDIRTY) != 0 &&
@@ -4628,6 +4626,11 @@
return (0);
}
save = curthread_pflags_set(TDP_SYNCIO);
+ /*
+ * The filesystem at hand may be idle with free vnodes stored in the
+ * batch. Return them instead of letting them stay there indefinitely.
+ */
+ vnlru_return_batch(mp);
vfs_msync(mp, MNT_NOWAIT);
error = VFS_SYNC(mp, MNT_LAZY);
curthread_pflags_restore(save);

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 8, 7:13 AM (15 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31084854
Default Alt Text
D22008.id.diff (747 B)

Event Timeline