1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

bcache: fix waiting problem for completed IO

Call _wait_all() which does check whether there is still
some pending IO before sleep. Otherwise it may happen
our submitted IO operations have been already dispatched
and this call then endlessly waits for IO which are all done.
This can be reproduced when device returns quickly errors
on write requests.
This commit is contained in:
Zdenek Kabelac 2020-10-02 17:18:12 +02:00
parent 9885c9b43a
commit 41f9e372c0
2 changed files with 2 additions and 1 deletions

View File

@ -1,5 +1,6 @@
Version 2.03.11 -
==================================
Fix bcache waiting for IO completion with failing disks.
Configure use own python path name order to prefer using python3.
Add configure --enable-editline support as an alternative to readline.
Enhance reporting and error handling when creating thin volumes.

View File

@ -963,7 +963,7 @@ static struct block *_new_block(struct bcache *cache, int di, block_address i, b
if (can_wait) {
if (dm_list_empty(&cache->io_pending))
_writeback(cache, 16); // FIXME: magic number
_wait_io(cache);
_wait_all(cache);
} else {
log_debug("bcache no new blocks for di %d index %u",
di, (uint32_t) i);