diff options
author | Alex Elder <elder@inktank.com> | 2012-08-30 15:42:15 -0400 |
---|---|---|
committer | Alex Elder <elder@inktank.com> | 2012-10-01 15:30:51 -0400 |
commit | 8836b995fd192dba23d312d2a4fba68dd8ca7183 (patch) | |
tree | a04165a494e9327bf052b7ed25f94ba86a28e057 /drivers/block | |
parent | 4e1105a299adf7ac421d42a8be05205f51610f3c (diff) |
rbd: simplify snap_by_name() interface
There is only one caller of snap_by_name(), and it passes two values
to be assigned, both of which are found within an rbd device
structure.
Change the interface so it just passes the address of the rbd_dev,
and make the assignments to its fields directly.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/rbd.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 23fa962fea36..46b8f8e536be 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c | |||
@@ -621,10 +621,10 @@ out_err: | |||
621 | return -ENOMEM; | 621 | return -ENOMEM; |
622 | } | 622 | } |
623 | 623 | ||
624 | static int snap_by_name(struct rbd_image_header *header, const char *snap_name, | 624 | static int snap_by_name(struct rbd_device *rbd_dev, const char *snap_name) |
625 | u64 *seq, u64 *size) | ||
626 | { | 625 | { |
627 | int i; | 626 | int i; |
627 | struct rbd_image_header *header = &rbd_dev->header; | ||
628 | char *p = header->snap_names; | 628 | char *p = header->snap_names; |
629 | 629 | ||
630 | rbd_assert(header->snapc != NULL); | 630 | rbd_assert(header->snapc != NULL); |
@@ -633,10 +633,9 @@ static int snap_by_name(struct rbd_image_header *header, const char *snap_name, | |||
633 | 633 | ||
634 | /* Found it. Pass back its id and/or size */ | 634 | /* Found it. Pass back its id and/or size */ |
635 | 635 | ||
636 | if (seq) | 636 | rbd_dev->mapping.snap_id = header->snapc->snaps[i]; |
637 | *seq = header->snapc->snaps[i]; | 637 | rbd_dev->mapping.size = header->snap_sizes[i]; |
638 | if (size) | 638 | |
639 | *size = header->snap_sizes[i]; | ||
640 | return i; | 639 | return i; |
641 | } | 640 | } |
642 | p += strlen(p) + 1; /* Skip ahead to the next name */ | 641 | p += strlen(p) + 1; /* Skip ahead to the next name */ |
@@ -657,9 +656,7 @@ static int rbd_header_set_snap(struct rbd_device *rbd_dev, char *snap_name) | |||
657 | rbd_dev->mapping.snap_exists = false; | 656 | rbd_dev->mapping.snap_exists = false; |
658 | rbd_dev->mapping.read_only = rbd_dev->rbd_opts.read_only; | 657 | rbd_dev->mapping.read_only = rbd_dev->rbd_opts.read_only; |
659 | } else { | 658 | } else { |
660 | ret = snap_by_name(&rbd_dev->header, snap_name, | 659 | ret = snap_by_name(rbd_dev, snap_name); |
661 | &rbd_dev->mapping.snap_id, | ||
662 | &rbd_dev->mapping.size); | ||
663 | if (ret < 0) | 660 | if (ret < 0) |
664 | goto done; | 661 | goto done; |
665 | rbd_dev->mapping.snap_exists = true; | 662 | rbd_dev->mapping.snap_exists = true; |