diff options
author | Coly Li <colyli@suse.de> | 2020-10-01 09:50:46 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-10-02 23:25:29 +0300 |
commit | 697e23495c94f0380c1ed8b11f830b92b64c99ea (patch) | |
tree | c422d72b305cd9302bc631db4b3bb2bc6cbf7e9c /drivers/md/bcache/bcache.h | |
parent | 17e4aed8309ff28670271546c2c3263eb12f5eb6 (diff) | |
download | linux-697e23495c94f0380c1ed8b11f830b92b64c99ea.tar.xz |
bcache: explicitly make cache_set only have single cache
Currently although the bcache code has a framework for multiple caches
in a cache set, but indeed the multiple caches never completed and users
use md raid1 for multiple copies of the cached data.
This patch does the following change in struct cache_set, to explicitly
make a cache_set only have single cache,
- Change pointer array "*cache[MAX_CACHES_PER_SET]" to a single pointer
"*cache".
- Remove pointer array "*cache_by_alloc[MAX_CACHES_PER_SET]".
- Remove "caches_loaded".
Now the code looks as exactly what it does in practic: only one cache is
used in the cache set.
Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/md/bcache/bcache.h')
-rw-r--r-- | drivers/md/bcache/bcache.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h index 5ff6e9573935..aa112c1adba1 100644 --- a/drivers/md/bcache/bcache.h +++ b/drivers/md/bcache/bcache.h @@ -519,9 +519,7 @@ struct cache_set { struct cache_sb sb; - struct cache *cache[MAX_CACHES_PER_SET]; - struct cache *cache_by_alloc[MAX_CACHES_PER_SET]; - int caches_loaded; + struct cache *cache; struct bcache_device **devices; unsigned int devices_max_used; @@ -808,7 +806,7 @@ static inline struct cache *PTR_CACHE(struct cache_set *c, const struct bkey *k, unsigned int ptr) { - return c->cache[PTR_DEV(k, ptr)]; + return c->cache; } static inline size_t PTR_BUCKET_NR(struct cache_set *c, @@ -890,7 +888,7 @@ do { \ /* Looping macros */ #define for_each_cache(ca, cs, iter) \ - for (iter = 0; ca = cs->cache[iter], iter < (cs)->sb.nr_in_set; iter++) + for (iter = 0; ca = cs->cache, iter < 1; iter++) #define for_each_bucket(b, ca) \ for (b = (ca)->buckets + (ca)->sb.first_bucket; \ |