diff options
Diffstat (limited to 'fs/ext4/inode.c')
-rw-r--r-- | fs/ext4/inode.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index b6fa0c4087e9..b778d5a33ea7 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -1537,13 +1537,10 @@ static int ext4_da_reserve_space(struct inode *inode, int nrblocks) | |||
1537 | md_needed = mdblocks - EXT4_I(inode)->i_reserved_meta_blocks; | 1537 | md_needed = mdblocks - EXT4_I(inode)->i_reserved_meta_blocks; |
1538 | total = md_needed + nrblocks; | 1538 | total = md_needed + nrblocks; |
1539 | 1539 | ||
1540 | if (ext4_has_free_blocks(sbi, total) < total) { | 1540 | if (ext4_claim_free_blocks(sbi, total)) { |
1541 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | 1541 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); |
1542 | return -ENOSPC; | 1542 | return -ENOSPC; |
1543 | } | 1543 | } |
1544 | /* reduce fs free blocks counter */ | ||
1545 | percpu_counter_sub(&sbi->s_freeblocks_counter, total); | ||
1546 | |||
1547 | EXT4_I(inode)->i_reserved_data_blocks += nrblocks; | 1544 | EXT4_I(inode)->i_reserved_data_blocks += nrblocks; |
1548 | EXT4_I(inode)->i_reserved_meta_blocks = mdblocks; | 1545 | EXT4_I(inode)->i_reserved_meta_blocks = mdblocks; |
1549 | 1546 | ||