git: 7c2d965ca8e7 - stable/13 - ufs: be more persistent with finishing some operations
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 07 Feb 2022 09:50:55 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=7c2d965ca8e7736689755fea521313610aeef4c3 commit 7c2d965ca8e7736689755fea521313610aeef4c3 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2022-01-18 01:49:36 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2022-02-07 09:38:50 +0000 ufs: be more persistent with finishing some operations (cherry picked from commit 8d8589b385c901581ee71d09d86d044a6f42dfef) --- sys/ufs/ffs/ffs_inode.c | 2 +- sys/ufs/ffs/ffs_softdep.c | 2 +- sys/ufs/ffs/ffs_vnops.c | 2 +- sys/ufs/ufs/inode.h | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c index 4b2b2989fb81..3c1903fcbae6 100644 --- a/sys/ufs/ffs/ffs_inode.c +++ b/sys/ufs/ffs/ffs_inode.c @@ -179,7 +179,7 @@ loop: pause("ffsupd", 1); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); vrele(vp); - if (VN_IS_DOOMED(vp)) + if (!IS_UFS(vp)) return (ENOENT); /* diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 8bc5e409cf04..37709b605fbd 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -13774,7 +13774,7 @@ softdep_request_cleanup_inactivate(struct mount *mp) vholdl(vp); vn_lock(vp, LK_EXCLUSIVE | LK_INTERLOCK | LK_RETRY); VI_LOCK(vp); - if (vp->v_data != NULL && vp->v_usecount == 0) { + if (IS_UFS(vp) && vp->v_usecount == 0) { while ((vp->v_iflag & VI_OWEINACT) != 0) { error = vinactive(vp); if (error != 0 && error != ERELOOKUP) diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index ceea2237c94e..a33699515bc2 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -2066,7 +2066,7 @@ ffs_vput_pair(struct vop_vput_pair_args *ap) * and respond to dead vnodes by returning ESTALE. */ VOP_LOCK(vp, vp_locked | LK_RETRY); - if (!VN_IS_DOOMED(vp)) + if (IS_UFS(vp)) return (0); /* diff --git a/sys/ufs/ufs/inode.h b/sys/ufs/ufs/inode.h index 2ff619b4eac0..3e555dc52a32 100644 --- a/sys/ufs/ufs/inode.h +++ b/sys/ufs/ufs/inode.h @@ -245,6 +245,7 @@ I_IS_UFS2(const struct inode *ip) #define SHORTLINK(ip) (I_IS_UFS1(ip) ? \ (caddr_t)(ip)->i_din1->di_db : (caddr_t)(ip)->i_din2->di_db) #define IS_SNAPSHOT(ip) ((ip)->i_flags & SF_SNAPSHOT) +#define IS_UFS(vp) ((vp)->v_data != NULL) /* * Structure used to pass around logical block paths generated by