aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/rbd.c
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2012-08-29 18:11:07 -0400
committerAlex Elder <elder@inktank.com>2012-10-01 15:30:52 -0400
commit3ee4001e0c875ce8ebcdf5ea305e9a105b3687bd (patch)
tree6506f68e9a517b06a4679ee32ee358daea6ae855 /drivers/block/rbd.c
parent12f029448c3d73e0f30bc5aee5964442aa95c0f4 (diff)
rbd: set up watch before announcing disk
We're ready to handle header object (refresh) events at the point we call rbd_bus_add_dev(). Set up the watch request on the rbd image header just after that, and after we've registered the devices for the snapshots for the initial snapshot context. Do this before announce the disk as available for use. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'drivers/block/rbd.c')
-rw-r--r--drivers/block/rbd.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 3274943b2342..61807c32996e 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2646,16 +2646,17 @@ static ssize_t rbd_add(struct bus_type *bus,
2646 if (rc) 2646 if (rc)
2647 goto err_out_bus; 2647 goto err_out_bus;
2648 2648
2649 rc = rbd_init_watch_dev(rbd_dev);
2650 if (rc)
2651 goto err_out_bus;
2652
2649 /* Everything's ready. Announce the disk to the world. */ 2653 /* Everything's ready. Announce the disk to the world. */
2650 2654
2651 add_disk(rbd_dev->disk); 2655 add_disk(rbd_dev->disk);
2656
2652 pr_info("%s: added with size 0x%llx\n", rbd_dev->disk->disk_name, 2657 pr_info("%s: added with size 0x%llx\n", rbd_dev->disk->disk_name,
2653 (unsigned long long) rbd_dev->mapping.size); 2658 (unsigned long long) rbd_dev->mapping.size);
2654 2659
2655 rc = rbd_init_watch_dev(rbd_dev);
2656 if (rc)
2657 goto err_out_bus;
2658
2659 return count; 2660 return count;
2660 2661
2661err_out_bus: 2662err_out_bus: