diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-01-23 21:50:55 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-02-24 07:41:58 +0000 |
commit | 861d47845f248be085e784dc5ab4221e078f8100 (patch) | |
tree | 443d35d5bf350bdfc2330d71909e0de288dc1a3f | |
parent | ed0639829323e813d5ca2c5edb4d8fe17eb04fd2 (diff) | |
download | src-861d47845f248be085e784dc5ab4221e078f8100.tar.gz src-861d47845f248be085e784dc5ab4221e078f8100.zip |
ffs_syncvnode: only clear IN_NEEDSYNC after successfull sync
(cherry picked from commit 1de1e2bfbf3c089418bbe67c096d60315c8ca5dd)
-rw-r--r-- | sys/ufs/ffs/ffs_vnops.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 68985d8715f3..be2653e32adc 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -257,7 +257,6 @@ ffs_syncvnode(struct vnode *vp, int waitfor, int flags) bool still_dirty, unlocked, wait; ip = VTOI(vp); - ip->i_flag &= ~IN_NEEDSYNC; bo = &vp->v_bufobj; ump = VFSTOUFS(vp->v_mount); @@ -445,6 +444,8 @@ next: } if (error == 0 && unlocked) error = ERELOOKUP; + if (error == 0) + ip->i_flag &= ~IN_NEEDSYNC; return (error); } |