All of lore.kernel.org
 help / color / mirror / Atom feed
From: Song Liu <song@kernel.org>
To: Pascal Hambourg <pascal@plouf.fr.eu.org>
Cc: NeilBrown <neilb@suse.de>, 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: Thu, 14 Apr 2022 12:02:02 -0700	[thread overview]
Message-ID: <CAPhsuW5+Y4K+fNSgx5AYwHkAHPw8i9z01LWrXM5qOP8qvvzuCg@mail.gmail.com> (raw)
In-Reply-To: <7ffe1f1e-1054-6119-83a8-53edd89a902b@plouf.fr.eu.org>

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/
s/Reviewed-By/Review-by/

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-14 19:02 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 [this message]
2022-04-15  4:07   ` NeilBrown
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=CAPhsuW5+Y4K+fNSgx5AYwHkAHPw8i9z01LWrXM5qOP8qvvzuCg@mail.gmail.com \
    --to=song@kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=pascal@plouf.fr.eu.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.