Re: [PATCH] md: don't update recovery_cp when curr_resync is ACTIVE

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

 



On Tue, Jan 31, 2023 at 9:06 AM Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote:
>
>
>
> On 2023-01-31 12:07 a.m., Hou Tao wrote:
> > From: Hou Tao <houtao1@xxxxxxxxxx>
> >
> > Don't update recovery_cp when curr_resync is MD_RESYNC_ACTIVE, otherwise
> > md may skip the resync of the first 3 sectors if the resync procedure is
> > interrupted before the first calling of ->sync_request() as shown below:
> >
> > md_do_sync thread          control thread
> >   // setup resync
> >   mddev->recovery_cp = 0
> >   j = 0
> >   mddev->curr_resync = MD_RESYNC_ACTIVE
> >
> >                              // e.g., set array as idle
> >                              set_bit(MD_RECOVERY_INTR, &&mddev_recovery)
> >   // resync loop
> >   // check INTR before calling sync_request
> >   !test_bit(MD_RECOVERY_INTR, &mddev->recovery
> >
> >   // resync interrupted
> >   // update recovery_cp from 0 to 3
> >   // the resync of three 3 sectors will be skipped
> >   mddev->recovery_cp = 3
> >
> > Fixes: eac58d08d493 ("md: Use enum for overloaded magic numbers used by mddev->curr_resync")
> > Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx>
>
> Nice Catch! Thanks.
>
> Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>

Applied to md-next. Thanks!

Song



[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