bcache: don't check seq numbers in register_cache_set()
authorColy Li <colyli@suse.de>
Thu, 1 Oct 2020 06:50:53 +0000 (14:50 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 2 Oct 2020 20:25:30 +0000 (14:25 -0600)
In order to update the partial super block of cache set, the seq numbers
of cache and cache set are checked in register_cache_set(). If cache's
seq number is larger than cache set's seq number, cache set must update
its partial super block from cache's super block. It is unncessary when
the embedded struct cache_sb is removed from struct cache set.

This patch removed the seq numbers checking from register_cache_set(),
because later there will be no such partial super block in struct cache
set, the cache set will directly reference in-memory super block from
struct cache. This is a preparation patch for removing embedded struct
cache_sb from struct cache_set.

Signed-off-by: Coly Li <colyli@suse.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/super.c

index 3a79790..291a3d4 100644 (file)
@@ -2175,21 +2175,6 @@ found:
            sysfs_create_link(&c->kobj, &ca->kobj, buf))
                goto err;
 
-       /*
-        * A special case is both ca->sb.seq and c->sb.seq are 0,
-        * such condition happens on a new created cache device whose
-        * super block is never flushed yet. In this case c->sb.version
-        * and other members should be updated too, otherwise we will
-        * have a mistaken super block version in cache set.
-        */
-       if (ca->sb.seq > c->sb.seq || c->sb.seq == 0) {
-               c->sb.version           = ca->sb.version;
-               memcpy(c->set_uuid, ca->sb.set_uuid, 16);
-               c->sb.flags             = ca->sb.flags;
-               c->sb.seq               = ca->sb.seq;
-               pr_debug("set version = %llu\n", c->sb.version);
-       }
-
        kobject_get(&ca->kobj);
        ca->set = c;
        ca->set->cache = ca;