aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ext4/mballoc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index fd2294de404c..05d9f81956c6 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4541,7 +4541,7 @@ ext4_fsblk_t ext4_mb_new_blocks(handle_t *handle,
4541 } 4541 }
4542 if (ar->len == 0) { 4542 if (ar->len == 0) {
4543 *errp = -EDQUOT; 4543 *errp = -EDQUOT;
4544 return 0; 4544 goto out3;
4545 } 4545 }
4546 inquota = ar->len; 4546 inquota = ar->len;
4547 4547
@@ -4614,6 +4614,13 @@ out2:
4614out1: 4614out1:
4615 if (ar->len < inquota) 4615 if (ar->len < inquota)
4616 DQUOT_FREE_BLOCK(ar->inode, inquota - ar->len); 4616 DQUOT_FREE_BLOCK(ar->inode, inquota - ar->len);
4617out3:
4618 if (!ar->len) {
4619 if (!EXT4_I(ar->inode)->i_delalloc_reserved_flag)
4620 /* release all the reserved blocks if non delalloc */
4621 percpu_counter_sub(&sbi->s_dirtyblocks_counter,
4622 reserv_blks);
4623 }
4617 4624
4618 return block; 4625 return block;
4619} 4626}