I have the physical disk sector/drive, so I will have to go backwards. That means using compute_blocknr, factoring the chunk size, stripe size, look at the raid5_private_data to get everything else, including whether or not it is in a rebuild, what position the disk has in the stripe, among other things .. and repeat for RAID6. Still all scriptable .. as long as I keep the block calculations in 64-bits when on 32-bit kernel. I can parse mdadm -Q -D to get health and configuration, or get it from sysfs, haven't decided. Now for recovery ... a change was made in 2.6.15 that affects how the /dev/md recalculates & corrects the error, but I don't think I have to worry about it. Just directly read the /dev/md block that corresponds to the faulty physical disk/sector. This should just repair the bad block w/o enticing the md system to fail over the entire disk. Exception would be if the disk with bad block can remap due to a catastrophic failure, or lack of spare sectors. Even if the bad physical block lands on a parity block in the /dev/md space, it should get rebuilt because it has to read the entire stripe to figure out if there is a parity error, which there will be because one disk will return the sense data indicating an unrecoverable read error, so the md will repair the stripe to keep parity consistent for me. -----Original Message----- From: dan.j.williams@xxxxxxxxx [mailto:dan.j.williams@xxxxxxxxx] On Behalf Of Dan Williams Sent: Tuesday, April 15, 2008 7:37 PM To: David Lethe Cc: linux-raid@xxxxxxxxxxxxxxx Subject: Re: Mapping physical disk block to logical block to selectively repair w/o forcing rescan > > > > Any advice, comments, code will be appreciated. > > > > raid5_compute_sector() in drivers/md/raid5.c maps the logical RAID > block to the physical block. Is that what you are looking for? > ...and compute_blocknr() goes the other way. -- Dan -- 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