On Wed, 10 Jul 2024, Bryan Gurney wrote: > On Tue, Jul 9, 2024 at 8:44 AM Shin'ichiro Kawasaki > <shinichiro.kawasaki@xxxxxxx> wrote: > > > > The test case dm/002 rarely fails with the message below: > > > > dm/002 => nvme0n1 (dm-dust general functionality test) [failed] > > runtime 0.204s ... 0.174s > > --- tests/dm/002.out 2024-06-14 14:37:40.480794693 +0900 > > +++ /home/shin/Blktests/blktests/results/nvme0n1/dm/002.out.bad 2024-06-14 21:38:18.588976499 +0900 > > @@ -7,4 +7,6 @@ > > countbadblocks: 0 badblock(s) found > > countbadblocks: 3 badblock(s) found > > countbadblocks: 0 badblock(s) found > > +device-mapper: remove ioctl on dust1 failed: Device or resource busy > > +Command failed. > > Test complete > > modprobe: FATAL: Module dm_dust is in use. > > > > This failure happens at "dmsetup remove" command, when the previous > > operation on the dm device is still ongoing. In this case, > > dm_open_count() is non-zero, then IOCTL for device remove fails and > > EBUSY is returned. > > > > To avoid the failure, retry the "dmsetup remove" command when it fails > > with EBUSY. Introduce the helper function _dm_remove for this purpose. > > > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > > I think this looks good, and I tested it on my system: > > Reviewed-by: Bryan Gurney <bgurney@xxxxxxxxxx> > > > I want to cc dm-devel and the device-mapper maintainers, in case there > are any questions on this test. (It's probably a good idea to cc > dm-devel for any "dm" blktests.) I think it would be better to find out which code keeps the DM device open and fix that. It is generally assumed that a DM device can be removed when you close it. If not, there's a bug somewhere else (and this patch is just papering over the bug). Mikulas