Wait for free space again, but count on big_write flushes instead of just flusher activity

This commit is contained in:
Vitaliy Filippov
2023-05-10 01:51:02 +03:00
parent f4c6765522
commit a409598b16
5 changed files with 29 additions and 0 deletions
+7
View File
@@ -271,6 +271,13 @@ int blockstore_impl_t::dequeue_write(blockstore_op_t *op)
if (loc == UINT64_MAX)
{
// no space
if (big_to_flush > 0)
{
// hope that some space will be available after flush
flusher->request_trim();
PRIV(op)->wait_for = WAIT_FREE;
return 0;
}
cancel_all_writes(op, dirty_it, -ENOSPC);
return 2;
}