aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/rbd.c
diff options
context:
space:
mode:
authorAlex Elder <elder@dreamhost.com>2012-11-01 11:17:15 -0400
committerAlex Elder <elder@inktank.com>2013-01-17 15:12:46 -0500
commit935dc89f3e29e2ef1d7c89778cdb9f37ff36e94b (patch)
treefbafa1643cc38dd3f1af464a16897c40d05c3453 /drivers/block/rbd.c
parentf5400b7a0e78a53edce8960a079aa022640849a1 (diff)
rbd: add warnings to rbd_dev_probe_update_spec()
Josh suggested adding warnings to this function to help users diagnose problems. Other than memory allocatino errors, there are two places where errors can be returned. Both represent problems that should have been caught earlier, and as such might well have been handled with BUG_ON() calls. But if either ever did manage to happen, it will be reported. 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, 7 insertions, 2 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index ce6c0cbb3d7a..530a1217a0fa 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2644,8 +2644,11 @@ static int rbd_dev_probe_update_spec(struct rbd_device *rbd_dev)
2644 2644
2645 osdc = &rbd_dev->rbd_client->client->osdc; 2645 osdc = &rbd_dev->rbd_client->client->osdc;
2646 name = ceph_pg_pool_name_by_id(osdc->osdmap, rbd_dev->spec->pool_id); 2646 name = ceph_pg_pool_name_by_id(osdc->osdmap, rbd_dev->spec->pool_id);
2647 if (!name) 2647 if (!name) {
2648 return -EIO; /* pool id too large (>= 2^31) */ 2648 rbd_warn(rbd_dev, "there is no pool with id %llu",
2649 rbd_dev->spec->pool_id); /* Really a BUG() */
2650 return -EIO;
2651 }
2649 2652
2650 rbd_dev->spec->pool_name = kstrdup(name, GFP_KERNEL); 2653 rbd_dev->spec->pool_name = kstrdup(name, GFP_KERNEL);
2651 if (!rbd_dev->spec->pool_name) 2654 if (!rbd_dev->spec->pool_name)
@@ -2663,6 +2666,8 @@ static int rbd_dev_probe_update_spec(struct rbd_device *rbd_dev)
2663 2666
2664 name = rbd_snap_name(rbd_dev, rbd_dev->spec->snap_id); 2667 name = rbd_snap_name(rbd_dev, rbd_dev->spec->snap_id);
2665 if (!name) { 2668 if (!name) {
2669 rbd_warn(rbd_dev, "no snapshot with id %llu",
2670 rbd_dev->spec->snap_id); /* Really a BUG() */
2666 ret = -EIO; 2671 ret = -EIO;
2667 goto out_err; 2672 goto out_err;
2668 } 2673 }