aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-01-23 21:50:55 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-02-24 07:41:58 +0000
commit861d47845f248be085e784dc5ab4221e078f8100 (patch)
tree443d35d5bf350bdfc2330d71909e0de288dc1a3f
parented0639829323e813d5ca2c5edb4d8fe17eb04fd2 (diff)
downloadsrc-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.c3
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);
}