[lvm-devel] master - bcache: add some error messages for debugging
David Teigland
teigland at sourceware.org
Mon Apr 23 13:51:34 UTC 2018
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=4331182964e37ad75690007f5f874f2606944a34
Commit: 4331182964e37ad75690007f5f874f2606944a34
Parent: 21057676a1f01c6b1f19b2e879d8385d76adb517
Author: David Teigland <teigland at redhat.com>
AuthorDate: Tue Feb 27 12:37:25 2018 -0600
Committer: David Teigland <teigland at redhat.com>
CommitterDate: Fri Apr 20 11:22:47 2018 -0500
bcache: add some error messages for debugging
---
lib/device/bcache.c | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
index 272de60..94623a8 100644
--- a/lib/device/bcache.c
+++ b/lib/device/bcache.c
@@ -659,8 +659,11 @@ static struct block *_new_block(struct bcache *cache, int fd, block_address inde
if (dm_list_empty(&cache->io_pending))
_writeback(cache, 16); // FIXME: magic number
_wait_io(cache);
- } else
+ } else {
+ log_error("bcache no new blocks for fd %d index %u",
+ fd, (uint32_t)index);
return NULL;
+ }
}
}
@@ -676,6 +679,18 @@ static struct block *_new_block(struct bcache *cache, int fd, block_address inde
_hash_insert(b);
}
+ if (!b) {
+ log_error("bcache no new blocks for fd %d index %u "
+ "clean %u free %u dirty %u pending %u nr_data_blocks %u nr_cache_blocks %u",
+ fd, (uint32_t)index,
+ dm_list_size(&cache->clean),
+ dm_list_size(&cache->free),
+ dm_list_size(&cache->dirty),
+ dm_list_size(&cache->io_pending),
+ (uint32_t)cache->nr_data_blocks,
+ (uint32_t)cache->nr_cache_blocks);
+ }
+
return b;
}
@@ -893,7 +908,7 @@ bool bcache_get(struct bcache *cache, int fd, block_address index,
}
*result = NULL;
- log_warn("couldn't get block");
+ log_error("bcache failed to get block %u fd %d", (uint32_t)index, fd);
return false;
}
@@ -1077,6 +1092,8 @@ bool bcache_write_bytes(struct bcache *cache, int fd, off_t start, size_t len, v
for (i = bb; i < be; i++) {
if (!bcache_get(cache, fd, i, 0, &b)) {
+ log_error("bcache_write failed to get block %u fd %d bb %u be %u",
+ (uint32_t)i, fd, (uint32_t)bb, (uint32_t)be);
errors++;
break;
}
More information about the lvm-devel
mailing list