Re: [PATCH V6 0/3] md: call del_gendisk in sync way

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

 



On Mon, Jun 16, 2025 at 9:18 AM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> 在 2025/06/15 11:21, Xiao Ni 写道:
> > On Sat, Jun 14, 2025 at 4:18 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
> >>
> >> Hi,
> >>
> >> 在 2025/06/11 15:31, Xiao Ni 写道:
> >>> Now del_gendisk is called in a queue work which has a small window
> >>> that mdadm --stop command exits but the device node still exists.
> >>> It causes trouble in regression tests. This patch set tries to resolve
> >>> this problem.
> >>>
> >>> v1: replace MD_DELETED with MD_CLOSING
> >>> v2: keep MD_CLOSING
> >>> v3: call den_gendisk in mddev_unlock, and remove ->to_remove in stop path
> >>> and adjust the order of patches
> >>> v4: only remove the codes in stop path.
> >>> v5: remove sysfs_remove in md_kobj_release and change EBUSY with ENODEV
> >>> v6: don't initialize ret and add reviewed-by tag
> >>>
> >>> Xiao Ni (3):
> >>>     md: call del_gendisk in control path
> >>>     md: Don't clear MD_CLOSING until mddev is freed
> >>>     md: remove/add redundancy group only in level change
> >>>
> >>>    drivers/md/md.c | 49 ++++++++++++++++++++++++++-----------------------
> >>>    drivers/md/md.h | 26 ++++++++++++++++++++++++--
> >>>    2 files changed, 50 insertions(+), 25 deletions(-)
> >>>
> >>
> >> Just running mdadm tests with loop dev in my VM, and found this set can
> >> cause many tests to fail, the first is 02r5grow:
> >>
> >> ++ /usr/sbin/mdadm -A /dev/md0 /dev/loop1 /dev/loop2 /dev/loop3
> >> ++ rv=1
> >> ++ case $* in
> >> ++ cat /var/tmp/stderr
> >> mdadm: Unable to initialize sysfs
> >> ++ return 1
> >> ++ check state UUU
> >> ++ case $1 in
> >> ++ grep -sq 'blocks.*\[UUU\]$' /proc/mdstat
> >> ++ die 'state UUU not found!'
> >> ++ echo -e '\n\tERROR: state UUU not found! \n'
> >>
> >>       ERROR: state UUU not found!
> >>
> >> ++ save_log fail
> >>
> >> I do not look into details yet.
> >> Thanks
> >>
> >
> > Hi Kuai
> >
> > You need to use the latest upstream mdadm code
> > https://github.com/md-raid-utilities/mdadm/
> >
>
> I use the repo from:
> https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git
>
> With the latest commit:
> 8da27191 ("mdadm: enable sync file for udev rules")
>
> Do we not update mdadm here?
>
> I'll run the test soon, and BTW, wahy in the above commit, test can
> pass before this set?

Hi Kuai

It doesn't have the patches which were submitted to github recently. I
don't have the permission to sync from github to
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git

https://github.com/md-raid-utilities/mdadm/commit/ea4cdaea1a553685444a3fb39aae6b2cfee387ef
fixes the problem which can be introduced by this patch set.

Regards
Xiao
>
> Thanks,
> Kuai
>






[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