summaryrefslogtreecommitdiff
path: root/fs/ext3
diff options
context:
space:
mode:
authorKazuya Mio <k-mio@sx.jp.nec.com>2012-01-30 12:41:25 +0400
committerJan Kara <jack@suse.cz>2012-03-01 00:53:46 +0400
commit053800a84b942511054b51299db4430b3d1b06bc (patch)
tree8fd6dad627d82b8db442bf15f3c15a2e0f8d2927 /fs/ext3
parent75b09e022fc22d675c726c94b1b73f5d08dafdf6 (diff)
downloadlinux-053800a84b942511054b51299db4430b3d1b06bc.tar.xz
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.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
index a2038928f9a3..954a7d355f59 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);