mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-22 06:50:52 +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:
parent
1ed9cfad09
commit
d32ee355c7
@ -1,5 +1,6 @@
|
||||
Version 2.02.188 -
|
||||
==================================
|
||||
Fix bcache waiting for IO completion with failing disks.
|
||||
Configure use own python path name order to prefer using python3.
|
||||
Enhance reporting and error handling when creating thin volumes.
|
||||
Use revert_lv() on reload error path after vg_revert().
|
||||
|
@ -956,7 +956,7 @@ static struct block *_new_block(struct bcache *cache, int fd, 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_error("bcache no new blocks for fd %d index %u",
|
||||
fd, (uint32_t) i);
|
||||
|
Loading…
x
Reference in New Issue
Block a user