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 | |
| 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>
| -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; |
