diff options
author | Kazuya Mio <k-mio@sx.jp.nec.com> | 2012-01-30 17:41:25 +0900 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2012-02-29 21:53:46 +0100 |
commit | 053800a84b942511054b51299db4430b3d1b06bc (patch) | |
tree | 8fd6dad627d82b8db442bf15f3c15a2e0f8d2927 /fs/ext3 | |
parent | 75b09e022fc22d675c726c94b1b73f5d08dafdf6 (diff) | |
download | op-kernel-dev-053800a84b942511054b51299db4430b3d1b06bc.zip op-kernel-dev-053800a84b942511054b51299db4430b3d1b06bc.tar.gz |
ext3: Don't call dquot_free_block() if we don't update anything
dquot_free_block() is called in the end of ext3_new_blocks() and updates
information of the inode structure. However, this update is not necessary
if the number of blocks we requested is equal to the number of
allocated blocks.
Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/ext3')
-rw-r--r-- | fs/ext3/balloc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c index a203892..954a7d3 100644 --- a/fs/ext3/balloc.c +++ b/fs/ext3/balloc.c @@ -1743,8 +1743,11 @@ allocated: *errp = 0; brelse(bitmap_bh); - dquot_free_block(inode, *count-num); - *count = num; + + if (num < *count) { + dquot_free_block(inode, *count-num); + *count = num; + } trace_ext3_allocate_blocks(inode, goal, num, (unsigned long long)ret_block); |