summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2020-06-24 13:37:23 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2020-06-24 15:01:03 +0200
commit6eb9eba59bf53101b5148ace3ddaf4140592495f (patch)
tree563a6d40754c99dece741fdb3ae0a1d35585faa9
parent04bba5ea421b02275197bfb16b4d1bbf8879b240 (diff)
downloadlvm2-6eb9eba59bf53101b5148ace3ddaf4140592495f.tar.gz
bcache: support longer writes
When initiated larger write request, it may have happened, bcache got out of free chunks - fix the loop, that is supposed to wait until next free chunk becomes avain available.
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/device/bcache.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index c0267b7a3..c6dad99e2 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.03.10 -
=================================
+ Fix running out of free buffers for async writing for larger writes.
Add integrity with raid capability.
Fix support for lvconvert --repair used by foreign apps (i.e. Docker).
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
index a7d805526..7e7e18542 100644
--- a/lib/device/bcache.c
+++ b/lib/device/bcache.c
@@ -950,7 +950,7 @@ static struct block *_new_block(struct bcache *cache, int fd, block_address i, b
struct block *b;
b = _alloc_block(cache);
- while (!b && !dm_list_empty(&cache->clean)) {
+ while (!b) {
b = _find_unused_clean_block(cache);
if (!b) {
if (can_wait) {