rbd: call set_snap() before snap_devs_update()
authorAlex Elder <elder@inktank.com>
Wed, 29 Aug 2012 22:11:07 +0000 (17:11 -0500)
committerAlex Elder <elder@inktank.com>
Mon, 1 Oct 2012 19:30:52 +0000 (14:30 -0500)
rbd_header_set_snap() is a simple initialization routine for an rbd
device's mapping.  It has to be called after the snapshot context
for the rbd_dev has been updated, but can be done before snapshot
devices have been registered.

Change the name to rbd_dev_set_mapping() to better reflect its
purpose, and call it a little sooner, before registering snapshot
devices.

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

index 0d812603e6d5f3c921a8f44fe9568b71ca592a6a..a9f5de2706ecf56017ddd493b7c6e481fef1aa14 100644 (file)
@@ -640,7 +640,7 @@ static int snap_by_name(struct rbd_device *rbd_dev, const char *snap_name)
        return -ENOENT;
 }
 
-static int rbd_header_set_snap(struct rbd_device *rbd_dev, char *snap_name)
+static int rbd_dev_set_mapping(struct rbd_device *rbd_dev, char *snap_name)
 {
        int ret;
 
@@ -2625,12 +2625,13 @@ static ssize_t rbd_add(struct bus_type *bus,
        rc = rbd_dev_snaps_update(rbd_dev);
        if (rc)
                goto err_out_bus;
-       rc = rbd_dev_snaps_register(rbd_dev);
+
+       rc = rbd_dev_set_mapping(rbd_dev, snap_name);
        if (rc)
                goto err_out_bus;
 
        down_write(&rbd_dev->header_rwsem);
-       rc = rbd_header_set_snap(rbd_dev, snap_name);
+       rc = rbd_dev_snaps_register(rbd_dev);
        up_write(&rbd_dev->header_rwsem);
        if (rc)
                goto err_out_bus;