From 6257974a5ab20616ebf663270774e0b56fc6a6fc Mon Sep 17 00:00:00 2001 From: Jacob Malevich Date: Tue, 6 Jan 2015 11:10:20 -0800 Subject: [PATCH] bcacheadm: increase btree node size for large buckets buckets over 512k were causing deadlocks when the btree node size was smaller than the bucket size. Change-Id: Icb278d75c241e9643ab1355620e3d656df52c4ee Signed-off-by: Jacob Malevich --- bcache.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/bcache.c b/bcache.c index a69a46fb..2bc32c03 100644 --- a/bcache.c +++ b/bcache.c @@ -559,16 +559,6 @@ static unsigned min_bucket_size(int num_bucket_sizes, unsigned *bucket_sizes) return min; } -static unsigned node_size(unsigned bucket_size) { - - if (bucket_size <= 256) - return bucket_size; - else if (bucket_size <= 512) - return bucket_size / 2; - else - return bucket_size / 4; -} - void write_cache_sbs(int *fds, struct cache_sb *sb, unsigned block_size, unsigned *bucket_sizes, int num_bucket_sizes) @@ -596,7 +586,8 @@ void write_cache_sbs(int *fds, struct cache_sb *sb, sb->bucket_size = bucket_sizes[0]; else sb->bucket_size = bucket_sizes[i]; - SET_CACHE_BTREE_NODE_SIZE(sb, node_size(min_size)); + SET_CACHE_BTREE_NODE_SIZE(sb, min_size); + sb->uuid = m->uuid; sb->nbuckets = getblocks(fds[i]) / sb->bucket_size;