Re: [PATCH] md: Fix bitmap offset type in sb writer

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

 



On Thu, Apr 27, 2023 at 2:35 AM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> 在 2023/04/27 1:58, Song Liu 写道:
> > Hi Jonathan,
> >
> > On Tue, Apr 25, 2023 at 8:44 PM Song Liu <song@xxxxxxxxxx> wrote:
> >>
> >> On Mon, Apr 24, 2023 at 6:16 PM Jonathan Derrick
> >> <jonathan.derrick@xxxxxxxxx> wrote:
> >>>
> >>> Bitmap offset is allowed to be negative, indicating that bitmap precedes
> >>> metadata. Change the type back from sector_t to loff_t to satisfy
> >>> conditionals and calculations.
> >
> > This actually breaks the following tests from mdadm:
> >
> > 05r1-add-internalbitmap-v1a
>
> After a quick look of this test, I think the root cause is another
> patch:
>
> commit 8745faa95611 ("md: Use optimal I/O size for last bitmap page")
>
> This patch add a new helper bitmap_io_size(), which breaks the condition
> that 'negative value < 0'.
>
> And following patch should fix this problem:
>
> diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
> index adbe95e03852..b1b521837156 100644
> --- a/drivers/md/md-bitmap.c
> +++ b/drivers/md/md-bitmap.c
> @@ -219,8 +219,9 @@ static unsigned int optimal_io_size(struct
> block_device *bdev,
>   }
>
>   static unsigned int bitmap_io_size(unsigned int io_size, unsigned int
> opt_size,
> -                                  sector_t start, sector_t boundary)
> +                                  loff_t start, loff_t boundary)
>   {
>
> > 05r1-internalbitmap-v1a
> > 05r1-remove-internalbitmap-v1a
> >
>
> The patch is not tested yet, and I don't have time to look other tests
> yet...

Thanks Kuai! This fixed the test.

I will add your Signed-off-by to the patch. Please let me know if you
prefer not to have it.

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