Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5de10f3b authored by Alex Elder's avatar Alex Elder Committed by Sage Weil
Browse files

rbd: probe for the parent earlier



Probe for a parent device earlier in rbd_dev_probe_finish(), before
starting to set up the Linux side of the rbd device.

Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent 2e93bf9e
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -4772,6 +4772,10 @@ static int rbd_dev_probe_finish(struct rbd_device *rbd_dev)
	if (ret)
		goto err_out_snaps;

	ret = rbd_dev_probe_parent(rbd_dev);
	if (ret)
		goto err_out_mapping;

	/* generate unique id: find highest unique id, add one */
	rbd_dev_id_get(rbd_dev);

@@ -4797,10 +4801,6 @@ static int rbd_dev_probe_finish(struct rbd_device *rbd_dev)
	if (ret)
		goto err_out_disk;

	ret = rbd_dev_probe_parent(rbd_dev);
	if (ret)
		goto err_out_bus;

	/* Everything's ready.  Announce the disk to the world. */

	set_capacity(rbd_dev->disk, rbd_dev->mapping.size / SECTOR_SIZE);
@@ -4812,17 +4812,14 @@ static int rbd_dev_probe_finish(struct rbd_device *rbd_dev)

	return ret;

err_out_bus:
	rbd_dev_remove_parent(rbd_dev);
	rbd_bus_del_dev(rbd_dev);

	return ret;
err_out_disk:
	rbd_free_disk(rbd_dev);
err_out_blkdev:
	unregister_blkdev(rbd_dev->major, rbd_dev->name);
err_out_id:
	rbd_dev_id_put(rbd_dev);
	rbd_dev_remove_parent(rbd_dev);
err_out_mapping:
	rbd_dev_mapping_clear(rbd_dev);
err_out_snaps:
	rbd_remove_all_snaps(rbd_dev);