diff options
Diffstat (limited to 'fs/ext2/inode.c')
| -rw-r--r-- | fs/ext2/inode.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index fc13cc119aad..527c46d9bc1f 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c @@ -22,7 +22,6 @@   *  Assorted race fixes, rewrite of ext2_get_block() by Al Viro, 2000   */ -#include <linux/smp_lock.h>  #include <linux/time.h>  #include <linux/highuid.h>  #include <linux/pagemap.h> @@ -1406,11 +1405,11 @@ static int __ext2_write_inode(struct inode *inode, int do_sync)  			       /* If this is the first large file  				* created, add a flag to the superblock.  				*/ -				lock_kernel(); +				spin_lock(&EXT2_SB(sb)->s_lock);  				ext2_update_dynamic_rev(sb);  				EXT2_SET_RO_COMPAT_FEATURE(sb,  					EXT2_FEATURE_RO_COMPAT_LARGE_FILE); -				unlock_kernel(); +				spin_unlock(&EXT2_SB(sb)->s_lock);  				ext2_write_super(sb);  			}  		} @@ -1467,7 +1466,7 @@ int ext2_setattr(struct dentry *dentry, struct iattr *iattr)  	if (error)  		return error; -	if (iattr->ia_valid & ATTR_SIZE) +	if (is_quota_modification(inode, iattr))  		dquot_initialize(inode);  	if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||  	    (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { | 
