Hello, On Tue, Jan 23, 2024 at 02:26:21PM +0100, Christian Brauner wrote: > Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx> > --- > drivers/md/dm.c | 23 +++++++++++++---------- > drivers/md/md.c | 12 ++++++------ > drivers/md/md.h | 2 +- > include/linux/device-mapper.h | 2 +- > 4 files changed, 21 insertions(+), 18 deletions(-) > > diff --git a/drivers/md/dm.c b/drivers/md/dm.c > index 8dcabf84d866..87de5b5682ad 100644 > --- a/drivers/md/dm.c > +++ b/drivers/md/dm.c ... > @@ -775,7 +778,7 @@ static void close_table_device(struct table_device *td, struct mapped_device *md > { > if (md->disk->slave_dir) > bd_unlink_disk_holder(td->dm_dev.bdev, md->disk); > - bdev_release(td->dm_dev.bdev_handle); > + fput(td->dm_dev.bdev_file); The above change caused regression on 'dmsetup remove_all'. blkdev_release() is delayed because of fput(), so dm_lock_for_deletion returns -EBUSY, then this dm disk is skipped in remove_all(). Force to mark DMF_DEFERRED_REMOVE might solve it, but need our device mapper guys to check if it is safe. Or other better solution? thanks, Ming