bcache: Fix more early shutdown bugs
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
This commit is contained in:
parent
400ffaa2ac
commit
d83353b319
|
@ -733,8 +733,6 @@ static void bcache_device_detach(struct bcache_device *d)
|
||||||
static void bcache_device_attach(struct bcache_device *d, struct cache_set *c,
|
static void bcache_device_attach(struct bcache_device *d, struct cache_set *c,
|
||||||
unsigned id)
|
unsigned id)
|
||||||
{
|
{
|
||||||
BUG_ON(test_bit(CACHE_SET_STOPPING, &c->flags));
|
|
||||||
|
|
||||||
d->id = id;
|
d->id = id;
|
||||||
d->c = c;
|
d->c = c;
|
||||||
c->devices[id] = d;
|
c->devices[id] = d;
|
||||||
|
@ -1771,6 +1769,7 @@ found:
|
||||||
pr_debug("set version = %llu", c->sb.version);
|
pr_debug("set version = %llu", c->sb.version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kobject_get(&ca->kobj);
|
||||||
ca->set = c;
|
ca->set = c;
|
||||||
ca->set->cache[ca->sb.nr_this_dev] = ca;
|
ca->set->cache[ca->sb.nr_this_dev] = ca;
|
||||||
c->cache_by_alloc[c->caches_loaded++] = ca;
|
c->cache_by_alloc[c->caches_loaded++] = ca;
|
||||||
|
@ -1888,10 +1887,12 @@ static void register_cache(struct cache_sb *sb, struct page *sb_page,
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
pr_info("registered cache device %s", bdevname(bdev, name));
|
pr_info("registered cache device %s", bdevname(bdev, name));
|
||||||
|
out:
|
||||||
|
kobject_put(&ca->kobj);
|
||||||
return;
|
return;
|
||||||
err:
|
err:
|
||||||
pr_notice("error opening %s: %s", bdevname(bdev, name), err);
|
pr_notice("error opening %s: %s", bdevname(bdev, name), err);
|
||||||
kobject_put(&ca->kobj);
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Global interfaces/init */
|
/* Global interfaces/init */
|
||||||
|
|
Loading…
Reference in New Issue