All of lore.kernel.org
 help / color / mirror / Atom feed
From: "NeilBrown" <neilb@suse.de>
To: "Song Liu" <song@kernel.org>
Cc: "Pascal Hambourg" <pascal@plouf.fr.eu.org>,
	"linux-raid" <linux-raid@vger.kernel.org>
Subject: Re: [PATCH v2] md/raid0: Ignore RAID0 layout if the second zone has only one device
Date: Fri, 15 Apr 2022 14:07:11 +1000	[thread overview]
Message-ID: <164999563146.7179.4204941865640770764@noble.neil.brown.name> (raw)
In-Reply-To: <CAPhsuW5+Y4K+fNSgx5AYwHkAHPw8i9z01LWrXM5qOP8qvvzuCg@mail.gmail.com>

On Fri, 15 Apr 2022, Song Liu wrote:
> On Tue, Apr 12, 2022 at 11:54 PM Pascal Hambourg <pascal@plouf.fr.eu.org> wrote:
> >
> > The RAID0 layout is irrelevant if all members have the same size so the
> > array has only one zone. It is *also* irrelevant if the array has two
> > zones and the second zone has only one device, for example if the array
> > has two members of different sizes.
> >
> > So in that case it makes sense to allow assembly even when the layout is
> > undefined, like what is done when the array has only one zone.
> >
> > Reviewed-By: NeilBrown <neilb@suse.de>
> > Signed-off-by: Pascal Hambourg <pascal@plouf.fr.eu.org>
> 
> Thanks for the patch and thanks Neil for the review.
> 
> Applied to md-next with two minor changes:
> 
> s/ENOTSUPP/EOPNOTSUPP/

Why did you change the error code that was returned?  If you want to do
that it should be a separate patch with explanation.

> s/Reviewed-By/Review-by/

Do you mean s/Reviewed-By/Reviewed-by/  - i.e. change the B to b ??

Since v5.0 there have only be 5 "Review-by" and over 100,000
"Reviewed-by" (and about 100 "Reviewed-By").

Thanks,
NeilBrown


> 
> Thanks,
> Song
> 
> > ---
> >
> > Changes since v1:
> > - add missing Signed-off-by
> > - add missing subsystem maintainer in recipients
> >
> > ---
> >   drivers/md/raid0.c | 31 ++++++++++++++++---------------
> >   1 file changed, 16 insertions(+), 15 deletions(-)
> >
> > diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
> > index b21e101183f4..7623811cc11c 100644
> > --- a/drivers/md/raid0.c
> > +++ b/drivers/md/raid0.c
> > @@ -128,21 +128,6 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
> >         pr_debug("md/raid0:%s: FINAL %d zones\n",
> >                  mdname(mddev), conf->nr_strip_zones);
> >
> > -       if (conf->nr_strip_zones == 1) {
> > -               conf->layout = RAID0_ORIG_LAYOUT;
> > -       } else if (mddev->layout == RAID0_ORIG_LAYOUT ||
> > -                  mddev->layout == RAID0_ALT_MULTIZONE_LAYOUT) {
> > -               conf->layout = mddev->layout;
> > -       } else if (default_layout == RAID0_ORIG_LAYOUT ||
> > -                  default_layout == RAID0_ALT_MULTIZONE_LAYOUT) {
> > -               conf->layout = default_layout;
> > -       } else {
> > -               pr_err("md/raid0:%s: cannot assemble multi-zone RAID0 with default_layout setting\n",
> > -                      mdname(mddev));
> > -               pr_err("md/raid0: please set raid0.default_layout to 1 or 2\n");
> > -               err = -ENOTSUPP;
> > -               goto abort;
> > -       }
> >         /*
> >          * now since we have the hard sector sizes, we can make sure
> >          * chunk size is a multiple of that sector size
> > @@ -273,6 +258,22 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
> >                          (unsigned long long)smallest->sectors);
> >         }
> >
> > +       if (conf->nr_strip_zones == 1 || conf->strip_zone[1].nb_dev == 1) {
> > +               conf->layout = RAID0_ORIG_LAYOUT;
> > +       } else if (mddev->layout == RAID0_ORIG_LAYOUT ||
> > +                  mddev->layout == RAID0_ALT_MULTIZONE_LAYOUT) {
> > +               conf->layout = mddev->layout;
> > +       } else if (default_layout == RAID0_ORIG_LAYOUT ||
> > +                  default_layout == RAID0_ALT_MULTIZONE_LAYOUT) {
> > +               conf->layout = default_layout;
> > +       } else {
> > +               pr_err("md/raid0:%s: cannot assemble multi-zone RAID0 with default_layout setting\n",
> > +                      mdname(mddev));
> > +               pr_err("md/raid0: please set raid0.default_layout to 1 or 2\n");
> > +               err = -ENOTSUPP;
> > +               goto abort;
> > +       }
> > +
> >         pr_debug("md/raid0:%s: done.\n", mdname(mddev));
> >         *private_conf = conf;
> >
> > --
> > 2.11.0
> >
> 

  reply	other threads:[~2022-04-15  4:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-13  6:53 [PATCH v2] md/raid0: Ignore RAID0 layout if the second zone has only one device Pascal Hambourg
2022-04-14 19:02 ` Song Liu
2022-04-15  4:07   ` NeilBrown [this message]
2022-04-16 12:53   ` Pascal Hambourg

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=164999563146.7179.4204941865640770764@noble.neil.brown.name \
    --to=neilb@suse.de \
    --cc=linux-raid@vger.kernel.org \
    --cc=pascal@plouf.fr.eu.org \
    --cc=song@kernel.org \
    /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.