linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Adam Kwolek <adam.kwolek@intel.com>
Cc: linux-raid@vger.kernel.org, ed.ciechanowski@intel.com,
	marcin.labun@intel.com
Subject: Re: [PATCH 10/14] Perform restore backup for reshape continuation
Date: Wed, 21 Sep 2011 12:29:56 +1000	[thread overview]
Message-ID: <20110921122956.6786fc86@notabene.brown> (raw)
In-Reply-To: <20110916115503.5201.11096.stgit@gklab-128-013.igk.intel.com>

[-- Attachment #1: Type: text/plain, Size: 1741 bytes --]

On Fri, 16 Sep 2011 13:55:03 +0200 Adam Kwolek <adam.kwolek@intel.com> wrote:

> It can happen that reshape is broken by different reason than reboot.
> this means that on reshape continuation start we cannot be sure
> that critical section has been restored already.

I don't think this is true.

If the array is running, then the critical section must have been restored.
Anything else is simply wrong.

What scenario are you thinking of here?

Thanks,
NeilBrown


> 
> Restore data from checkpoint before reshape continuation to avoid
> data corruption.
> 
> Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
> ---
> 
>  Grow.c |   18 +++++++++++++++++-
>  1 files changed, 17 insertions(+), 1 deletions(-)
> 
> diff --git a/Grow.c b/Grow.c
> index 0b96f7a..da8b72d 100644
> --- a/Grow.c
> +++ b/Grow.c
> @@ -3652,6 +3652,9 @@ int Grow_continue_command(char *devname, int fd,
>  	char container[20];
>  	int cfd = -1;
>  	int fd2 = -1;
> +	int spares;
> +	int working_disks;
> +	struct mdinfo *dev;
>  
>  	dprintf("Grow continue from command line called for %s\n",
>  		devname);
> @@ -3753,7 +3756,20 @@ int Grow_continue_command(char *devname, int fd,
>  
>  	/* continue reshape
>  	 */
> -	ret_val = Grow_continue(fd, st, content, backup_file);
> +	dev = content->devs;
> +	spares = 0;
> +	working_disks = 0;
> +	while (dev) {
> +		if (dev->disk.raid_disk == -1)
> +			spares++;
> +		else
> +			working_disks++;
> +		dev = dev->next;
> +	}
> +	ret_val = restore_backup(st, content, working_disks, spares,
> +				 backup_file, verbose);
> +	if (!ret_val)
> +		ret_val = Grow_continue(fd, st, content, backup_file);
>  
>  Grow_continue_command_exit:
>  	if (fd2 > -1)


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 190 bytes --]

  reply	other threads:[~2011-09-21  2:29 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-16 11:53 [PATCH 00/14] Series short description Adam Kwolek
2011-09-16 11:53 ` [PATCH 01/14] Stop array reshape when mounted initramfs is detected Adam Kwolek
2011-09-19 10:42   ` NeilBrown
2011-09-19 11:14     ` Kwolek, Adam
2011-09-16 11:54 ` [PATCH 02/14] Stop container reshape while using initramfs Adam Kwolek
2011-09-16 11:54 ` [PATCH 03/14] FIX: Do not unblock array accidentally Adam Kwolek
2011-09-21  2:19   ` NeilBrown
2011-09-16 11:54 ` [PATCH 04/14] Add continue option to grow command Adam Kwolek
2011-09-21  2:22   ` NeilBrown
2011-09-21  7:47     ` Kwolek, Adam
2011-09-16 11:54 ` [PATCH 05/14] Add Grow_continue_command Adam Kwolek
2011-09-16 11:54 ` [PATCH 06/14] Check and run mdmon Adam Kwolek
2011-09-16 11:54 ` [PATCH 07/14] FIX: Memory leak during Assembly Adam Kwolek
2011-09-21  2:23   ` NeilBrown
2011-09-16 11:54 ` [PATCH 08/14] Check if reshape can be restarted Adam Kwolek
2011-09-21  2:27   ` NeilBrown
2011-09-21  7:45     ` Kwolek, Adam
2011-09-16 11:54 ` [PATCH 09/14] Move restore backup code to function Adam Kwolek
2011-09-21  2:28   ` NeilBrown
2011-09-16 11:55 ` [PATCH 10/14] Perform restore backup for reshape continuation Adam Kwolek
2011-09-21  2:29   ` NeilBrown [this message]
2011-09-21  7:35     ` Kwolek, Adam
2011-09-16 11:55 ` [PATCH 11/14] Add possibility to restart reshape for native metadata Adam Kwolek
2011-09-16 11:55 ` [PATCH 12/14] Early reshape backup verification Adam Kwolek
2011-09-21  2:31   ` NeilBrown
2011-09-21  7:33     ` Kwolek, Adam
2011-09-16 11:55 ` [PATCH 13/14] Check if md allows to control reshape Adam Kwolek
2011-09-21  2:33   ` NeilBrown
2011-09-21  7:31     ` Kwolek, Adam
2011-09-21  7:51       ` NeilBrown
2011-09-16 11:55 ` [PATCH 14/14] Manual update for --continue option Adam Kwolek

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=20110921122956.6786fc86@notabene.brown \
    --to=neilb@suse.de \
    --cc=adam.kwolek@intel.com \
    --cc=ed.ciechanowski@intel.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=marcin.labun@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).