[patch] remove BKL from inode_setattr

From: Andrew Morton (akpm@digeo.com)
Date: Mon Oct 14 2002 - 00:02:14 EST


Since April 05 of this year we've been holding the BKL across the
vmtruncate call out of inode_setattr(). By accident it seems.

This does not affect unlink(). It affects ftruncate() and open(O_TRUNC).

Given that the drop_inode() path does not take the BKL, I would
suggest that it is safe to assume that the various filesystem's
truncate code is safe without this additional VFS-level lock_kernel(),
and that it can be simply removed.

Sound sane?

--- 2.5.42/fs/attr.c~truncate-bkl Sun Oct 13 20:04:06 2002
+++ 2.5.42-akpm/fs/attr.c Sun Oct 13 22:01:15 2002
@@ -67,7 +67,6 @@ int inode_setattr(struct inode * inode,
         unsigned int ia_valid = attr->ia_valid;
         int error = 0;
         
- lock_kernel();
         if (ia_valid & ATTR_SIZE) {
                 error = vmtruncate(inode, attr->ia_size);
                 if (error)
@@ -91,7 +90,6 @@ int inode_setattr(struct inode * inode,
         }
         mark_inode_dirty(inode);
 out:
- unlock_kernel();
         return error;
 }
 

.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:48 EST