|
@@ -1204,7 +1204,7 @@ static void register_bdev(struct cache_sb *sb, struct page *sb_page,
|
|
|
|
|
|
return;
|
|
|
err:
|
|
|
- pr_notice("error opening %s: %s", bdevname(bdev, name), err);
|
|
|
+ pr_notice("error %s: %s", bdevname(bdev, name), err);
|
|
|
bcache_device_stop(&dc->disk);
|
|
|
}
|
|
|
|
|
@@ -1883,6 +1883,8 @@ static int register_cache(struct cache_sb *sb, struct page *sb_page,
|
|
|
const char *err = NULL; /* must be set for any error case */
|
|
|
int ret = 0;
|
|
|
|
|
|
+ bdevname(bdev, name);
|
|
|
+
|
|
|
memcpy(&ca->sb, sb, sizeof(struct cache_sb));
|
|
|
ca->bdev = bdev;
|
|
|
ca->bdev->bd_holder = ca;
|
|
@@ -1891,11 +1893,12 @@ static int register_cache(struct cache_sb *sb, struct page *sb_page,
|
|
|
bio_first_bvec_all(&ca->sb_bio)->bv_page = sb_page;
|
|
|
get_page(sb_page);
|
|
|
|
|
|
- if (blk_queue_discard(bdev_get_queue(ca->bdev)))
|
|
|
+ if (blk_queue_discard(bdev_get_queue(bdev)))
|
|
|
ca->discard = CACHE_DISCARD(&ca->sb);
|
|
|
|
|
|
ret = cache_alloc(ca);
|
|
|
if (ret != 0) {
|
|
|
+ blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
|
|
|
if (ret == -ENOMEM)
|
|
|
err = "cache_alloc(): -ENOMEM";
|
|
|
else
|
|
@@ -1918,14 +1921,14 @@ static int register_cache(struct cache_sb *sb, struct page *sb_page,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- pr_info("registered cache device %s", bdevname(bdev, name));
|
|
|
+ pr_info("registered cache device %s", name);
|
|
|
|
|
|
out:
|
|
|
kobject_put(&ca->kobj);
|
|
|
|
|
|
err:
|
|
|
if (err)
|
|
|
- pr_notice("error opening %s: %s", bdevname(bdev, name), err);
|
|
|
+ pr_notice("error %s: %s", name, err);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -2014,6 +2017,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
|
|
|
if (err)
|
|
|
goto err_close;
|
|
|
|
|
|
+ err = "failed to register device";
|
|
|
if (SB_IS_BDEV(sb)) {
|
|
|
struct cached_dev *dc = kzalloc(sizeof(*dc), GFP_KERNEL);
|
|
|
if (!dc)
|
|
@@ -2028,7 +2032,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
|
|
|
goto err_close;
|
|
|
|
|
|
if (register_cache(sb, sb_page, bdev, ca) != 0)
|
|
|
- goto err_close;
|
|
|
+ goto err;
|
|
|
}
|
|
|
out:
|
|
|
if (sb_page)
|
|
@@ -2041,7 +2045,7 @@ out:
|
|
|
err_close:
|
|
|
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
|
|
|
err:
|
|
|
- pr_info("error opening %s: %s", path, err);
|
|
|
+ pr_info("error %s: %s", path, err);
|
|
|
ret = -EINVAL;
|
|
|
goto out;
|
|
|
}
|