summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuya Mio <k-mio@sx.jp.nec.com>2012-01-30 09:41:25 +0100
committerJan Kara <jack@suse.cz>2012-02-29 21:53:46 +0100
commit053800a84b942511054b51299db4430b3d1b06bc (patch)
tree8fd6dad627d82b8db442bf15f3c15a2e0f8d2927
parentudf: Remove unnecessary OOM messages (diff)
downloadlinux-053800a84b942511054b51299db4430b3d1b06bc.tar.xz
linux-053800a84b942511054b51299db4430b3d1b06bc.zip
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>
-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);