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:
Родитель
3de85bb95c
Коммит
f2bb8f5cfb
|
@ -3089,6 +3089,13 @@ alloc:
|
|||
}
|
||||
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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче