change in disk failure policy for non-BBL arrays?

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

 



Hello,

We've noticed that for an array on which the bad block list has been disabled, a failed write from a 'check' operation no longer causes the offending disk to be failed out of the array.  As far as I can tell, this behavior changed with commit https://github.com/torvalds/linux/commit/fc974ee2bffdde47d1e4b220cf326952cc2c4794, which adopted the block layer badblocks code and deprecated the MD-specific code.

It looks like this commit changed underlying code that adds a range of bad blocks to the BB table (md_set_badblocks --> badblocks_set) such that the sense of the return code reversed, from 0 meaning an error occurred to 0 meaning success, but the return code due to a disabled BB was left at 0.  With this change, therefore, for arrays without a BBL, calls to 'rdev_set_badblocks' changed from always a failure to always a success, and code such as

                                if (rdev_set_badblocks(
                                            rdev,
r10_bio->devs[m].addr,
                                            r10_bio->sectors, 0))
                                        md_error(conf->mddev, rdev);

that previously would have failed the disk no longer do.  Was this change in policy deliberate?

Thanks,
Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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