Re: [PATCH 1/1] md: return -ENODEV if rdev has no mddev assigned

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

 



On 3/27/19 13:48, Pawel Baldysiak wrote:
Mdadm expects that setting drive as faulty will fail with -EBUSY only if
this operation will cause RAID to be failed. If this happens, it will
try to stop the array. Currently -EBUSY might also be returned if rdev
is in the middle of the removal process - for example there is a race
with mdmon that already requested the drive to be failed/removed.

If rdev does not contain mddev, return -ENODEV instead, so the caller
can distinguish between those two cases and behave accordingly.

Signed-off-by: Pawel Baldysiak <pawel.baldysiak@xxxxxxxxx>
---
  drivers/md/md.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index 245ab4a571a5..177cdf26b276 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3245,10 +3245,10 @@ rdev_attr_store(struct kobject *kobj, struct attribute *attr,
  		return -EIO;
  	if (!capable(CAP_SYS_ADMIN))
  		return -EACCES;
-	rv = mddev ? mddev_lock(mddev): -EBUSY;
+	rv = mddev ? mddev_lock(mddev) : -ENODEV;
  	if (!rv) {
  		if (rdev->mddev == NULL)
-			rv = -EBUSY;
+			rv = -ENODEV;
  		else
  			rv = entry->store(rdev, page, length);
  		mddev_unlock(mddev);

Hi,
Could you look into this patch?

Thanks
Pawel



[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