All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nigel Croxon <ncroxon@redhat.com>
To: Jes Sorensen <jes@trained-monkey.org>, linux-raid@vger.kernel.org
Subject: Re: [PATCH V2] allow RAID5 to grow to RAID6 with a backup_file
Date: Tue, 12 May 2020 12:26:08 -0400	[thread overview]
Message-ID: <7a37b29a-4d6c-b371-df26-aa67a32e57e8@redhat.com> (raw)
In-Reply-To: <2b7c4bbd-8bfd-e33b-ca52-0cb3385d46f1@redhat.com>

On 5/8/20 10:50 AM, Nigel Croxon wrote:
>
> On 5/8/20 10:01 AM, Jes Sorensen wrote:
>> On 5/5/20 2:35 PM, Nigel Croxon wrote:
>>> This problem came in, as the user did not specify a full path with
>>> the backup_file option when growing an RAID5 array to RAID6.
>>> When the full path is specified, the symbolic link is created
>>> properly (/run/mdadm/backup_file-mdX). But the code did not support
>>> the symbolic link when looking for the backup_file. Added two
>>> checks for symlink.
>>>
>>> This addresses https://www.spinics.net/lists/raid/msg48910.html
>>> and numerous customer reported problems.
>>>
>>> V2:
>>> - Removed unneeded break; in both case-statements
>>> - Returned the error checking on call to lstat
>>>
>>> Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
>>> ---
>>>   Grow.c | 21 +++++++++++++++++++--
>>>   1 file changed, 19 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/Grow.c b/Grow.c
>>> index 764374f..53245d7 100644
>>> --- a/Grow.c
>>> +++ b/Grow.c
>>> @@ -1135,6 +1135,15 @@ int reshape_open_backup_file(char *backup_file,
>>>       unsigned int dev;
>>>       int i;
>>>   +    if (lstat(backup_file, &stb) != -1) {
>>> +        switch (stb.st_mode & S_IFMT) {
>>> +        case S_IFLNK:
>>> +            return 1;
>>> +        default:
>>> +            break;
>>> +        }
>>> +    }
>>> +
>> Sorry for being a pita on this, but in this case you do the thing if the
>> lstat completes correctly, but what if it fails? In that case we should
>> error out rather than just continuing.
>>
>> Jes
>>
> There are two processes running in the reshape_array routine, the 
> original, where the user entered the mdadm grow parameter. And the 
> second, forked to call systemd mdadm-grow-continue@service.  It's in 
> the original call we want the code to continue rather than fail. It 
> needs to create the backup_file in the FS before the systemd thread runs.
>
> -Nigel
>
Jes,

Do you have more questions?  an alternate solution?

-Nigel

  reply	other threads:[~2020-05-12 16:26 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-05 18:35 [PATCH V2] allow RAID5 to grow to RAID6 with a backup_file Nigel Croxon
2020-05-08 14:01 ` Jes Sorensen
2020-05-08 14:50   ` Nigel Croxon
2020-05-12 16:26     ` Nigel Croxon [this message]
2020-05-12 18:50       ` Jes Sorensen

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=7a37b29a-4d6c-b371-df26-aa67a32e57e8@redhat.com \
    --to=ncroxon@redhat.com \
    --cc=jes@trained-monkey.org \
    --cc=linux-raid@vger.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.