mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-13 00:20:06 +00:00
bcache: don't check seq numbers in register_cache_set()
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>
This commit is contained in:
parent
63a96c05cd
commit
08a1782881
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user