On Fri, May 9, 2025 at 6:26 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote: > > Hi, > > 在 2025/05/09 18:20, Xiao Ni 写道: > > On Fri, May 9, 2025 at 6:08 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote: > >> > >> Hi, > >> > >> 在 2025/05/09 17:33, Xiao Ni 写道: > >>> The two places clear MD_CLOSING rather than setting MD_CLOSING. > >>> MD_CLOSING is set when we really want to stop the array (STOP_ARRAY > >>> cmd and clear>array_state_store). So the two places clear MD_CLOSING > >>> for other situations which look good to me. > >> > >> No, MD_CLOSING can be set first in the two cases, do something and then > >> be cleared, that's why I said temporarily. > > > > So you mean mddev_get should pass in this case (between setting > > MD_CLOSING and clearing MD_CLOSING)? It doesn't allow get mddev now > > without this patch. This should be right. > > I don't understand what you mean "It doesn't allow get mddev now without > this patch", for example, the ioctl STOP_ARRAY_RO will set MD_CLOSING > temporarily, but never set MD_DELETED, mddev_get() can always pass. You're right. I thought of the md_open path and it checks MD_CLOSING. There is a short window that will fail to open sysfs files. I want to make things easier and clearer here: it can't get mddev when MD_CLOSING is set. Is there any problem if we use this rule? Regards Xiao > > Thanks, > Kuai > > > > > Regardes > > Xiao > > > >> > >> Thanks, > >> Kuai > >> > > > > > > . > > >