On Mon, 2024-11-11 at 12:17 -0500, Benjamin Marzinski wrote: > On Sat, Nov 09, 2024 at 12:03:33AM +0100, Martin Wilck wrote: > > On Fri, 2024-11-08 at 17:08 -0500, Benjamin Marzinski wrote: > > > > > > Given that the code already does the right thing without needing > > > any > > > changes to handle tableless maps makes me feel like just removing > > > the > > > final patch is the best idea. > > > > If we do this, do we still need the special case for DMP_BAD_DEV? > > IMO > > we just need to make sure that dm_get_maps() doesn't return an > > error if > > it encounters an empty map. > > Depends. If we fail attempting to create a device, we could have > raced > with something else attempting to create it. Just checking for > dm_map_present() before we remove the device won't distinguish > between > these two cases at all. I would like to keep things as simple as possible. The main mistake that I made in bf3a4ad ("libmultipath: simplify dm_get_maps()") was that I'd changed dm_get_maps() such that returned error if anything went wrong for a single map. That was wrong, it should just skip the map in question (IMO that even includes the DMP_ERR case, but that's up to discussion). Just changing the behavior of dm_get_maps() would fix the regressions reported on GitHub (correct me if I'm wrong). Wrt libmp_mapinfo: