git: f8272ff1d26b - releng/13.0 - ufs_inactive(): stop hiding ERELOOKUP from ffs_truncate(), return it.
Konstantin Belousov
kib at FreeBSD.org
Thu Feb 25 20:52:36 UTC 2021
The branch releng/13.0 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=f8272ff1d26b2fa6936a2ef294e494e43429f973
commit f8272ff1d26b2fa6936a2ef294e494e43429f973
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-01-30 19:18:22 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-02-25 20:50:00 +0000
ufs_inactive(): stop hiding ERELOOKUP from ffs_truncate(), return it.
Approved by: re (delphij, gjb)
(cherry picked from commit 013168db8cea926c3dde1247d400d6bedf9a889d)
---
sys/ufs/ffs/ffs_softdep.c | 9 +++++----
sys/ufs/ufs/ufs_inode.c | 2 --
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 3cc76f9142c3..8c3ae9dd95fc 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -1493,13 +1493,14 @@ get_parent_vp(struct vnode *vp, struct mount *mp, ino_t inum, struct buf *bp,
}
/*
- * Do not drop vnode lock while inactivating. This
- * would result in leaks of the VI flags and
- * reclaiming of non-truncated vnode. Instead,
+ * Do not drop vnode lock while inactivating during
+ * vunref. This would result in leaks of the VI flags
+ * and reclaiming of non-truncated vnode. Instead,
* re-schedule inactivation hoping that we would be
* able to sync inode later.
*/
- if ((vp->v_iflag & VI_DOINGINACT) != 0) {
+ if ((vp->v_iflag & VI_DOINGINACT) != 0 &&
+ (vp->v_vflag & VV_UNREF) != 0) {
VI_LOCK(vp);
vp->v_iflag |= VI_OWEINACT;
VI_UNLOCK(vp);
diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c
index 15bd8be448a9..46e4f8e54e41 100644
--- a/sys/ufs/ufs/ufs_inode.c
+++ b/sys/ufs/ufs/ufs_inode.c
@@ -212,8 +212,6 @@ out:
vrecycle(vp);
if (mp != NULL)
vn_finished_secondary_write(mp);
- if (error == ERELOOKUP)
- error = 0;
return (error);
}
More information about the dev-commits-src-all
mailing list