I'm not sure why I used igrab() in unlink().  igrab takes the oft-taken
inode_lock.

The caller has a ref, so a simple increment of i_count will suffice.


 fs/namei.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN fs/namei.c~unlink-speedup-speedup fs/namei.c
--- 25/fs/namei.c~unlink-speedup-speedup	2003-05-26 18:03:08.000000000 -0700
+++ 25-akpm/fs/namei.c	2003-05-26 18:03:52.000000000 -0700
@@ -1693,7 +1693,7 @@ asmlinkage long sys_unlink(const char __
 			goto slashes;
 		inode = dentry->d_inode;
 		if (inode)
-			inode = igrab(inode);
+			atomic_inc(&inode->i_count);
 		error = vfs_unlink(nd.dentry->d_inode, dentry);
 	exit2:
 		dput(dentry);

_