linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Piergiorgio Sartor <piergiorgio.sartor@nexgo.de>
Cc: linux-raid@vger.kernel.org
Subject: Re: [PATCH] RAID-6 check standalone md device
Date: Tue, 5 Apr 2011 09:01:13 +1000	[thread overview]
Message-ID: <20110405090113.5454b403@notabene.brown> (raw)
In-Reply-To: <20110331185346.GA5210@lazy.lzy>

On Thu, 31 Mar 2011 20:53:46 +0200 Piergiorgio Sartor
<piergiorgio.sartor@nexgo.de> wrote:

> Hi Neil,
> 
> please find below the promised patch for the
> RAID-6 check, which allows to pass only the
> MD device, start and length.
> The three parameters are mandatory.
> 
> All necessary information is collected using
> the "sysfs_read()" call.
> Furthermore, if "length" is "0", then the check
> is performed until the end of the array.
> 
> The "Makefile" needed modifications too (as done
> previously) in order to link "sysfs.c".
> 
> Some checks are done, for example if the md device
> is really a RAID-6. Nevertheless I guess it is not
> bullet proof...
> 
> Next patch will include the "suspend" action.
> My idea is to do it "per stripe", please let me
> know if you've some better options.

Hi,
 I've applied this patch after some minor clean ups (indenting mostly).
 I rearranged some code first so that we don't need to link all all of the
 rest of mdadm - just a few 'library-style' files.

 I'm not sure about the loop:
>  
> +	comp = info->devs;
>  	for (i=0; i<raid_disks; i++) {
> -		char *p;
> -		p = strchr(argv[6+i], ':');
> -
> -		if(p != NULL) {
> -			*p++ = '\0';
> -			offsets[i] = atoll(p) * 512;
> -		}
> -		fds[i] = open(argv[6+i], O_RDWR);
> -		if (fds[i] < 0) {
> -			perror(argv[6+i]);
> -			fprintf(stderr,"test_stripe: cannot open %s.\n", argv[6+i]);
> +		int disk_slot = comp->disk.raid_disk;
> +		disk_name[disk_slot] = map_dev(comp->disk.major, comp->disk.minor, 0);
> +		offsets[disk_slot] = comp->data_offset * 512;
> +		fds[disk_slot] = open(disk_name[disk_slot], O_RDWR);
> +		if (fds[disk_slot] < 0) {
> +			perror(disk_name[disk_slot]);
> +			fprintf(stderr,"%s: cannot open %s\n", prg, disk_name[disk_slot]);
>  			exit(3);
>  		}
> +
> +		comp = comp->next;
>  	}


The 'info->devs' list could include spare devices mixed in with the other
devices.  So the 'for' loop should go to the end of list list, and we should
ignore devices which are not active..
So you should probably fix this.

You will be able to find the applied patch in my 'master' branch shortly.

Thanks,
NeilBrown


  parent reply	other threads:[~2011-04-04 23:01 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-21 20:45 [PATCH] RAID-6 check standalone Piergiorgio Sartor
2011-03-07 19:33 ` Piergiorgio Sartor
2011-03-21  3:02 ` NeilBrown
2011-03-21 10:40   ` Piergiorgio Sartor
2011-03-21 11:04     ` NeilBrown
2011-03-21 11:54       ` Piergiorgio Sartor
2011-03-21 22:59         ` NeilBrown
2011-03-31 18:53           ` [PATCH] RAID-6 check standalone md device Piergiorgio Sartor
     [not found]             ` <4D96597C.1020103@tuxes.nl>
     [not found]               ` <20110402071310.GA2640@lazy.lzy>
2011-04-02 10:33                 ` Bas van Schaik
2011-04-02 11:03                   ` Piergiorgio Sartor
2011-04-04 23:01             ` NeilBrown [this message]
2011-04-05 19:56               ` Piergiorgio Sartor
2011-04-04 17:52           ` [PATCH] RAID-6 check standalone code cleanup Piergiorgio Sartor
2011-04-04 23:12             ` NeilBrown
2011-04-06 18:02               ` Piergiorgio Sartor
2011-04-13 20:48                 ` [PATCH] RAID-6 check standalone fix component list parsing Piergiorgio Sartor
2011-04-14  7:29                   ` NeilBrown
2011-04-14  7:32                 ` [PATCH] RAID-6 check standalone code cleanup NeilBrown
2011-05-08 18:54               ` [PATCH] RAID-6 check standalone suspend array Piergiorgio Sartor
2011-05-09  1:45                 ` NeilBrown
2011-05-09 18:43                   ` [PATCH] RAID-6 check standalone suspend array V2.0 Piergiorgio Sartor
2011-05-15 21:15                     ` Piergiorgio Sartor
2011-05-16 10:08                       ` NeilBrown
2011-07-20 17:57                         ` Piergiorgio Sartor
2011-07-22  6:41                           ` Luca Berra
2011-07-25 18:53                             ` Piergiorgio Sartor
2011-07-26  5:25                           ` NeilBrown
2011-08-07 17:09                             ` [PATCH] RAID-6 check standalone man page Piergiorgio Sartor
2011-08-09  0:43                               ` NeilBrown

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=20110405090113.5454b403@notabene.brown \
    --to=neilb@suse.de \
    --cc=linux-raid@vger.kernel.org \
    --cc=piergiorgio.sartor@nexgo.de \
    /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).