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