Re: [PATCH] mdadm.c: Fix error handling for --zero-superblock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/3/18 7:52 AM, Mariusz Tkaczyk wrote:
> When Kill() cannot open device or find superblock it return the same
> error and mdadm ignores it.
> Change error handling in Kill() function. Return error if device is
> busy, ignore it only when superblock doesn't exist- assume that metadata
> is zeroed.

Applied!

Thanks,
Jes


> Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@xxxxxxxxx>
> ---
>  Kill.c  | 5 +++--
>  mdadm.c | 2 +-
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/Kill.c b/Kill.c
> index ff52561..d4767e2 100644
> --- a/Kill.c
> +++ b/Kill.c
> @@ -37,7 +37,8 @@ int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl)
>  	 * Returns:
>  	 *  0 - a zero superblock was successfully written out
>  	 *  1 - failed to write the zero superblock
> -	 *  2 - failed to open the device or find a superblock.
> +	 *  2 - failed to open the device.
> +	 *  4 - failed to find a superblock.
>  	 */
>  
>  	int fd, rv = 0;
> @@ -57,7 +58,7 @@ int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl)
>  		if (verbose >= 0)
>  			pr_err("Unrecognised md component device - %s\n", dev);
>  		close(fd);
> -		return 2;
> +		return 4;
>  	}
>  	st->ignore_hw_compat = 1;
>  	rv = st->ss->load_super(st, fd, dev);
> diff --git a/mdadm.c b/mdadm.c
> index 1cf5c18..25a1abd 100644
> --- a/mdadm.c
> +++ b/mdadm.c
> @@ -1959,7 +1959,7 @@ static int misc_list(struct mddev_dev *devlist,
>  					rv |= Kill(dv->devname, NULL, c->force, v, 0);
>  					v = -1;
>  				} while (rv == 0);
> -				rv &= ~2;
> +				rv &= ~4;
>  			}
>  			continue;
>  		case 'Q':
> 




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux