`attr' is on the stack, and the inode's contents can change as soon as we return from inode_change_ok() anyway. I can't see anything which is actually being locked in there. fs/attr.c | 3 --- 1 files changed, 3 deletions(-) diff -puN fs/attr.c~inode_change_ok-remove-lock_kernel fs/attr.c --- 25/fs/attr.c~inode_change_ok-remove-lock_kernel 2003-06-28 02:04:29.000000000 -0700 +++ 25-akpm/fs/attr.c 2003-06-28 02:04:29.000000000 -0700 @@ -22,8 +22,6 @@ int inode_change_ok(struct inode *inode, int retval = -EPERM; unsigned int ia_valid = attr->ia_valid; - lock_kernel(); - /* If force is set do it anyway. */ if (ia_valid & ATTR_FORCE) goto fine; @@ -58,7 +56,6 @@ int inode_change_ok(struct inode *inode, fine: retval = 0; error: - unlock_kernel(); return retval; } _