]> www.infradead.org Git - users/hch/block.git/commitdiff
bcache: remove PTR_BUCKET
authorChristoph Hellwig <hch@lst.de>
Mon, 25 Jan 2021 17:02:14 +0000 (18:02 +0100)
committerChristoph Hellwig <hch@lst.de>
Tue, 2 Feb 2021 09:39:30 +0000 (10:39 +0100)
Remove the PTR_BUCKET inline and replace it with a direct dereference
of c->cache.

Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/md/bcache/alloc.c
drivers/md/bcache/bcache.h
drivers/md/bcache/btree.c
drivers/md/bcache/debug.c
drivers/md/bcache/extents.c
drivers/md/bcache/io.c
drivers/md/bcache/journal.c
drivers/md/bcache/writeback.c

index 8c371d5eef8eb96becfc9da08a32545552591bae..097577ae3c47177a6ec0706e106aa14e5a0b66e2 100644 (file)
@@ -482,8 +482,7 @@ void bch_bucket_free(struct cache_set *c, struct bkey *k)
        unsigned int i;
 
        for (i = 0; i < KEY_PTRS(k); i++)
-               __bch_bucket_free(PTR_CACHE(c, k, i),
-                                 PTR_BUCKET(c, k, i));
+               __bch_bucket_free(c->cache, PTR_BUCKET(c, k, i));
 }
 
 int __bch_bucket_alloc_set(struct cache_set *c, unsigned int reserve,
@@ -674,7 +673,7 @@ bool bch_alloc_sectors(struct cache_set *c,
                SET_PTR_OFFSET(&b->key, i, PTR_OFFSET(&b->key, i) + sectors);
 
                atomic_long_add(sectors,
-                               &PTR_CACHE(c, &b->key, i)->sectors_written);
+                               &c->cache->sectors_written);
        }
 
        if (b->sectors_free < c->cache->sb.block_size)
index 1d57f48307e66c0bb983d50bbabad6965d3bb5c9..2eaae53a1bb3ff780f07dad32e53a789c791c24d 100644 (file)
@@ -800,13 +800,6 @@ static inline sector_t bucket_remainder(struct cache_set *c, sector_t s)
        return s & (c->cache->sb.bucket_size - 1);
 }
 
-static inline struct cache *PTR_CACHE(struct cache_set *c,
-                                     const struct bkey *k,
-                                     unsigned int ptr)
-{
-       return c->cache;
-}
-
 static inline size_t PTR_BUCKET_NR(struct cache_set *c,
                                   const struct bkey *k,
                                   unsigned int ptr)
@@ -818,7 +811,7 @@ static inline struct bucket *PTR_BUCKET(struct cache_set *c,
                                        const struct bkey *k,
                                        unsigned int ptr)
 {
-       return PTR_CACHE(c, k, ptr)->buckets + PTR_BUCKET_NR(c, k, ptr);
+       return c->cache->buckets + PTR_BUCKET_NR(c, k, ptr);
 }
 
 static inline uint8_t gen_after(uint8_t a, uint8_t b)
@@ -837,7 +830,7 @@ static inline uint8_t ptr_stale(struct cache_set *c, const struct bkey *k,
 static inline bool ptr_available(struct cache_set *c, const struct bkey *k,
                                 unsigned int i)
 {
-       return (PTR_DEV(k, i) < MAX_CACHES_PER_SET) && PTR_CACHE(c, k, i);
+       return (PTR_DEV(k, i) < MAX_CACHES_PER_SET) && c->cache;
 }
 
 /* Btree key macros */
index 910df242c83dfae5d88945a4ad5209e4a466c154..e86bb884ec2d75a1b1b9963938917482a66ae11b 100644 (file)
@@ -424,7 +424,7 @@ void __bch_btree_node_write(struct btree *b, struct closure *parent)
        do_btree_node_write(b);
 
        atomic_long_add(set_blocks(i, block_bytes(b->c->cache)) * b->c->cache->sb.block_size,
-                       &PTR_CACHE(b->c, &b->key, 0)->btree_sectors_written);
+                       &b->c->cache->btree_sectors_written);
 
        b->written += set_blocks(i, block_bytes(b->c->cache));
 }
@@ -1159,7 +1159,7 @@ static void make_btree_freeing_key(struct btree *b, struct bkey *k)
 
        for (i = 0; i < KEY_PTRS(k); i++)
                SET_PTR_GEN(k, i,
-                           bch_inc_gen(PTR_CACHE(b->c, &b->key, i),
+                           bch_inc_gen(b->c->cache,
                                        PTR_BUCKET(b->c, &b->key, i)));
 
        mutex_unlock(&b->c->bucket_lock);
index 63e809f38e3f513d9e090b2f84d241767b89a832..589a052efeb1abedea83685173f1a8767c3e6966 100644 (file)
@@ -50,7 +50,7 @@ void bch_btree_verify(struct btree *b)
        v->keys.ops = b->keys.ops;
 
        bio = bch_bbio_alloc(b->c);
-       bio_set_dev(bio, PTR_CACHE(b->c, &b->key, 0)->bdev);
+       bio_set_dev(bio, c->cache->bdev);
        bio->bi_iter.bi_sector  = PTR_OFFSET(&b->key, 0);
        bio->bi_iter.bi_size    = KEY_SIZE(&v->key) << 9;
        bio->bi_opf             = REQ_OP_READ | REQ_META;
index f4658a1f37b862efc543c514da21958598d3ec11..d626ffcbecb99c040e3a5ee05e4ba67b525a2847 100644 (file)
@@ -50,7 +50,7 @@ static bool __ptr_invalid(struct cache_set *c, const struct bkey *k)
 
        for (i = 0; i < KEY_PTRS(k); i++)
                if (ptr_available(c, k, i)) {
-                       struct cache *ca = PTR_CACHE(c, k, i);
+                       struct cache *ca = c->cache;
                        size_t bucket = PTR_BUCKET_NR(c, k, i);
                        size_t r = bucket_remainder(c, PTR_OFFSET(k, i));
 
@@ -71,7 +71,7 @@ static const char *bch_ptr_status(struct cache_set *c, const struct bkey *k)
 
        for (i = 0; i < KEY_PTRS(k); i++)
                if (ptr_available(c, k, i)) {
-                       struct cache *ca = PTR_CACHE(c, k, i);
+                       struct cache *ca = c->cache;
                        size_t bucket = PTR_BUCKET_NR(c, k, i);
                        size_t r = bucket_remainder(c, PTR_OFFSET(k, i));
 
index dad71a6b78891c149c428d9ebc1758c5b9c357de..e4388fe3ab7ef96ead612d775ce64270ec9ea318 100644 (file)
@@ -36,7 +36,7 @@ void __bch_submit_bbio(struct bio *bio, struct cache_set *c)
        struct bbio *b = container_of(bio, struct bbio, bio);
 
        bio->bi_iter.bi_sector  = PTR_OFFSET(&b->key, 0);
-       bio_set_dev(bio, PTR_CACHE(c, &b->key, 0)->bdev);
+       bio_set_dev(bio, c->cache->bdev);
 
        b->submit_time_us = local_clock_us();
        closure_bio_submit(c, bio, bio->bi_private);
@@ -137,7 +137,7 @@ void bch_bbio_count_io_errors(struct cache_set *c, struct bio *bio,
                              blk_status_t error, const char *m)
 {
        struct bbio *b = container_of(bio, struct bbio, bio);
-       struct cache *ca = PTR_CACHE(c, &b->key, 0);
+       struct cache *ca = c->cache;
        int is_read = (bio_data_dir(bio) == READ ? 1 : 0);
 
        unsigned int threshold = op_is_write(bio_op(bio))
index aefbdb7e003bc02edf926ede5ad7638d75cb57db..718c3c6199e8167c74553e7c1fd0cab118ce4487 100644 (file)
@@ -768,7 +768,7 @@ static void journal_write_unlocked(struct closure *cl)
        w->data->csum           = csum_set(w->data);
 
        for (i = 0; i < KEY_PTRS(k); i++) {
-               ca = PTR_CACHE(c, k, i);
+               ca = c->cache;
                bio = &ca->journal.bio;
 
                atomic_long_add(sectors, &ca->meta_sectors_written);
index a129e4d2707c9c5bf3ee65caf89eb397f781996c..681d135f20d8a4ac51e6817ebab69107652143f1 100644 (file)
@@ -378,7 +378,7 @@ static void read_dirty_endio(struct bio *bio)
        struct dirty_io *io = w->private;
 
        /* is_read = 1 */
-       bch_count_io_errors(PTR_CACHE(io->dc->disk.c, &w->key, 0),
+       bch_count_io_errors(io->dc->disk.c->cache,
                            bio->bi_status, 1,
                            "reading dirty data from cache");
 
@@ -472,8 +472,7 @@ static void read_dirty(struct cached_dev *dc)
                        dirty_init(w);
                        bio_set_op_attrs(&io->bio, REQ_OP_READ, 0);
                        io->bio.bi_iter.bi_sector = PTR_OFFSET(&w->key, 0);
-                       bio_set_dev(&io->bio,
-                                   PTR_CACHE(dc->disk.c, &w->key, 0)->bdev);
+                       bio_set_dev(&io->bio, dc->disk.c->cache->bdev);
                        io->bio.bi_end_io       = read_dirty_endio;
 
                        if (bch_bio_alloc_pages(&io->bio, GFP_KERNEL))