diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-25 11:14:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-25 11:14:59 -0400 |
commit | ece78b7df734726e790dcab207f463401ff80440 (patch) | |
tree | 4a0b23c28c6a727d5eebc8a88a22fe3720c425fd /fs/reiserfs | |
parent | 07acfc2a9349a8ce45b236c2624dad452001966b (diff) | |
parent | 0324876628a9c7faf8127e20af29373dc6dec876 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull ext2, ext3 and quota fixes from Jan Kara:
"Interesting bits are:
- removal of a special i_mutex locking subclass (I_MUTEX_QUOTA) since
quota code does not need i_mutex anymore in any unusual way.
- backport (from ext4) of a fix of a checkpointing bug (missing cache
flush) that could lead to fs corruption on power failure
The rest are just random small fixes & cleanups."
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
ext2: trivial fix to comment for ext2_free_blocks
ext2: remove the redundant comment for ext2_export_ops
ext3: return 32/64-bit dir name hash according to usage type
quota: Get rid of nested I_MUTEX_QUOTA locking subclass
quota: Use precomputed value of sb_dqopt in dquot_quota_sync
ext2: Remove i_mutex use from ext2_quota_write()
reiserfs: Remove i_mutex use from reiserfs_quota_write()
ext4: Remove i_mutex use from ext4_quota_write()
ext3: Remove i_mutex use from ext3_quota_write()
quota: Fix double lock in add_dquot_ref() with CONFIG_QUOTA_DEBUG
jbd: Write journal superblock with WRITE_FUA after checkpointing
jbd: protect all log tail updates with j_checkpoint_mutex
jbd: Split updating of journal superblock and marking journal empty
ext2: do not register write_super within VFS
ext2: Remove s_dirt handling
ext2: write superblock only once on unmount
ext3: update documentation with barrier=1 default
ext3: remove max_debt in find_group_orlov()
jbd: Refine commit writeout logic
Diffstat (limited to 'fs/reiserfs')
-rw-r--r-- | fs/reiserfs/super.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 8b7616ef06d8..c07b7d709447 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -2270,7 +2270,6 @@ static ssize_t reiserfs_quota_write(struct super_block *sb, int type, | |||
2270 | (unsigned long long)off, (unsigned long long)len); | 2270 | (unsigned long long)off, (unsigned long long)len); |
2271 | return -EIO; | 2271 | return -EIO; |
2272 | } | 2272 | } |
2273 | mutex_lock_nested(&inode->i_mutex, I_MUTEX_QUOTA); | ||
2274 | while (towrite > 0) { | 2273 | while (towrite > 0) { |
2275 | tocopy = sb->s_blocksize - offset < towrite ? | 2274 | tocopy = sb->s_blocksize - offset < towrite ? |
2276 | sb->s_blocksize - offset : towrite; | 2275 | sb->s_blocksize - offset : towrite; |
@@ -2302,16 +2301,13 @@ static ssize_t reiserfs_quota_write(struct super_block *sb, int type, | |||
2302 | blk++; | 2301 | blk++; |
2303 | } | 2302 | } |
2304 | out: | 2303 | out: |
2305 | if (len == towrite) { | 2304 | if (len == towrite) |
2306 | mutex_unlock(&inode->i_mutex); | ||
2307 | return err; | 2305 | return err; |
2308 | } | ||
2309 | if (inode->i_size < off + len - towrite) | 2306 | if (inode->i_size < off + len - towrite) |
2310 | i_size_write(inode, off + len - towrite); | 2307 | i_size_write(inode, off + len - towrite); |
2311 | inode->i_version++; | 2308 | inode->i_version++; |
2312 | inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 2309 | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
2313 | mark_inode_dirty(inode); | 2310 | mark_inode_dirty(inode); |
2314 | mutex_unlock(&inode->i_mutex); | ||
2315 | return len - towrite; | 2311 | return len - towrite; |
2316 | } | 2312 | } |
2317 | 2313 | ||