Re: 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.
>
Yes, i agree with your point.
For func setup_conf,there was alreday EINVAL, so modify EIO to EINVAL isn't add a new return code.
I think for upper caller no effect.
For func run, the caller alse had EINVAL.So modify had no effect.

Jianpeng
>NeilBrown
>?韬{.n?????%??檩??w?{.n???{炳盯w???塄}?财??j:+v??????2??璀??摺?囤??z夸z罐?+?????w棹f



[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