Re: [PATCH v2] dm ioctl: allow change device target type to error

From: Joe Jin
Date: Wed Aug 21 2013 - 22:40:22 EST


On 08/21/13 23:06, Mike Snitzer wrote:
> On Wed, Aug 21 2013 at 10:48am -0400,
> Mikulas Patocka <mpatocka@xxxxxxxxxx> wrote:
>
>>
>>
>> On Wed, 21 Aug 2013, Joe Jin wrote:
>>
>>> commit a5664da "dm ioctl: make bio or request based device type immutable"
>>> prevented "dmsetup wape_table" change the target type to "error".
>>
>> That commit a5664da is there for a reason (it is not possible to change
>> bio-based device to request-based and vice versa) and I don't really see
>> how this patch is supposed to work.
>>
>> If there are bios that are in flight and that already passed through
>> blk_queue_bio, and you change the device from request-based to bio-based,
>> what are you going to do with them? - The patch doesn't do anything about
>> it.
>>
>> A better approach would be to create a new request-based target "error-rq"
>> and change the multipath target to "error-rq" target. That way, you don't
>> have to change device type from request based to bio based.
>
> My thoughts _exactly_. This patch is very confused.
>
> Joe, what are you looking to be able to do? Switch a dm-multipath
> device to error? Or allowing switching a target that has
> DM_TARGET_IMMUTABLE flag set to be switched to error target?
>
> The latter restriction was introduced with commit 36a0456fb ("dm table:
> add immutable feature").

Hi Mike,

So far dmsetup support wipe_table:
https://bugzilla.redhat.com/show_bug.cgi?id=742607
As description in the bug Doc Text, "This could be useful, for example,
if a long-running process keeps a device open after it has finished using
it and you need to release the underlying devices before that process exits."

After apply the commit, wipe_table no long works.

Thanks,
Joe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/