[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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

On Wed, Aug 21 2013 at 10:40pm -0400,
Joe Jin <joe jin oracle com> wrote:

> On 08/21/13 23:06, Mike Snitzer wrote:
> > On Wed, Aug 21 2013 at 10:48am -0400,
> > Mikulas Patocka <mpatocka redhat com> 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.

Well, it never _really_ worked even before that commit because it was
switching from request-based to bio-based.  Some queued requests
could've easily slipped through the cracks.

But I now understand what it is you want to be able to do.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]