From 7359b0266afabb5b2f1838c9840b92f1cdfa0df0 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Fri, 16 Feb 1990 19:28:16 -0800 Subject: [PATCH] may be crossing a mount point, so must be generic SCCS-vsn: sys/ufs/ffs/ffs_vnops.c 7.30 SCCS-vsn: sys/ufs/ffs/ufs_vnops.c 7.30 SCCS-vsn: sys/ufs/lfs/lfs_vnops.c 7.30 SCCS-vsn: sys/ufs/ufs/ufs_vnops.c 7.30 --- usr/src/sys/ufs/ffs/ffs_vnops.c | 19 ++++++++----------- usr/src/sys/ufs/ffs/ufs_vnops.c | 19 ++++++++----------- usr/src/sys/ufs/lfs/lfs_vnops.c | 19 ++++++++----------- usr/src/sys/ufs/ufs/ufs_vnops.c | 19 ++++++++----------- 4 files changed, 32 insertions(+), 44 deletions(-) diff --git a/usr/src/sys/ufs/ffs/ffs_vnops.c b/usr/src/sys/ufs/ffs/ffs_vnops.c index b20c9e1571..ea08e92f15 100644 --- a/usr/src/sys/ufs/ffs/ffs_vnops.c +++ b/usr/src/sys/ufs/ffs/ffs_vnops.c @@ -14,7 +14,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#)ffs_vnops.c 7.29 (Berkeley) %G% + * @(#)ffs_vnops.c 7.30 (Berkeley) %G% */ #include "param.h" @@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred) ufs_abortop(ndp) register struct nameidata *ndp; { - register struct inode *ip; - if (ndp->ni_vp) { - ip = VTOI(ndp->ni_vp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); - vrele(ndp->ni_vp); - } if (ndp->ni_dvp) { - ip = VTOI(ndp->ni_dvp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); + if (VOP_ISLOCKED(ndp->ni_dvp)) + VOP_UNLOCK(ndp->ni_dvp); vrele(ndp->ni_dvp); } + if (ndp->ni_vp) { + if (VOP_ISLOCKED(ndp->ni_vp)) + VOP_UNLOCK(ndp->ni_vp); + vrele(ndp->ni_vp); + } return; } diff --git a/usr/src/sys/ufs/ffs/ufs_vnops.c b/usr/src/sys/ufs/ffs/ufs_vnops.c index 1eeafb2381..a3b9eda2f9 100644 --- a/usr/src/sys/ufs/ffs/ufs_vnops.c +++ b/usr/src/sys/ufs/ffs/ufs_vnops.c @@ -14,7 +14,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#)ufs_vnops.c 7.29 (Berkeley) %G% + * @(#)ufs_vnops.c 7.30 (Berkeley) %G% */ #include "param.h" @@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred) ufs_abortop(ndp) register struct nameidata *ndp; { - register struct inode *ip; - if (ndp->ni_vp) { - ip = VTOI(ndp->ni_vp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); - vrele(ndp->ni_vp); - } if (ndp->ni_dvp) { - ip = VTOI(ndp->ni_dvp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); + if (VOP_ISLOCKED(ndp->ni_dvp)) + VOP_UNLOCK(ndp->ni_dvp); vrele(ndp->ni_dvp); } + if (ndp->ni_vp) { + if (VOP_ISLOCKED(ndp->ni_vp)) + VOP_UNLOCK(ndp->ni_vp); + vrele(ndp->ni_vp); + } return; } diff --git a/usr/src/sys/ufs/lfs/lfs_vnops.c b/usr/src/sys/ufs/lfs/lfs_vnops.c index 26c6af950a..dba4024c92 100644 --- a/usr/src/sys/ufs/lfs/lfs_vnops.c +++ b/usr/src/sys/ufs/lfs/lfs_vnops.c @@ -14,7 +14,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#)lfs_vnops.c 7.29 (Berkeley) %G% + * @(#)lfs_vnops.c 7.30 (Berkeley) %G% */ #include "param.h" @@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred) ufs_abortop(ndp) register struct nameidata *ndp; { - register struct inode *ip; - if (ndp->ni_vp) { - ip = VTOI(ndp->ni_vp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); - vrele(ndp->ni_vp); - } if (ndp->ni_dvp) { - ip = VTOI(ndp->ni_dvp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); + if (VOP_ISLOCKED(ndp->ni_dvp)) + VOP_UNLOCK(ndp->ni_dvp); vrele(ndp->ni_dvp); } + if (ndp->ni_vp) { + if (VOP_ISLOCKED(ndp->ni_vp)) + VOP_UNLOCK(ndp->ni_vp); + vrele(ndp->ni_vp); + } return; } diff --git a/usr/src/sys/ufs/ufs/ufs_vnops.c b/usr/src/sys/ufs/ufs/ufs_vnops.c index 1eeafb2381..a3b9eda2f9 100644 --- a/usr/src/sys/ufs/ufs/ufs_vnops.c +++ b/usr/src/sys/ufs/ufs/ufs_vnops.c @@ -14,7 +14,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#)ufs_vnops.c 7.29 (Berkeley) %G% + * @(#)ufs_vnops.c 7.30 (Berkeley) %G% */ #include "param.h" @@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred) ufs_abortop(ndp) register struct nameidata *ndp; { - register struct inode *ip; - if (ndp->ni_vp) { - ip = VTOI(ndp->ni_vp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); - vrele(ndp->ni_vp); - } if (ndp->ni_dvp) { - ip = VTOI(ndp->ni_dvp); - if (ip->i_flag & ILOCKED) - IUNLOCK(ip); + if (VOP_ISLOCKED(ndp->ni_dvp)) + VOP_UNLOCK(ndp->ni_dvp); vrele(ndp->ni_dvp); } + if (ndp->ni_vp) { + if (VOP_ISLOCKED(ndp->ni_vp)) + VOP_UNLOCK(ndp->ni_vp); + vrele(ndp->ni_vp); + } return; } -- 2.20.1