put in explicit lock and unlock so that locking can be checked
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Wed, 7 Jun 1989 07:50:00 +0000 (23:50 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Wed, 7 Jun 1989 07:50:00 +0000 (23:50 -0800)
SCCS-vsn: sys/ufs/ffs/ffs_inode.c 7.7
SCCS-vsn: sys/ufs/ffs/ufs_inode.c 7.7
SCCS-vsn: sys/ufs/lfs/lfs_inode.c 7.7
SCCS-vsn: sys/ufs/ufs/ufs_inode.c 7.7

usr/src/sys/ufs/ffs/ffs_inode.c
usr/src/sys/ufs/ffs/ufs_inode.c
usr/src/sys/ufs/lfs/lfs_inode.c
usr/src/sys/ufs/ufs/ufs_inode.c

index bae874a..e30deff 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)ffs_inode.c 7.6 (Berkeley) %G%
+ *     @(#)ffs_inode.c 7.7 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -144,7 +144,7 @@ loop:
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
-                       ip->i_flag |= ILOCKED;
+                       ILOCK(ip);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
@@ -170,6 +170,7 @@ loop:
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
+               iunlock(ip);
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
@@ -207,6 +208,7 @@ again:
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
+                       iunlock(ip);
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
@@ -310,7 +312,8 @@ getnewino(dev, ino, ipp)
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
-       ip->i_flag = ILOCKED;
+       ip->i_flag = 0;
+       ILOCK(ip);
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
@@ -372,7 +375,7 @@ igrab(ip)
                ip->i_freeb = NULL;
        }
        vp->v_count++;
                ip->i_freeb = NULL;
        }
        vp->v_count++;
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
 }
 
 /*
 }
 
 /*
@@ -447,7 +450,7 @@ ufs_inactive(vp)
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
index b6a597f..af49155 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)ufs_inode.c 7.6 (Berkeley) %G%
+ *     @(#)ufs_inode.c 7.7 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -144,7 +144,7 @@ loop:
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
-                       ip->i_flag |= ILOCKED;
+                       ILOCK(ip);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
@@ -170,6 +170,7 @@ loop:
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
+               iunlock(ip);
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
@@ -207,6 +208,7 @@ again:
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
+                       iunlock(ip);
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
@@ -310,7 +312,8 @@ getnewino(dev, ino, ipp)
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
-       ip->i_flag = ILOCKED;
+       ip->i_flag = 0;
+       ILOCK(ip);
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
@@ -372,7 +375,7 @@ igrab(ip)
                ip->i_freeb = NULL;
        }
        vp->v_count++;
                ip->i_freeb = NULL;
        }
        vp->v_count++;
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
 }
 
 /*
 }
 
 /*
@@ -447,7 +450,7 @@ ufs_inactive(vp)
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
index 980b726..257339b 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)lfs_inode.c 7.6 (Berkeley) %G%
+ *     @(#)lfs_inode.c 7.7 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -144,7 +144,7 @@ loop:
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
-                       ip->i_flag |= ILOCKED;
+                       ILOCK(ip);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
@@ -170,6 +170,7 @@ loop:
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
+               iunlock(ip);
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
@@ -207,6 +208,7 @@ again:
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
+                       iunlock(ip);
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
@@ -310,7 +312,8 @@ getnewino(dev, ino, ipp)
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
-       ip->i_flag = ILOCKED;
+       ip->i_flag = 0;
+       ILOCK(ip);
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
@@ -372,7 +375,7 @@ igrab(ip)
                ip->i_freeb = NULL;
        }
        vp->v_count++;
                ip->i_freeb = NULL;
        }
        vp->v_count++;
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
 }
 
 /*
 }
 
 /*
@@ -447,7 +450,7 @@ ufs_inactive(vp)
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
index b6a597f..af49155 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)ufs_inode.c 7.6 (Berkeley) %G%
+ *     @(#)ufs_inode.c 7.7 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -144,7 +144,7 @@ loop:
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
                                ip->i_freef = NULL;
                                ip->i_freeb = NULL;
                        }
-                       ip->i_flag |= ILOCKED;
+                       ILOCK(ip);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
                        vp->v_count++;
                        *ipp = ip;
                        return(0);
@@ -170,6 +170,7 @@ loop:
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
                ip->i_back = ip;
                ip->i_number = 0;
                INSFREE(ip);
+               iunlock(ip);
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
                ip->i_flag = 0;
                brelse(bp);
                *ipp = 0;
@@ -207,6 +208,7 @@ again:
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
                        ip->i_back = ip;
                        ip->i_number = 0;
                        INSFREE(ip);
+                       iunlock(ip);
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
                        ip->i_flag = 0;
                        /*
                         * Reinitialize aliased inode.
@@ -310,7 +312,8 @@ getnewino(dev, ino, ipp)
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
                ih = &ihead[INOHASH(dev, ino)];
                insque(ip, ih);
        }
-       ip->i_flag = ILOCKED;
+       ip->i_flag = 0;
+       ILOCK(ip);
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
        ip->i_lastr = 0;
 #endif SECSIZE
        /*
@@ -372,7 +375,7 @@ igrab(ip)
                ip->i_freeb = NULL;
        }
        vp->v_count++;
                ip->i_freeb = NULL;
        }
        vp->v_count++;
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
 }
 
 /*
 }
 
 /*
@@ -447,7 +450,7 @@ ufs_inactive(vp)
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
 
        if (ITOV(ip)->v_count != 0)
                panic("ufs_inactive: not inactive");
-       ip->i_flag |= ILOCKED;
+       ILOCK(ip);
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;
        if (ip->i_nlink <= 0 && (ITOV(ip)->v_mount->m_flag&M_RDONLY) == 0) {
                error = itrunc(ip, (u_long)0);
                mode = ip->i_mode;