On Mon, Nov 07 2011 at 12:10pm -0500, Mike Snitzer <snitzer@xxxxxxxxxx> wrote: > On Mon, Nov 07 2011 at 10:36am -0500, > Mike Snitzer <snitzer@xxxxxxxxxx> wrote: > > Could be the block layer's onstack plugging changes are at the heart of > > this. > > > > I voiced onstack plugging concerns relative to DM some time ago > > (https://lkml.org/lkml/2011/3/9/450) but somehow convinced myself DM was > > fine to no longer need dm_table_unplug_all() etc. Unfortunately I > > cannot recall _why_ I felt that was the case. > > > > So DM needs further review relative to block's onstack plugging changes > > and DM IO completion. > > dm_suspend is performed as part of the DM table reload that is being > done my multipathd during path failure. Seems DM no longer insures > inflight requests have finished during dm_suspend(). > > Before onstack plugging (< 2.6.39): > dm_suspend() -> dm_wait_for_completion() -> dm_unplug_all() -> dm_table_unplug_all() > > After onstack plugging (>= 2.6.39, commit 7eaceaccab5f40bb): > dm_suspend's call to dm_wait_for_completion() no longer unplugs IO > (dm_unplug_all and dm_table_unplug_all were removed without introducing > a clear equivalent). If a missing unplug were a concern then dm_wait_for_completion()'s check for inflight IO would cause dm_suspend() to hang. So the onstack plugging changes are unlikely to be the reason for this. Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel