All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomohiro Kusumi <kusumi.tomohiro@jp.fujitsu.com>
To: Mikulas Patocka <mpatocka@redhat.com>,
	Alasdair G Kergon <agk@redhat.com>,
	dm-devel@redhat.com
Cc: linux-kernel@vger.kernel.org, kusumi.tomohiro@jp.fujitsu.com
Subject: Re: [PATCH] fix hard-coded disk header chunk size for persistent snapshot
Date: Wed, 12 May 2010 14:57:34 +0900	[thread overview]
Message-ID: <4BEA434E.3030403@jp.fujitsu.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1005120055020.1551@hs20-bc2-1.build.redhat.com>

(2010/05/12 13:58), Mikulas Patocka wrote:
>
>
> On Wed, 12 May 2010, Alasdair G Kergon wrote:
>
>> On Wed, May 12, 2010 at 10:29:22AM +0900, Tomohiro Kusumi wrote:
>>> This patch fixes hard-coded value for the size of a chunk that includes
>>> disk header for persistent snapshot. It should be changed to existing
>>> macro NUM_SNAPSHOT_HDR_CHUNKS instead of using hard-coded value 1.
>>
>> Any more places too?  (E.g. persistent_commit_merge)
>>
>> Alasdair
>
> I think the expression in persistent_commit_merge should be changed to:
> ps->next_free = area_location(ps, ps->current_area) +
>                  ps->current_committed + 1;
>
> It is numerically the same, but will avoid trouble if
> NUM_SNAPSHOT_HDR_CHUNKS is increased.
>
> Mikulas
>
>

agree,

a single chunk is large enough to contain 16byte disk header
which does not seem necessary to increase NUM_SNAPSHOT_HDR_CHUNKS in the future
(unless whole structure get totally changed),
but it should also get fixed to avoid trouble.

I merged it to the patch with your names signed off.

Thanks,
Tomohiro Kusumi


Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@jp.fujitsu.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
---

diff -aNur linux-2.6.34-rc7.org/drivers/md/dm-snap-persistent.c linux-2.6.34-rc7/drivers/md/dm-snap-persistent.c
--- linux-2.6.34-rc7.org/drivers/md/dm-snap-persistent.c	2010-05-10 10:36:28.000000000 +0900
+++ linux-2.6.34-rc7/drivers/md/dm-snap-persistent.c	2010-05-12 14:49:13.000000000 +0900
@@ -266,7 +266,7 @@
   */
  static chunk_t area_location(struct pstore *ps, chunk_t area)
  {
-	return 1 + ((ps->exceptions_per_area + 1) * area);
+	return NUM_SNAPSHOT_HDR_CHUNKS + ((ps->exceptions_per_area + 1) * area);
  }
  
  /*
@@ -780,8 +780,8 @@
  	 * ps->current_area does not get reduced by prepare_merge() until
  	 * after commit_merge() has removed the nr_merged previous exceptions.
  	 */
-	ps->next_free = (area_location(ps, ps->current_area) - 1) +
-			(ps->current_committed + 1) + NUM_SNAPSHOT_HDR_CHUNKS;
+	ps->next_free = area_location(ps, ps->current_area) +
+			ps->current_committed + 1;
  
  	return 0;
  }

      reply	other threads:[~2010-05-12  5:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-12  1:29 [PATCH] fix hard-coded disk header chunk size for persistent snapshot Tomohiro Kusumi
2010-05-12  1:39 ` Alasdair G Kergon
2010-05-12  4:58   ` Mikulas Patocka
2010-05-12  5:57     ` Tomohiro Kusumi [this message]

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=4BEA434E.3030403@jp.fujitsu.com \
    --to=kusumi.tomohiro@jp.fujitsu.com \
    --cc=agk@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpatocka@redhat.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.