This is different solution to the problem of multipath not being able to reload devices with failed paths than the one that Hannes first proposed. It adds a list of dm_devs to the mapped_device structure. All of the table lists point to devices on this list. The list keeps track of how many tables are accessing these devices, and locks them to deal with tables being created and destroyed at the same time. This avoids the issue of having tables that list devices for which the kernel is not holding any reference, and which can disappear and come back as a completely different device if userspace drops its reference. This also allows these devices to be reinstated without another table reload. The other patch deals with issues I discovered while tracking down why multipath devices with no valid paths would hang on table reload. It turns out that multipath_map can no longer be called after a table reload until queue_io is cleared, but multipath map was previously the function that usually cleared queue_io. Benjamin Marzinski (2): dm-multipath: cleanup IO queueing after table load device-mapper: allow tables to share dm_devs drivers/md/dm-ioctl.c | 2 +- drivers/md/dm-mpath.c | 6 ++- drivers/md/dm-table.c | 101 ++++++++++++++--------------------------- drivers/md/dm.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/md/dm.h | 5 +- 5 files changed, 165 insertions(+), 72 deletions(-) -- 1.8.3.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel