rbd: defer setting disk capacity
authorAlex Elder <elder@inktank.com>
Fri, 26 Apr 2013 20:44:36 +0000 (15:44 -0500)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:19:48 +0000 (21:19 -0700)
Don't set the disk capacity until right before we announce the
device as available for use.

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
drivers/block/rbd.c

index f84a11ed25a4320737d453081fe81cc914fcc125..b6024a2d7b86dce221b2acbce3513b93adad171c 100644 (file)
@@ -3147,8 +3147,6 @@ static int rbd_init_disk(struct rbd_device *rbd_dev)
 
        rbd_dev->disk = disk;
 
-       set_capacity(rbd_dev->disk, rbd_dev->mapping.size / SECTOR_SIZE);
-
        return 0;
 out_disk:
        put_disk(disk);
@@ -4784,6 +4782,7 @@ static int rbd_dev_probe_finish(struct rbd_device *rbd_dev)
 
        /* Everything's ready.  Announce the disk to the world. */
 
+       set_capacity(rbd_dev->disk, rbd_dev->mapping.size / SECTOR_SIZE);
        set_bit(RBD_DEV_FLAG_EXISTS, &rbd_dev->flags);
        add_disk(rbd_dev->disk);