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

Mike Snitzer snitzer at redhat.com
Mon Sep 15 21:44:53 UTC 2014


On Wed, Aug 13 2014 at  2:53pm -0400,
Benjamin Marzinski <bmarzins at redhat.com> wrote:

> 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.

I've done a first pass review of the code changes and overlayed a
cleanup patch in this branch:
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/log/?h=devel

I'll do another pass of review tomorrow and perform a full regression
test as well as a targetted test of loading various multipath tables
with no devices.

If all looks good I'll get it staged for 3.18.




More information about the dm-devel mailing list