On Tue, 2023-03-21 at 16:55 +0800, Li Xiaokeng wrote: > From: lixiaokeng <lixiaokeng@xxxxxxxxxx> > > When we add a new disk to a raid, it may return -EBUSY. > > The main process of --add: > 1. dev_open > 2. store_super1(st, di->fd) in write_init_super1 > 3. fsync(di->fd) in write_init_super1 > 4. close(di->fd) > 5. ioctl(ADD_NEW_DISK) > > However, there will be some udev(change) event after step4. Then > "/usr/sbin/mdadm --incremental ..." will be run, and the new disk > will be add to md device. After that, ioctl will return -EBUSY. > > Here we add map_lock before write_init_super in "mdadm --add" > to fix this race. > > Signed-off-by: Li Xiao Keng <lixiaokeng@xxxxxxxxxx> As noted in the previous thread about the topic, this will only help if "mdadm -I" quits when it can't lock the device. Or am I overlooking something? Martin