Re: [PATCH 4/5] md: Return proper error rather than EIO.

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

 



On Sat, 27 Oct 2012 10:28:30 +0800 majianpeng <majianpeng@xxxxxxxxx> wrote:

> Signed-off-by: Jianpeng Ma <majianpeng@xxxxxxxxx>
> ---
>  drivers/md/raid1.c |    4 ++--
>  drivers/md/raid5.c |    4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
> index 8034fbd..e2f3783 100644
> --- a/drivers/md/raid1.c
> +++ b/drivers/md/raid1.c
> @@ -2799,12 +2799,12 @@ static int run(struct mddev *mddev)
>  	if (mddev->level != 1) {
>  		printk(KERN_ERR "md/raid1:%s: raid level not set to mirroring (%d)\n",
>  		       mdname(mddev), mddev->level);
> -		return -EIO;
> +		return -EINVAL;
>  	}
>  	if (mddev->reshape_position != MaxSector) {
>  		printk(KERN_ERR "md/raid1:%s: reshape_position set but not supported\n",
>  		       mdname(mddev));
> -		return -EIO;
> +		return -EINVAL;
>  	}
>  	/*
>  	 * copy the already verified devices into our private RAID1
> diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
> index c5439dc..684ca76 100644
> --- a/drivers/md/raid5.c
> +++ b/drivers/md/raid5.c
> @@ -5088,7 +5088,7 @@ static struct r5conf *setup_conf(struct mddev *mddev)
>  	    && mddev->new_level != 6) {
>  		printk(KERN_ERR "md/raid:%s: raid level not set to 4/5/6 (%d)\n",
>  		       mdname(mddev), mddev->new_level);
> -		return ERR_PTR(-EIO);
> +		return ERR_PTR(-EINVAL);
>  	}
>  	if ((mddev->new_level == 5
>  	     && !algorithm_valid_raid5(mddev->new_layout)) ||
> @@ -5096,7 +5096,7 @@ static struct r5conf *setup_conf(struct mddev *mddev)
>  	     && !algorithm_valid_raid6(mddev->new_layout))) {
>  		printk(KERN_ERR "md/raid:%s: layout %d not supported\n",
>  		       mdname(mddev), mddev->new_layout);
> -		return ERR_PTR(-EIO);
> +		return ERR_PTR(-EINVAL);
>  	}
>  	if (mddev->new_level == 6 && mddev->raid_disks < 4) {
>  		printk(KERN_ERR "md/raid:%s: not enough configured devices (%d, minimum 4)\n",


One doesn't just randomly change error return codes.
Maybe the current ones are "wrong", but they have been that way for many
years so they are effectively part of the API.  So they are "right" be
definition, even if they seem wrong.

NeilBrown

Attachment: signature.asc
Description: PGP signature


[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