[dm-devel] dm: free io_barrier after blk_cleanup_queue call

Mike Snitzer snitzer at redhat.com
Mon Oct 10 13:25:42 UTC 2016


On Mon, Oct 10 2016 at  8:35am -0400,
Tahsin Erdogan <tahsin at google.com> wrote:

> dm_old_request_fn() has paths that access md->io_barrier. The party
> destroying io_barrier should ensure that no future execution
> of dm_old_request_fn() is possible. Move destruction to below
> blk_cleanup_queue() to ensure this.

I have to believe this was born out of code inspection rather than
actual need (due to crash, etc)?

The cleanup order isn't relevant.  The reference counting of a DM device
governs whether a DM device (and its associated 'struct mapped_device')
can be destroyed.  Please have a look at  __dm_destroy, particularly:
        * No one should increment the reference count of the mapped_device,
        * after the mapped_device state becomes DMF_FREEING.

Mike




More information about the dm-devel mailing list