diff options
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 436b4223df66..1867a98e0c49 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -4758,7 +4758,6 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type, | |||
4758 | return -EIO; | 4758 | return -EIO; |
4759 | } | 4759 | } |
4760 | 4760 | ||
4761 | mutex_lock_nested(&inode->i_mutex, I_MUTEX_QUOTA); | ||
4762 | bh = ext4_bread(handle, inode, blk, 1, &err); | 4761 | bh = ext4_bread(handle, inode, blk, 1, &err); |
4763 | if (!bh) | 4762 | if (!bh) |
4764 | goto out; | 4763 | goto out; |
@@ -4774,16 +4773,13 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type, | |||
4774 | err = ext4_handle_dirty_metadata(handle, NULL, bh); | 4773 | err = ext4_handle_dirty_metadata(handle, NULL, bh); |
4775 | brelse(bh); | 4774 | brelse(bh); |
4776 | out: | 4775 | out: |
4777 | if (err) { | 4776 | if (err) |
4778 | mutex_unlock(&inode->i_mutex); | ||
4779 | return err; | 4777 | return err; |
4780 | } | ||
4781 | if (inode->i_size < off + len) { | 4778 | if (inode->i_size < off + len) { |
4782 | i_size_write(inode, off + len); | 4779 | i_size_write(inode, off + len); |
4783 | EXT4_I(inode)->i_disksize = inode->i_size; | 4780 | EXT4_I(inode)->i_disksize = inode->i_size; |
4784 | ext4_mark_inode_dirty(handle, inode); | 4781 | ext4_mark_inode_dirty(handle, inode); |
4785 | } | 4782 | } |
4786 | mutex_unlock(&inode->i_mutex); | ||
4787 | return len; | 4783 | return len; |
4788 | } | 4784 | } |
4789 | 4785 | ||