may be crossing a mount point, so must be generic
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 17 Feb 1990 03:28:16 +0000 (19:28 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 17 Feb 1990 03:28:16 +0000 (19:28 -0800)
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
usr/src/sys/ufs/ffs/ufs_vnops.c
usr/src/sys/ufs/lfs/lfs_vnops.c
usr/src/sys/ufs/ufs/ufs_vnops.c

index b20c9e1..ea08e92 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * 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"
  */
 
 #include "param.h"
@@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred)
 ufs_abortop(ndp)
        register struct nameidata *ndp;
 {
 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) {
        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);
        }
                vrele(ndp->ni_dvp);
        }
+       if (ndp->ni_vp) {
+               if (VOP_ISLOCKED(ndp->ni_vp))
+                       VOP_UNLOCK(ndp->ni_vp);
+               vrele(ndp->ni_vp);
+       }
        return;
 }
 
        return;
 }
 
index 1eeafb2..a3b9eda 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * 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"
  */
 
 #include "param.h"
@@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred)
 ufs_abortop(ndp)
        register struct nameidata *ndp;
 {
 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) {
        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);
        }
                vrele(ndp->ni_dvp);
        }
+       if (ndp->ni_vp) {
+               if (VOP_ISLOCKED(ndp->ni_vp))
+                       VOP_UNLOCK(ndp->ni_vp);
+               vrele(ndp->ni_vp);
+       }
        return;
 }
 
        return;
 }
 
index 26c6af9..dba4024 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * 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"
  */
 
 #include "param.h"
@@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred)
 ufs_abortop(ndp)
        register struct nameidata *ndp;
 {
 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) {
        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);
        }
                vrele(ndp->ni_dvp);
        }
+       if (ndp->ni_vp) {
+               if (VOP_ISLOCKED(ndp->ni_vp))
+                       VOP_UNLOCK(ndp->ni_vp);
+               vrele(ndp->ni_vp);
+       }
        return;
 }
 
        return;
 }
 
index 1eeafb2..a3b9eda 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * 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"
  */
 
 #include "param.h"
@@ -1233,20 +1233,17 @@ ufs_readlink(vp, uiop, cred)
 ufs_abortop(ndp)
        register struct nameidata *ndp;
 {
 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) {
        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);
        }
                vrele(ndp->ni_dvp);
        }
+       if (ndp->ni_vp) {
+               if (VOP_ISLOCKED(ndp->ni_vp))
+                       VOP_UNLOCK(ndp->ni_vp);
+               vrele(ndp->ni_vp);
+       }
        return;
 }
 
        return;
 }