Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb75223d authored by Alex Elder's avatar Alex Elder Committed by Sage Weil
Browse files

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: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent a3fbe5d4
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -3435,10 +3435,10 @@ static struct rbd_snap *rbd_snap_create(struct rbd_device *rbd_dev,
 * Returns a dynamically-allocated snapshot name if successful, or a
 * Returns a dynamically-allocated snapshot name if successful, or a
 * pointer-coded error otherwise.
 * pointer-coded error otherwise.
 */
 */
static char *rbd_dev_v1_snap_info(struct rbd_device *rbd_dev, u32 which,
static const char *rbd_dev_v1_snap_info(struct rbd_device *rbd_dev, u32 which,
		u64 *snap_size, u64 *snap_features)
		u64 *snap_size, u64 *snap_features)
{
{
	char *snap_name;
	const char *snap_name;
	int i;
	int i;


	rbd_assert(which < rbd_dev->header.snapc->num_snaps);
	rbd_assert(which < rbd_dev->header.snapc->num_snaps);
@@ -3907,7 +3907,7 @@ static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev, u64 *ver)
	return ret;
	return ret;
}
}


static char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev, u32 which)
static const char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev, u32 which)
{
{
	size_t size;
	size_t size;
	void *reply_buf;
	void *reply_buf;
@@ -3948,13 +3948,13 @@ static char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev, u32 which)
	return snap_name;
	return snap_name;
}
}


static char *rbd_dev_v2_snap_info(struct rbd_device *rbd_dev, u32 which,
static const char *rbd_dev_v2_snap_info(struct rbd_device *rbd_dev, u32 which,
		u64 *snap_size, u64 *snap_features)
		u64 *snap_size, u64 *snap_features)
{
{
	u64 snap_id;
	u64 snap_id;
	u64 size;
	u64 size;
	u64 features;
	u64 features;
	char *snap_name;
	const char *snap_name;
	int ret;
	int ret;


	rbd_assert(which < rbd_dev->header.snapc->num_snaps);
	rbd_assert(which < rbd_dev->header.snapc->num_snaps);
@@ -3978,7 +3978,7 @@ static char *rbd_dev_v2_snap_info(struct rbd_device *rbd_dev, u32 which,
	return ERR_PTR(ret);
	return ERR_PTR(ret);
}
}


static char *rbd_dev_snap_info(struct rbd_device *rbd_dev, u32 which,
static const char *rbd_dev_snap_info(struct rbd_device *rbd_dev, u32 which,
		u64 *snap_size, u64 *snap_features)
		u64 *snap_size, u64 *snap_features)
{
{
	if (rbd_dev->image_format == 1)
	if (rbd_dev->image_format == 1)
@@ -4045,7 +4045,7 @@ static int rbd_dev_snaps_update(struct rbd_device *rbd_dev)
	while (index < snap_count || links != head) {
	while (index < snap_count || links != head) {
		u64 snap_id;
		u64 snap_id;
		struct rbd_snap *snap;
		struct rbd_snap *snap;
		char *snap_name;
		const char *snap_name;
		u64 snap_size = 0;
		u64 snap_size = 0;
		u64 snap_features = 0;
		u64 snap_features = 0;