From d11dbec7cec0ddb7ec59274cb990fad8e3149611 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Thu, 8 Feb 1990 21:23:05 -0800 Subject: [PATCH] optimization from Noemi Paciorek 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 | 17 ++++++----------- usr/src/sys/ufs/ffs/ufs_inode.c | 17 ++++++----------- usr/src/sys/ufs/lfs/lfs_inode.c | 17 ++++++----------- usr/src/sys/ufs/ufs/ufs_inode.c | 17 ++++++----------- 4 files changed, 24 insertions(+), 44 deletions(-) diff --git a/usr/src/sys/ufs/ffs/ffs_inode.c b/usr/src/sys/ufs/ffs/ffs_inode.c index 774bbeacc6..9d9542985b 100644 --- a/usr/src/sys/ufs/ffs/ffs_inode.c +++ b/usr/src/sys/ufs/ffs/ffs_inode.c @@ -14,7 +14,7 @@ * 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" @@ -255,20 +255,15 @@ ufs_inactive(vp) #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 (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); } diff --git a/usr/src/sys/ufs/ffs/ufs_inode.c b/usr/src/sys/ufs/ffs/ufs_inode.c index bef7999b29..7073900419 100644 --- a/usr/src/sys/ufs/ffs/ufs_inode.c +++ b/usr/src/sys/ufs/ffs/ufs_inode.c @@ -14,7 +14,7 @@ * 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" @@ -255,20 +255,15 @@ ufs_inactive(vp) #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 (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); } diff --git a/usr/src/sys/ufs/lfs/lfs_inode.c b/usr/src/sys/ufs/lfs/lfs_inode.c index 38a232eddd..06f8bc5253 100644 --- a/usr/src/sys/ufs/lfs/lfs_inode.c +++ b/usr/src/sys/ufs/lfs/lfs_inode.c @@ -14,7 +14,7 @@ * 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" @@ -255,20 +255,15 @@ ufs_inactive(vp) #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 (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); } diff --git a/usr/src/sys/ufs/ufs/ufs_inode.c b/usr/src/sys/ufs/ufs/ufs_inode.c index bef7999b29..7073900419 100644 --- a/usr/src/sys/ufs/ufs/ufs_inode.c +++ b/usr/src/sys/ufs/ufs/ufs_inode.c @@ -14,7 +14,7 @@ * 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" @@ -255,20 +255,15 @@ ufs_inactive(vp) #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 (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); } -- 2.20.1