diff mbox series

Grow: block -n on external volumes.

Message ID 20220519071608.26259-1-mateusz.kusiak@intel.com (mailing list archive)
State New, archived
Delegated to: Jes Sorensen
Headers show
Series Grow: block -n on external volumes. | expand

Commit Message

Mateusz Kusiak May 19, 2022, 7:16 a.m. UTC
Performing --raid-devices on external metadata volume should be blocked
as it causes unwanted behaviour.

Eg. Performing
mdadm -G /dev/md/volume -l10 -n4
on r0_d2 inside 4 disk container, returns
mdadm: Need 2 spares to avoid degraded array, only have 0.

Signed-off-by: Mateusz Kusiak <mateusz.kusiak@intel.com>
---
 Grow.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Coly Li May 23, 2022, 4:11 p.m. UTC | #1
On 5/19/22 3:16 PM, Mateusz Kusiak wrote:
> Performing --raid-devices on external metadata volume should be blocked
> as it causes unwanted behaviour.
>
> Eg. Performing
> mdadm -G /dev/md/volume -l10 -n4
> on r0_d2 inside 4 disk container, returns
> mdadm: Need 2 spares to avoid degraded array, only have 0.
>
> Signed-off-by: Mateusz Kusiak <mateusz.kusiak@intel.com>
> ---
>   Grow.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/Grow.c b/Grow.c
> index 8a242b0f..f6efbc48 100644
> --- a/Grow.c
> +++ b/Grow.c
> @@ -1892,6 +1892,14 @@ int Grow_reshape(char *devname, int fd,
>   
>   		if (retval) {
>   			pr_err("Cannot read superblock for %s\n", devname);
> +			close(cfd);
> +			free(subarray);
> +			return 1;
> +		}
> +
> +		if (s->raiddisks && subarray) {
> +			pr_err("--raid-devices operation can be performed on a container only\n");
> +			close(cfd);
>   			free(subarray);
>   			return 1;
>   		}

Hi Mateusz,

It seems the above patch has some both-modified part with a previous 
posted patch "Grow: Split Grow_reshape into helper function."

I will skip this patch and test/review rested patches. Once them are all 
done, could you please post a rebased version again then?


Thanks.


Coly Li
Jes Sorensen June 9, 2022, 10:13 p.m. UTC | #2
On 5/19/22 03:16, Mateusz Kusiak wrote:
> Performing --raid-devices on external metadata volume should be blocked
> as it causes unwanted behaviour.
> 
> Eg. Performing
> mdadm -G /dev/md/volume -l10 -n4
> on r0_d2 inside 4 disk container, returns
> mdadm: Need 2 spares to avoid degraded array, only have 0.
> 
> Signed-off-by: Mateusz Kusiak <mateusz.kusiak@intel.com>
> ---
>  Grow.c | 8 ++++++++
>  1 file changed, 8 insertions(+)

Applied!

Thanks,
Jes
diff mbox series

Patch

diff --git a/Grow.c b/Grow.c
index 8a242b0f..f6efbc48 100644
--- a/Grow.c
+++ b/Grow.c
@@ -1892,6 +1892,14 @@  int Grow_reshape(char *devname, int fd,
 
 		if (retval) {
 			pr_err("Cannot read superblock for %s\n", devname);
+			close(cfd);
+			free(subarray);
+			return 1;
+		}
+
+		if (s->raiddisks && subarray) {
+			pr_err("--raid-devices operation can be performed on a container only\n");
+			close(cfd);
 			free(subarray);
 			return 1;
 		}