lkml.org 
[lkml]   [2018]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.17 41/70] nbd: use bd_set_size when updating disk size
    Date
    4.17-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Josef Bacik <jbacik@fb.com>

    commit 9e2b19675d1338d2a38e99194756f2db44a081df upstream.

    When we stopped relying on the bdev everywhere I broke updating the
    block device size on the fly, which ceph relies on. We can't just do
    set_capacity, we also have to do bd_set_size so things like parted will
    notice the device size change.

    Fixes: 29eaadc ("nbd: stop using the bdev everywhere")
    cc: stable@vger.kernel.org
    Signed-off-by: Josef Bacik <jbacik@fb.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/block/nbd.c | 10 +++++++++-
    1 file changed, 9 insertions(+), 1 deletion(-)

    --- a/drivers/block/nbd.c
    +++ b/drivers/block/nbd.c
    @@ -234,9 +234,18 @@ static void nbd_size_clear(struct nbd_de
    static void nbd_size_update(struct nbd_device *nbd)
    {
    struct nbd_config *config = nbd->config;
    + struct block_device *bdev = bdget_disk(nbd->disk, 0);
    +
    blk_queue_logical_block_size(nbd->disk->queue, config->blksize);
    blk_queue_physical_block_size(nbd->disk->queue, config->blksize);
    set_capacity(nbd->disk, config->bytesize >> 9);
    + if (bdev) {
    + if (bdev->bd_disk)
    + bd_set_size(bdev, config->bytesize);
    + else
    + bdev->bd_invalidated = 1;
    + bdput(bdev);
    + }
    kobject_uevent(&nbd_to_dev(nbd)->kobj, KOBJ_CHANGE);
    }

    @@ -1114,7 +1123,6 @@ static int nbd_start_device_ioctl(struct
    if (ret)
    return ret;

    - bd_set_size(bdev, config->bytesize);
    if (max_part)
    bdev->bd_invalidated = 1;
    mutex_unlock(&nbd->config_lock);

    \
     
     \ /
      Last update: 2018-06-24 17:59    [W:3.436 / U:0.924 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site