mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
Btrfs: don't commit the transaction if we dont have enough pinned bytes
I noticed when running an enospc test that we would get stuck committing the transaction in check_data_space even though we truly didn't have enough space. So check to see if bytes_pinned is bigger than num_bytes, if it's not don't commit the transaction. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com>
This commit is contained in:
parent
3de85bb95c
commit
f2bb8f5cfb
1 changed files with 7 additions and 0 deletions
|
@ -3089,6 +3089,13 @@ int btrfs_check_data_free_space(struct inode *inode, u64 bytes)
|
|||
}
|
||||
goto again;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we have less pinned bytes than we want to allocate then
|
||||
* don't bother committing the transaction, it won't help us.
|
||||
*/
|
||||
if (data_sinfo->bytes_pinned < bytes)
|
||||
committed = 1;
|
||||
spin_unlock(&data_sinfo->lock);
|
||||
|
||||
/* commit the current transaction and try again */
|
||||
|
|
Loading…
Reference in a new issue