[dm-devel] [PATCH 0/2] dm: alternate solution to reloading with failed paths

Benjamin Marzinski bmarzins at redhat.com
Wed Aug 13 18:53:41 UTC 2014


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




More information about the dm-devel mailing list