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:10:21 -0500
commit4fb5d671399e83d3875593db2f56d5b57fcb104f (patch)
treeec6f140577357523cb5a7dde5c2a7c85e043ca29 /drivers/block/rbd.c
parent06ecc6cbf7a60cd5abd9fd2bda8ae69b395c2be3 (diff)
rbd: add warning messages for missing arguments
Tell the user (via dmesg) what was wrong with the arguments provided via /sys/bus/rbd/add. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Dan Mick <dan.mick@inktank.com>
Diffstat (limited to 'drivers/block/rbd.c')
-rw-r--r--drivers/block/rbd.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 635b81d0ebdb..31da8c538480 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -3244,8 +3244,10 @@ static int rbd_add_parse_args(const char *buf,
3244 /* The first four tokens are required */ 3244 /* The first four tokens are required */
3245 3245
3246 len = next_token(&buf); 3246 len = next_token(&buf);
3247 if (!len) 3247 if (!len) {
3248 return -EINVAL; /* Missing monitor address(es) */ 3248 rbd_warn(NULL, "no monitor address(es) provided");
3249 return -EINVAL;
3250 }
3249 mon_addrs = buf; 3251 mon_addrs = buf;
3250 mon_addrs_size = len + 1; 3252 mon_addrs_size = len + 1;
3251 buf += len; 3253 buf += len;
@@ -3254,8 +3256,10 @@ static int rbd_add_parse_args(const char *buf,
3254 options = dup_token(&buf, NULL); 3256 options = dup_token(&buf, NULL);
3255 if (!options) 3257 if (!options)
3256 return -ENOMEM; 3258 return -ENOMEM;
3257 if (!*options) 3259 if (!*options) {
3258 goto out_err; /* Missing options */ 3260 rbd_warn(NULL, "no options provided");
3261 goto out_err;
3262 }
3259 3263
3260 spec = rbd_spec_alloc(); 3264 spec = rbd_spec_alloc();
3261 if (!spec) 3265 if (!spec)
@@ -3264,14 +3268,18 @@ static int rbd_add_parse_args(const char *buf,
3264 spec->pool_name = dup_token(&buf, NULL); 3268 spec->pool_name = dup_token(&buf, NULL);
3265 if (!spec->pool_name) 3269 if (!spec->pool_name)
3266 goto out_mem; 3270 goto out_mem;
3267 if (!*spec->pool_name) 3271 if (!*spec->pool_name) {
3268 goto out_err; /* Missing pool name */ 3272 rbd_warn(NULL, "no pool name provided");
3273 goto out_err;
3274 }
3269 3275
3270 spec->image_name = dup_token(&buf, NULL); 3276 spec->image_name = dup_token(&buf, NULL);
3271 if (!spec->image_name) 3277 if (!spec->image_name)
3272 goto out_mem; 3278 goto out_mem;
3273 if (!*spec->image_name) 3279 if (!*spec->image_name) {
3274 goto out_err; /* Missing image name */ 3280 rbd_warn(NULL, "no image name provided");
3281 goto out_err;
3282 }
3275 3283
3276 /* 3284 /*
3277 * Snapshot name is optional; default is to use "-" 3285 * Snapshot name is optional; default is to use "-"