aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/rbd.c
diff options
context:
space:
mode:
authorAlex Elder <elder@dreamhost.com>2012-11-01 09:39:26 -0400
committerAlex Elder <elder@inktank.com>2013-01-17 15:08:46 -0500
commit69e7a02f633ba7de0aefa87f3f0e3b31e953b09a (patch)
tree6a6c660cb073cf02e5c592a53071a5d23f44d1ef /drivers/block/rbd.c
parentc66c6e0c0b04ce4a152fe02c562dd0752665d580 (diff)
rbd: kill rbd_spec->image_name_len
There may have been a benefit to hanging on to the length of an image name before, but there is really none now. The only time it's used is when probing for rbd images, so we can just compute the length then. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: David Zafman <david.zafman@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'drivers/block/rbd.c')
-rw-r--r--drivers/block/rbd.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 128978c6a4e0..a002984891d7 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -147,7 +147,6 @@ struct rbd_spec {
147 char *image_id; 147 char *image_id;
148 size_t image_id_len; 148 size_t image_id_len;
149 char *image_name; 149 char *image_name;
150 size_t image_name_len;
151 150
152 u64 snap_id; 151 u64 snap_id;
153 char *snap_name; 152 char *snap_name;
@@ -2563,15 +2562,15 @@ static char *rbd_dev_image_name(struct rbd_device *rbd_dev)
2563 2562
2564 rbd_assert(!rbd_dev->spec->image_name); 2563 rbd_assert(!rbd_dev->spec->image_name);
2565 2564
2566 image_id_size = sizeof (__le32) + rbd_dev->spec->image_id_len; 2565 len = strlen(rbd_dev->spec->image_id);
2566 image_id_size = sizeof (__le32) + len;
2567 image_id = kmalloc(image_id_size, GFP_KERNEL); 2567 image_id = kmalloc(image_id_size, GFP_KERNEL);
2568 if (!image_id) 2568 if (!image_id)
2569 return NULL; 2569 return NULL;
2570 2570
2571 p = image_id; 2571 p = image_id;
2572 end = (char *) image_id + image_id_size; 2572 end = (char *) image_id + image_id_size;
2573 ceph_encode_string(&p, end, rbd_dev->spec->image_id, 2573 ceph_encode_string(&p, end, rbd_dev->spec->image_id, (u32) len);
2574 (u32) rbd_dev->spec->image_id_len);
2575 2574
2576 size = sizeof (__le32) + RBD_IMAGE_NAME_LEN_MAX; 2575 size = sizeof (__le32) + RBD_IMAGE_NAME_LEN_MAX;
2577 reply_buf = kmalloc(size, GFP_KERNEL); 2576 reply_buf = kmalloc(size, GFP_KERNEL);
@@ -2631,14 +2630,12 @@ static int rbd_dev_probe_update_spec(struct rbd_device *rbd_dev)
2631 /* Fetch the image name; tolerate failure here */ 2630 /* Fetch the image name; tolerate failure here */
2632 2631
2633 name = rbd_dev_image_name(rbd_dev); 2632 name = rbd_dev_image_name(rbd_dev);
2634 if (name) { 2633 if (name)
2635 rbd_dev->spec->image_name_len = strlen(name);
2636 rbd_dev->spec->image_name = (char *) name; 2634 rbd_dev->spec->image_name = (char *) name;
2637 } else { 2635 else
2638 pr_warning(RBD_DRV_NAME "%d " 2636 pr_warning(RBD_DRV_NAME "%d "
2639 "unable to get image name for image id %s\n", 2637 "unable to get image name for image id %s\n",
2640 rbd_dev->major, rbd_dev->spec->image_id); 2638 rbd_dev->major, rbd_dev->spec->image_id);
2641 }
2642 2639
2643 /* Look up the snapshot name. */ 2640 /* Look up the snapshot name. */
2644 2641
@@ -3252,7 +3249,7 @@ static int rbd_add_parse_args(const char *buf,
3252 if (!*spec->pool_name) 3249 if (!*spec->pool_name)
3253 goto out_err; /* Missing pool name */ 3250 goto out_err; /* Missing pool name */
3254 3251
3255 spec->image_name = dup_token(&buf, &spec->image_name_len); 3252 spec->image_name = dup_token(&buf, NULL);
3256 if (!spec->image_name) 3253 if (!spec->image_name)
3257 goto out_mem; 3254 goto out_mem;
3258 if (!*spec->image_name) 3255 if (!*spec->image_name)
@@ -3342,7 +3339,7 @@ static int rbd_dev_image_id(struct rbd_device *rbd_dev)
3342 * First, see if the format 2 image id file exists, and if 3339 * First, see if the format 2 image id file exists, and if
3343 * so, get the image's persistent id from it. 3340 * so, get the image's persistent id from it.
3344 */ 3341 */
3345 size = sizeof (RBD_ID_PREFIX) + rbd_dev->spec->image_name_len; 3342 size = sizeof (RBD_ID_PREFIX) + strlen(rbd_dev->spec->image_name);
3346 object_name = kmalloc(size, GFP_NOIO); 3343 object_name = kmalloc(size, GFP_NOIO);
3347 if (!object_name) 3344 if (!object_name)
3348 return -ENOMEM; 3345 return -ENOMEM;
@@ -3400,7 +3397,7 @@ static int rbd_dev_v1_probe(struct rbd_device *rbd_dev)
3400 3397
3401 /* Record the header object name for this rbd image. */ 3398 /* Record the header object name for this rbd image. */
3402 3399
3403 size = rbd_dev->spec->image_name_len + sizeof (RBD_SUFFIX); 3400 size = strlen(rbd_dev->spec->image_name) + sizeof (RBD_SUFFIX);
3404 rbd_dev->header_name = kmalloc(size, GFP_KERNEL); 3401 rbd_dev->header_name = kmalloc(size, GFP_KERNEL);
3405 if (!rbd_dev->header_name) { 3402 if (!rbd_dev->header_name) {
3406 ret = -ENOMEM; 3403 ret = -ENOMEM;