Skip to content

Commit

Permalink
bcache: return a pointer to the on-disk sb from read_super
Browse files Browse the repository at this point in the history
Returning the properly typed actual data structure insteaf of the
containing struct page will save the callers some work going
forward.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Christoph Hellwig authored and Jens Axboe committed Jan 23, 2020
1 parent fc8f19c commit cfa0c56
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions drivers/md/bcache/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct workqueue_struct *bch_journal_wq;
/* Superblock */

static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
struct page **res)
struct cache_sb_disk **res)
{
const char *err;
struct cache_sb_disk *s;
Expand Down Expand Up @@ -191,7 +191,7 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
err = NULL;

get_page(bh->b_page);
*res = bh->b_page;
*res = s;
err:
put_bh(bh);
return err;
Expand Down Expand Up @@ -1353,7 +1353,7 @@ static int cached_dev_init(struct cached_dev *dc, unsigned int block_size)

/* Cached device - bcache superblock */

static int register_bdev(struct cache_sb *sb, struct page *sb_page,
static int register_bdev(struct cache_sb *sb, struct cache_sb_disk *sb_disk,
struct block_device *bdev,
struct cached_dev *dc)
{
Expand All @@ -1367,7 +1367,7 @@ static int register_bdev(struct cache_sb *sb, struct page *sb_page,
dc->bdev->bd_holder = dc;

bio_init(&dc->sb_bio, dc->sb_bio.bi_inline_vecs, 1);
bio_first_bvec_all(&dc->sb_bio)->bv_page = sb_page;
bio_first_bvec_all(&dc->sb_bio)->bv_page = virt_to_page(sb_disk);

if (cached_dev_init(dc, sb->block_size << 9))
goto err;
Expand Down Expand Up @@ -2260,7 +2260,7 @@ static int cache_alloc(struct cache *ca)
return ret;
}

static int register_cache(struct cache_sb *sb, struct page *sb_page,
static int register_cache(struct cache_sb *sb, struct cache_sb_disk *sb_disk,
struct block_device *bdev, struct cache *ca)
{
const char *err = NULL; /* must be set for any error case */
Expand All @@ -2272,7 +2272,7 @@ static int register_cache(struct cache_sb *sb, struct page *sb_page,
ca->bdev->bd_holder = ca;

bio_init(&ca->sb_bio, ca->sb_bio.bi_inline_vecs, 1);
bio_first_bvec_all(&ca->sb_bio)->bv_page = sb_page;
bio_first_bvec_all(&ca->sb_bio)->bv_page = virt_to_page(sb_disk);

if (blk_queue_discard(bdev_get_queue(bdev)))
ca->discard = CACHE_DISCARD(&ca->sb);
Expand Down Expand Up @@ -2375,8 +2375,8 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
const char *err;
char *path = NULL;
struct cache_sb *sb;
struct cache_sb_disk *sb_disk;
struct block_device *bdev;
struct page *sb_page;
ssize_t ret;

ret = -EBUSY;
Expand Down Expand Up @@ -2426,7 +2426,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
if (set_blocksize(bdev, 4096))
goto out_blkdev_put;

err = read_super(sb, bdev, &sb_page);
err = read_super(sb, bdev, &sb_disk);
if (err)
goto out_blkdev_put;

Expand All @@ -2438,7 +2438,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
goto out_put_sb_page;

mutex_lock(&bch_register_lock);
ret = register_bdev(sb, sb_page, bdev, dc);
ret = register_bdev(sb, sb_disk, bdev, dc);
mutex_unlock(&bch_register_lock);
/* blkdev_put() will be called in cached_dev_free() */
if (ret < 0)
Expand All @@ -2450,7 +2450,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
goto out_put_sb_page;

/* blkdev_put() will be called in bch_cache_release() */
if (register_cache(sb, sb_page, bdev, ca) != 0)
if (register_cache(sb, sb_disk, bdev, ca) != 0)
goto out_free_sb;
}

Expand All @@ -2461,7 +2461,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
return size;

out_put_sb_page:
put_page(sb_page);
put_page(virt_to_page(sb_disk));
out_blkdev_put:
blkdev_put(bdev, FMODE_READ | FMODE_WRITE | FMODE_EXCL);
out_free_sb:
Expand Down

0 comments on commit cfa0c56

Please sign in to comment.