Page MenuHomeFreeBSD
Authored By
mckusick
Jan 7 2020, 12:05 AM
Size
1 KB
Referenced Files
None
Subscribers
None
Index: sys/ufs/ffs/ffs_vfsops.c
===================================================================
--- sys/ufs/ffs/ffs_vfsops.c (revision 356063)
+++ sys/ufs/ffs/ffs_vfsops.c (working copy)
@@ -1463,8 +1463,12 @@ ffs_sync_lazy(mp)
allerror = 0;
td = curthread;
- if ((mp->mnt_flag & MNT_NOATIME) != 0)
- goto qupdate;
+ if ((mp->mnt_flag & MNT_NOATIME) != 0) {
+#ifdef QUOTA
+ qsync(mp);
+#endif
+ goto sbupdate;
+ }
MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) {
if (vp->v_type == VNON) {
VI_UNLOCK(vp);
@@ -1486,6 +1490,9 @@ ffs_sync_lazy(mp)
if ((error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK,
td)) != 0)
continue;
+#ifdef QUOTA
+ qsyncvp(vp);
+#endif
if (sync_doupdate(ip))
error = ffs_update(vp, 0);
if (error != 0)
@@ -1493,11 +1500,7 @@ ffs_sync_lazy(mp)
vput(vp);
}
-qupdate:
-#ifdef QUOTA
- qsync(mp);
-#endif
-
+sbupdate:
if (VFSTOUFS(mp)->um_fs->fs_fmod != 0 &&
(error = ffs_sbupdate(VFSTOUFS(mp), MNT_LAZY, 0)) != 0)
allerror = error;
@@ -1590,6 +1593,9 @@ loop:
}
continue;
}
+#ifdef QUOTA
+ qsyncvp(vp);
+#endif
if ((error = ffs_syncvnode(vp, waitfor, 0)) != 0)
allerror = error;
vput(vp);
@@ -1604,9 +1610,6 @@ loop:
if (allerror == 0 && count)
goto loop;
}
-#ifdef QUOTA
- qsync(mp);
-#endif
devvp = ump->um_devvp;
bo = &devvp->v_bufobj;

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2478861
Default Alt Text
diffs (1 KB)

Event Timeline