diff --git a/[refs] b/[refs] index 5f6390895855..7c6b266d476a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 55138e0bc29c0751e2152df9ad35deea542f29b3 +refs/heads/master: 9f0ccfd8e07d61b413e6536ffa02fbf60d2e20d8 diff --git a/trunk/fs/ext4/inode.c b/trunk/fs/ext4/inode.c index 20e2d704dc2e..219067ce09d9 100644 --- a/trunk/fs/ext4/inode.c +++ b/trunk/fs/ext4/inode.c @@ -1854,11 +1854,11 @@ static int ext4_da_reserve_space(struct inode *inode, int nrblocks) if (ext4_claim_free_blocks(sbi, total)) { spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); + vfs_dq_release_reservation_block(inode, total); if (ext4_should_retry_alloc(inode->i_sb, &retries)) { yield(); goto repeat; } - vfs_dq_release_reservation_block(inode, total); return -ENOSPC; } EXT4_I(inode)->i_reserved_data_blocks += nrblocks;