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

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

 



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-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