Re: [bug?] raid1 integrity checking is broken on 2.6.18-rc4

From: Chuck Ebbert
Date: Thu Aug 17 2006 - 16:04:15 EST


In-Reply-To: <17632.5294.559058.66914@xxxxxxxxxxxxxxx>

On Mon, 14 Aug 2006 16:14:06 +1000, Neil Brown wrote:

> > On 2.6.18-rc4 + the below patch:
> > Drive activity light blinks once on one drive, then the
> > array status prints (obviously no checking takes place.)
> >
>
> Thanks for the report.
> Easily duplicated, easily fixed.
> I'll make sure this patch gets into 2.6.18.
>
> Thanks again,
> NeilBrown
>

I just tried the patch and now it seems to be syncing the drives instead
of only checking them? (At the very least the message is misleading.)

# echo "check" >/sys/block/md0/md/sync_action
# dmesg | tail -9
md: syncing RAID array md0
md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction.
md: using 128k window, over a total of 104256 blocks.
md: md0: sync done.
RAID1 conf printout:
--- wd:2 rd:2
disk 0, wo:0, o:1, dev:hda9
disk 1, wo:0, o:1, dev:sda5


> Signed-off-by: Neil Brown <neilb@xxxxxxx>
>
> diff .prev/drivers/md/raid1.c ./drivers/md/raid1.c
> --- .prev/drivers/md/raid1.c 2006-07-31 17:24:36.000000000 +1000
> +++ ./drivers/md/raid1.c 2006-08-14 15:52:48.000000000 +1000
> @@ -1644,15 +1644,16 @@ static sector_t sync_request(mddev_t *md
> return 0;
> }
>
> - /* before building a request, check if we can skip these blocks..
> - * This call the bitmap_start_sync doesn't actually record anything
> - */
> if (mddev->bitmap == NULL &&
> mddev->recovery_cp == MaxSector &&
> + !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) &&
> conf->fullsync == 0) {
> *skipped = 1;
> return max_sector - sector_nr;
> }
> + /* before building a request, check if we can skip these blocks..
> + * This call the bitmap_start_sync doesn't actually record anything
> + */
> if (!bitmap_start_sync(mddev->bitmap, sector_nr, &sync_blocks, 1) &&
> !conf->fullsync && !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) {
> /* We can skip this block, and probably several more */

--
Chuck
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/