Re: [PATCH -next 3/7] md: don't rely on 'mddev->pers' to be set in mddev_suspend()

From: Song Liu
Date: Mon Aug 21 2023 - 23:12:38 EST


On Mon, Aug 21, 2023 at 7:08 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> 在 2023/08/22 8:13, Song Liu 写道:
> > On Thu, Aug 3, 2023 at 6:30 AM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
> >>
> >> From: Yu Kuai <yukuai3@xxxxxxxxxx>
> >>
> >> Now that active io is initialized when mddev is allocated, it's safe to
> >> call mddev_suspend() before 'mddev->pers' is set.
> >>
> >> This also prevent null-ptr-def in some cases that caller doesn't
> >> guarantee 'mddev->pers' to be set.
> >
> > This description is a little confusing (to me at least). Please revise it.
>
> Sorry about this, how about this:
>
> 'active_io' used to be initialized while the array is running, and
> 'mddev->pers' is set while the array is running as well. Hence caller
> must hold 'reconfig_mutex' and guarantee 'mddev->pers' is set before
> calling mddev_suspend().
>
> Now that 'active_io' is initialized when mddev is allocated, such
> restriction doesn't exist anymore. In the meantime, follow up patches
> will refactor mddev_suspend(), hence add checking for 'mddev->pers' to
> prevent null-ptr-deref.

This is much better. Thanks!

Song