Re: [PATCH V2] allow RAID5 to grow to RAID6 with a backup_file
From: Jes Sorensen <hidden>
Date: 2020-05-08 14:01:18
On 5/5/20 2:35 PM, Nigel Croxon wrote:
quoted hunk ↗ jump to hunk
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 <redacted> --- 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