rbd: move more initialization into rbd_dev_image_probe()
authorAlex Elder <elder@inktank.com>
Sat, 27 Apr 2013 14:59:30 +0000 (09:59 -0500)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:19:57 +0000 (21:19 -0700)
commit9bb81c9be90c1ad265547f0a40f543548d263fb4
tree8e2f0bb0b5bd523b9591a7cf3db12eb6ef145f69
parent5de10f3b0c99983e3f9ec19baa1eb691685d9b8f
rbd: move more initialization into rbd_dev_image_probe()

Move a block of initialization related to the "ceph-side" of an rbd
image out of rbd_dev_probe_finish() and into rbd_dev_image_probe().

Add appropriate error handling to clean things up in the event any
of these new functions return an error.

We know that rbd_dev_snaps_update(), rbd_dev_spec_update(), and
rbd_dev_probe_parent() all clean up after themselves before they
return an error, so no special cleanup is required except when an
earlier call succeeds.  Since rbd_dev_spec_update() only updates the
spec field (whose cleanup will be handled by dropping the last
reference to the spec) there is no cleanup action associatied with
that.

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