optimization from Noemi Paciorek <noemi@osf.org>
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 9 Feb 1990 05:23:05 +0000 (21:23 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 9 Feb 1990 05:23:05 +0000 (21:23 -0800)
SCCS-vsn: sys/ufs/ffs/ffs_inode.c 7.28
SCCS-vsn: sys/ufs/ffs/ufs_inode.c 7.28
SCCS-vsn: sys/ufs/lfs/lfs_inode.c 7.28
SCCS-vsn: sys/ufs/ufs/ufs_inode.c 7.28

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 774bbea..9d95429 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.27 (Berkeley) %G%
+ *     @(#)ffs_inode.c 7.28 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -255,20 +255,15 @@ ufs_inactive(vp)
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
+       IUNLOCK(ip);
+       ip->i_flag = 0;
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
-       if (vp->v_usecount == 0 && ip->i_mode == 0) {
-               vinvalbuf(vp, 0);
-               IUNLOCK(ip);
-               ip->i_flag = 0;
-               if ((vp->v_flag & VXLOCK) == 0)
-                       vgone(vp);
-               return (error);
-       }
-       IUNLOCK(ip);
-       ip->i_flag = 0;
+       if (vp->v_usecount == 0 && ip->i_mode == 0 &&
+           (vp->v_flag & VXLOCK) == 0)
+               vgone(vp);
        return (error);
 }
 
        return (error);
 }
 
index bef7999..7073900 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.27 (Berkeley) %G%
+ *     @(#)ufs_inode.c 7.28 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -255,20 +255,15 @@ ufs_inactive(vp)
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
+       IUNLOCK(ip);
+       ip->i_flag = 0;
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
-       if (vp->v_usecount == 0 && ip->i_mode == 0) {
-               vinvalbuf(vp, 0);
-               IUNLOCK(ip);
-               ip->i_flag = 0;
-               if ((vp->v_flag & VXLOCK) == 0)
-                       vgone(vp);
-               return (error);
-       }
-       IUNLOCK(ip);
-       ip->i_flag = 0;
+       if (vp->v_usecount == 0 && ip->i_mode == 0 &&
+           (vp->v_flag & VXLOCK) == 0)
+               vgone(vp);
        return (error);
 }
 
        return (error);
 }
 
index 38a232e..06f8bc5 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.27 (Berkeley) %G%
+ *     @(#)lfs_inode.c 7.28 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -255,20 +255,15 @@ ufs_inactive(vp)
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
+       IUNLOCK(ip);
+       ip->i_flag = 0;
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
-       if (vp->v_usecount == 0 && ip->i_mode == 0) {
-               vinvalbuf(vp, 0);
-               IUNLOCK(ip);
-               ip->i_flag = 0;
-               if ((vp->v_flag & VXLOCK) == 0)
-                       vgone(vp);
-               return (error);
-       }
-       IUNLOCK(ip);
-       ip->i_flag = 0;
+       if (vp->v_usecount == 0 && ip->i_mode == 0 &&
+           (vp->v_flag & VXLOCK) == 0)
+               vgone(vp);
        return (error);
 }
 
        return (error);
 }
 
index bef7999..7073900 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.27 (Berkeley) %G%
+ *     @(#)ufs_inode.c 7.28 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -255,20 +255,15 @@ ufs_inactive(vp)
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
 #endif
        }
        IUPDAT(ip, &time, &time, 0);
+       IUNLOCK(ip);
+       ip->i_flag = 0;
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
        /*
         * If we are done with the inode, reclaim it
         * so that it can be reused immediately.
         */
-       if (vp->v_usecount == 0 && ip->i_mode == 0) {
-               vinvalbuf(vp, 0);
-               IUNLOCK(ip);
-               ip->i_flag = 0;
-               if ((vp->v_flag & VXLOCK) == 0)
-                       vgone(vp);
-               return (error);
-       }
-       IUNLOCK(ip);
-       ip->i_flag = 0;
+       if (vp->v_usecount == 0 && ip->i_mode == 0 &&
+           (vp->v_flag & VXLOCK) == 0)
+               vgone(vp);
        return (error);
 }
 
        return (error);
 }