From: Alex Elder <alex.elder@linaro.org>
To: Josh Durgin <josh.durgin@inktank.com>
Cc: ceph-devel@vger.kernel.org
Subject: Re: [PATCH] rbd: send snapshot context with writes
Date: Thu, 27 Jun 2013 07:40:19 -0500 [thread overview]
Message-ID: <51CC32B3.8010907@linaro.org> (raw)
In-Reply-To: <1372277199-9774-1-git-send-email-josh.durgin@inktank.com>
On 06/26/2013 03:06 PM, Josh Durgin wrote:
> Sending the right snapshot context with each write is required for
> snapshots to work. Due to the ordering of calls, the snapshot context
> is never set for any requests. This causes writes to the current
> version of the image to be reflected in all snapshots, which are
> supposed to be read-only.
>
> This happens because rbd_osd_req_format_write() sets the snapshot
> context based on obj_request->img_request. At this point, however,
> obj_request->img_request has not been set yet, to the snapshot context
> is set to NULL. Fix this by moving rbd_img_obj_request_add(), which
> sets obj_request->img_request, before the osd request formatting
> calls.
>
> This resolves:
> http://tracker.ceph.com/issues/5465
That appears to be the wrong bug number.
One fix needed for commenting style (don't use "//"), but otherwise
this looks good.
Reviewed-by: Alex Elder <elder@linaro.org>
> Reported-by: Karol Jurak <karol.jurak@gmail.com>
> Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
> ---
> drivers/block/rbd.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
> index d79831a..4b03d02 100644
> --- a/drivers/block/rbd.c
> +++ b/drivers/block/rbd.c
> @@ -2266,13 +2266,15 @@ static int rbd_img_request_fill(struct rbd_img_request *img_request,
> obj_request->pages, length,
> offset & ~PAGE_MASK, false, false);
>
> + // writes get the snapc from the img_request, so
> + // set it before formatting the osd_req
Don't use C++ comments, use /* */.
> + rbd_img_obj_request_add(img_request, obj_request);
> if (write_request)
> rbd_osd_req_format_write(obj_request);
> else
> rbd_osd_req_format_read(obj_request);
>
> obj_request->img_offset = img_offset;
> - rbd_img_obj_request_add(img_request, obj_request);
>
> img_offset += length;
> resid -= length;
>
next prev parent reply other threads:[~2013-06-27 12:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-26 20:06 [PATCH] rbd: send snapshot context with writes Josh Durgin
2013-06-27 12:40 ` Alex Elder [this message]
2013-06-27 12:54 ` Sage Weil
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=51CC32B3.8010907@linaro.org \
--to=alex.elder@linaro.org \
--cc=ceph-devel@vger.kernel.org \
--cc=josh.durgin@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.