diff options
author | Alex Elder <elder@inktank.com> | 2013-04-30 01:44:33 -0400 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-05-02 00:20:12 -0400 |
commit | cb75223d2b19161e8d916049673cd297cce43cdd (patch) | |
tree | ad1e4154cdbbf0d13e70f4ba655d3e9bea9aee5b /drivers/block | |
parent | a3fbe5d447bf1f63efa7f4d8c222002ef136cf4b (diff) |
rbd: snap names are pointer to constant data
Make explicit that snapshot names don't change by making functions
return and take parameters that that point to const qualified data.
This resolves:
http://tracker.ceph.com/issues/4867
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 | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index ab2c788a22ad..4be3b2a1be8e 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c | |||
@@ -3435,10 +3435,10 @@ static struct rbd_snap *rbd_snap_create(struct rbd_device *rbd_dev, | |||
3435 | * Returns a dynamically-allocated snapshot name if successful, or a | 3435 | * Returns a dynamically-allocated snapshot name if successful, or a |
3436 | * pointer-coded error otherwise. | 3436 | * pointer-coded error otherwise. |
3437 | */ | 3437 | */ |
3438 | static char *rbd_dev_v1_snap_info(struct rbd_device *rbd_dev, u32 which, | 3438 | static const char *rbd_dev_v1_snap_info(struct rbd_device *rbd_dev, u32 which, |
3439 | u64 *snap_size, u64 *snap_features) | 3439 | u64 *snap_size, u64 *snap_features) |
3440 | { | 3440 | { |
3441 | char *snap_name; | 3441 | const char *snap_name; |
3442 | int i; | 3442 | int i; |
3443 | 3443 | ||
3444 | rbd_assert(which < rbd_dev->header.snapc->num_snaps); | 3444 | rbd_assert(which < rbd_dev->header.snapc->num_snaps); |
@@ -3907,7 +3907,7 @@ out: | |||
3907 | return ret; | 3907 | return ret; |
3908 | } | 3908 | } |
3909 | 3909 | ||
3910 | static char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev, u32 which) | 3910 | static const char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev, u32 which) |
3911 | { | 3911 | { |
3912 | size_t size; | 3912 | size_t size; |
3913 | void *reply_buf; | 3913 | void *reply_buf; |
@@ -3948,13 +3948,13 @@ out: | |||
3948 | return snap_name; | 3948 | return snap_name; |
3949 | } | 3949 | } |
3950 | 3950 | ||
3951 | static char *rbd_dev_v2_snap_info(struct rbd_device *rbd_dev, u32 which, | 3951 | static const char *rbd_dev_v2_snap_info(struct rbd_device *rbd_dev, u32 which, |
3952 | u64 *snap_size, u64 *snap_features) | 3952 | u64 *snap_size, u64 *snap_features) |
3953 | { | 3953 | { |
3954 | u64 snap_id; | 3954 | u64 snap_id; |
3955 | u64 size; | 3955 | u64 size; |
3956 | u64 features; | 3956 | u64 features; |
3957 | char *snap_name; | 3957 | const char *snap_name; |
3958 | int ret; | 3958 | int ret; |
3959 | 3959 | ||
3960 | rbd_assert(which < rbd_dev->header.snapc->num_snaps); | 3960 | rbd_assert(which < rbd_dev->header.snapc->num_snaps); |
@@ -3978,7 +3978,7 @@ out_err: | |||
3978 | return ERR_PTR(ret); | 3978 | return ERR_PTR(ret); |
3979 | } | 3979 | } |
3980 | 3980 | ||
3981 | static char *rbd_dev_snap_info(struct rbd_device *rbd_dev, u32 which, | 3981 | static const char *rbd_dev_snap_info(struct rbd_device *rbd_dev, u32 which, |
3982 | u64 *snap_size, u64 *snap_features) | 3982 | u64 *snap_size, u64 *snap_features) |
3983 | { | 3983 | { |
3984 | if (rbd_dev->image_format == 1) | 3984 | if (rbd_dev->image_format == 1) |
@@ -4045,7 +4045,7 @@ static int rbd_dev_snaps_update(struct rbd_device *rbd_dev) | |||
4045 | while (index < snap_count || links != head) { | 4045 | while (index < snap_count || links != head) { |
4046 | u64 snap_id; | 4046 | u64 snap_id; |
4047 | struct rbd_snap *snap; | 4047 | struct rbd_snap *snap; |
4048 | char *snap_name; | 4048 | const char *snap_name; |
4049 | u64 snap_size = 0; | 4049 | u64 snap_size = 0; |
4050 | u64 snap_features = 0; | 4050 | u64 snap_features = 0; |
4051 | 4051 | ||