From: Josh Durgin <josh.durgin@inktank.com>
To: Alex Elder <elder@inktank.com>
Cc: ceph-devel@vger.kernel.org
Subject: Re: [PATCH 1/2] rbd: move snap info out of rbd_mapping struct
Date: Mon, 29 Oct 2012 13:43:21 -0700 [thread overview]
Message-ID: <508EEA69.9080001@inktank.com> (raw)
In-Reply-To: <508B13E7.30401@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
On 10/26/2012 03:51 PM, Alex Elder wrote:
> Moving the snap_id and snap_name fields into the separate
> rbd_mapping structure was misguided. (And in time, perhaps
> we'll do away with that structure altogether...)
>
> Move these fields back into struct rbd_device.
>
> Signed-off-by: Alex Elder <elder@inktank.com>
> ---
> drivers/block/rbd.c | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
> index 2a523a1..05525b2 100644
> --- a/drivers/block/rbd.c
> +++ b/drivers/block/rbd.c
> @@ -166,8 +166,6 @@ struct rbd_snap {
> };
>
> struct rbd_mapping {
> - char *snap_name;
> - u64 snap_id;
> u64 size;
> u64 features;
> bool snap_exists;
> @@ -199,6 +197,9 @@ struct rbd_device {
> char *pool_name;
> u64 pool_id;
>
> + char *snap_name;
> + u64 snap_id;
> +
> struct ceph_osd_event *watch_event;
> struct ceph_osd_request *watch_request;
>
> @@ -669,7 +670,7 @@ static int snap_by_name(struct rbd_device *rbd_dev,
> const char *snap_name)
>
> list_for_each_entry(snap, &rbd_dev->snaps, node) {
> if (!strcmp(snap_name, snap->name)) {
> - rbd_dev->mapping.snap_id = snap->id;
> + rbd_dev->snap_id = snap->id;
> rbd_dev->mapping.size = snap->size;
> rbd_dev->mapping.features = snap->features;
>
> @@ -686,7 +687,7 @@ static int rbd_dev_set_mapping(struct rbd_device
> *rbd_dev, char *snap_name)
>
> if (!memcmp(snap_name, RBD_SNAP_HEAD_NAME,
> sizeof (RBD_SNAP_HEAD_NAME))) {
> - rbd_dev->mapping.snap_id = CEPH_NOSNAP;
> + rbd_dev->snap_id = CEPH_NOSNAP;
> rbd_dev->mapping.size = rbd_dev->header.image_size;
> rbd_dev->mapping.features = rbd_dev->header.features;
> rbd_dev->mapping.snap_exists = false;
> @@ -698,7 +699,7 @@ static int rbd_dev_set_mapping(struct rbd_device
> *rbd_dev, char *snap_name)
> rbd_dev->mapping.snap_exists = true;
> rbd_dev->mapping.read_only = true;
> }
> - rbd_dev->mapping.snap_name = snap_name;
> + rbd_dev->snap_name = snap_name;
> done:
> return ret;
> }
> @@ -1278,7 +1279,7 @@ static int rbd_do_op(struct request *rq,
> opcode = CEPH_OSD_OP_READ;
> flags = CEPH_OSD_FLAG_READ;
> snapc = NULL;
> - snapid = rbd_dev->mapping.snap_id;
> + snapid = rbd_dev->snap_id;
> payload_len = 0;
> }
>
> @@ -1561,7 +1562,7 @@ static void rbd_rq_fn(struct request_queue *q)
>
> down_read(&rbd_dev->header_rwsem);
>
> - if (rbd_dev->mapping.snap_id != CEPH_NOSNAP &&
> + if (rbd_dev->snap_id != CEPH_NOSNAP &&
> !rbd_dev->mapping.snap_exists) {
> up_read(&rbd_dev->header_rwsem);
> dout("request for non-existent snapshot");
> @@ -1800,7 +1801,7 @@ static void rbd_update_mapping_size(struct
> rbd_device *rbd_dev)
> {
> sector_t size;
>
> - if (rbd_dev->mapping.snap_id != CEPH_NOSNAP)
> + if (rbd_dev->snap_id != CEPH_NOSNAP)
> return;
>
> size = (sector_t) rbd_dev->header.image_size / SECTOR_SIZE;
> @@ -2011,7 +2012,7 @@ static ssize_t rbd_snap_show(struct device *dev,
> {
> struct rbd_device *rbd_dev = dev_to_rbd_dev(dev);
>
> - return sprintf(buf, "%s\n", rbd_dev->mapping.snap_name);
> + return sprintf(buf, "%s\n", rbd_dev->snap_name);
> }
>
> static ssize_t rbd_image_refresh(struct device *dev,
> @@ -2567,12 +2568,11 @@ static int rbd_dev_snaps_update(struct
> rbd_device *rbd_dev)
>
> /* Existing snapshot not in the new snap context */
>
> - if (rbd_dev->mapping.snap_id == snap->id)
> + if (rbd_dev->snap_id == snap->id)
> rbd_dev->mapping.snap_exists = false;
> __rbd_remove_snap_dev(snap);
> dout("%ssnap id %llu has been removed\n",
> - rbd_dev->mapping.snap_id == snap->id ?
> - "mapped " : "",
> + rbd_dev->snap_id == snap->id ? "mapped " : "",
> (unsigned long long) snap->id);
>
> /* Done with this list entry; advance */
> @@ -3256,7 +3256,7 @@ err_out_client:
> rbd_put_client(rbd_dev);
> kfree(rbd_dev->image_id);
> err_out_args:
> - kfree(rbd_dev->mapping.snap_name);
> + kfree(rbd_dev->snap_name);
> kfree(rbd_dev->image_name);
> kfree(rbd_dev->pool_name);
> err_out_mem:
> @@ -3309,7 +3309,7 @@ static void rbd_dev_release(struct device *dev)
> rbd_header_free(&rbd_dev->header);
>
> /* done with the id, and with the rbd_dev */
> - kfree(rbd_dev->mapping.snap_name);
> + kfree(rbd_dev->snap_name);
> kfree(rbd_dev->image_id);
> kfree(rbd_dev->header_name);
> kfree(rbd_dev->pool_name);
>
next prev parent reply other threads:[~2012-10-29 20:43 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-26 22:42 Another pile of patches Alex Elder
2012-10-26 22:44 ` [PATCH, resend] rbd: simplify rbd_rq_fn() Alex Elder
2012-10-29 20:29 ` Josh Durgin
2012-10-30 12:01 ` Alex Elder
2012-10-26 22:45 ` [PATCH] rbd: remove snapshots on error in rbd_add() Alex Elder
2012-10-29 20:36 ` Josh Durgin
2012-10-26 22:45 ` [PATCH] rbd: make pool_id a 64 bit value Alex Elder
2012-10-29 20:40 ` Josh Durgin
2012-10-26 22:48 ` [PATCH 0/2] rbd: mapping structure changes Alex Elder
2012-10-26 22:51 ` [PATCH 1/2] rbd: move snap info out of rbd_mapping struct Alex Elder
2012-10-29 20:43 ` Josh Durgin [this message]
2012-10-26 22:51 ` [PATCH 2/2] rbd: rename snap_exists field Alex Elder
2012-10-29 20:46 ` Josh Durgin
2012-10-26 22:52 ` [PATCH 0/2] rbd: consolidate argument parsing Alex Elder
2012-10-26 22:55 ` [PATCH 1/2] rbd: move ceph_parse_options() call up Alex Elder
2012-10-29 21:08 ` Josh Durgin
2012-10-26 22:55 ` [PATCH 2/2] rbd: do all argument parsing in one place Alex Elder
2012-10-29 21:13 ` Josh Durgin
2012-10-26 22:56 ` [PATCH 0/8] rbd: have rbd_add_parse_args() only parse args Alex Elder
2012-10-26 23:00 ` [PATCH 1/8] rbd: get rid of snap_name_len Alex Elder
2012-10-29 21:14 ` Josh Durgin
2012-10-26 23:00 ` [PATCH 2/8] rbd: remove options args from rbd_add_parse_args() Alex Elder
2012-10-29 21:17 ` Josh Durgin
2012-10-26 23:01 ` [PATCH 3/8] rbd: remove snap_name arg " Alex Elder
2012-10-29 21:26 ` Josh Durgin
2012-10-26 23:02 ` [PATCH 4/8] rbd: pass and populate rbd_options structure Alex Elder
2012-10-29 21:27 ` Josh Durgin
2012-10-26 23:02 ` [PATCH 5/8] rbd: have rbd_add_parse_args() return error Alex Elder
2012-10-29 21:28 ` Josh Durgin
2012-10-26 23:03 ` [PATCH 6/8] rbd: define image specification structure Alex Elder
2012-10-29 22:13 ` Josh Durgin
2012-10-30 12:40 ` Alex Elder
2012-10-30 20:13 ` Josh Durgin
2012-10-26 23:03 ` [PATCH 7/8] rbd: add reference counting to rbd_spec Alex Elder
2012-10-29 22:20 ` Josh Durgin
2012-10-30 12:59 ` Alex Elder
2012-10-30 20:17 ` Josh Durgin
2012-10-26 23:03 ` [PATCH 8/8] rbd: fill rbd_spec in rbd_add_parse_args() Alex Elder
2012-10-29 22:30 ` Josh Durgin
2012-10-30 13:09 ` Alex Elder
2012-10-30 20:18 ` Josh Durgin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=508EEA69.9080001@inktank.com \
--to=josh.durgin@inktank.com \
--cc=ceph-devel@vger.kernel.org \
--cc=elder@inktank.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.