* [PATCH v4 0/2] Update SCSI target removal path @ 2016-04-05 9:50 Johannes Thumshirn 2016-04-05 9:50 ` [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Johannes Thumshirn ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Johannes Thumshirn @ 2016-04-05 9:50 UTC (permalink / raw) To: Martin K. Petersen, James E.J. Bottomley Cc: Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, Johannes Thumshirn, linux-scsi, linux-kernel This is a follow up to "scsi: Add intermediate STARGET_REMOVE state to scsi_target_state". Changes to v3: * Incorporate James' suggestions for the commit messages. * Re-add accidently dropped Reviewed-by tags. Changes to v2: * Reverse the order of patches as pointed out by James. Changes to v1: * Fix error (hit BUG_ON()) discovered by the 0-Day bot. * Revert "scsi: fix soft lockup in scsi_remove_target() on module removal". Johannes Thumshirn (2): scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Revert "scsi: fix soft lockup in scsi_remove_target() on module removal" drivers/scsi/scsi_scan.c | 2 ++ drivers/scsi/scsi_sysfs.c | 6 +++--- include/scsi/scsi_device.h | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) -- 1.8.5.6 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state 2016-04-05 9:50 [PATCH v4 0/2] Update SCSI target removal path Johannes Thumshirn @ 2016-04-05 9:50 ` Johannes Thumshirn 2016-04-12 5:30 ` Xiong Zhou 2016-04-12 13:01 ` Xiong Zhou 2016-04-05 9:50 ` [PATCH v4 2/2] Revert "scsi: fix soft lockup in scsi_remove_target() on module removal" Johannes Thumshirn 2016-04-05 11:18 ` [PATCH v4 0/2] Update SCSI target removal path Martin K. Petersen 2 siblings, 2 replies; 9+ messages in thread From: Johannes Thumshirn @ 2016-04-05 9:50 UTC (permalink / raw) To: Martin K. Petersen, James E.J. Bottomley Cc: Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, Johannes Thumshirn, linux-scsi, linux-kernel, stable Add intermediate STARGET_REMOVE state to scsi_target_state to avoid running into the BUG_ON() in scsi_target_reap(). The STARGET_REMOVE state is only valid in the path from scsi_remove_target() to scsi_target_destroy() indicating this target is going to be removed. This re-fixes the problem introduced in commits bc3f02a795d3b4faa99d37390174be2a75d091bd and 40998193560dab6c3ce8d25f4fa58a23e252ef38 in a more comprehensive way. Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Fixes: 40998193560dab6c3ce8d25f4fa58a23e252ef38 Cc: stable@vger.kernel.org Reviewed-by: Ewan D. Milne <emilne@redhat.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: James Bottomley <jejb@linux.vnet.ibm.com> --- drivers/scsi/scsi_scan.c | 2 ++ drivers/scsi/scsi_sysfs.c | 2 ++ include/scsi/scsi_device.h | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 6a82066..63b8bca 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -315,6 +315,8 @@ static void scsi_target_destroy(struct scsi_target *starget) struct Scsi_Host *shost = dev_to_shost(dev->parent); unsigned long flags; + BUG_ON(starget->state != STARGET_REMOVE && + starget->state != STARGET_CREATED); starget->state = STARGET_DEL; transport_destroy_device(dev); spin_lock_irqsave(shost->host_lock, flags); diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 00bc721..0df82e8 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c @@ -1279,11 +1279,13 @@ restart: spin_lock_irqsave(shost->host_lock, flags); list_for_each_entry(starget, &shost->__targets, siblings) { if (starget->state == STARGET_DEL || + starget->state == STARGET_REMOVE || starget == last_target) continue; if (starget->dev.parent == dev || &starget->dev == dev) { kref_get(&starget->reap_ref); last_target = starget; + starget->state = STARGET_REMOVE; spin_unlock_irqrestore(shost->host_lock, flags); __scsi_remove_target(starget); scsi_target_reap(starget); diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index f63a167..2bffaa6 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -240,6 +240,7 @@ scmd_printk(const char *, const struct scsi_cmnd *, const char *, ...); enum scsi_target_state { STARGET_CREATED = 1, STARGET_RUNNING, + STARGET_REMOVE, STARGET_DEL, }; -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state 2016-04-05 9:50 ` [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Johannes Thumshirn @ 2016-04-12 5:30 ` Xiong Zhou 2016-04-12 13:01 ` Xiong Zhou 1 sibling, 0 replies; 9+ messages in thread From: Xiong Zhou @ 2016-04-12 5:30 UTC (permalink / raw) To: Johannes Thumshirn Cc: Martin K. Petersen, James E.J. Bottomley, Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, linux-scsi, linux-kernel, stable Hi, On Tue, Apr 5, 2016 at 5:50 PM, Johannes Thumshirn <jthumshirn@suse.de> wrote: > Add intermediate STARGET_REMOVE state to scsi_target_state to avoid > running into the BUG_ON() in scsi_target_reap(). The STARGET_REMOVE > state is only valid in the path from scsi_remove_target() to > scsi_target_destroy() indicating this target is going to be removed. > > This re-fixes the problem introduced in commits > bc3f02a795d3b4faa99d37390174be2a75d091bd and > 40998193560dab6c3ce8d25f4fa58a23e252ef38 in a more comprehensive way. > > Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> > Fixes: 40998193560dab6c3ce8d25f4fa58a23e252ef38 > Cc: stable@vger.kernel.org > Reviewed-by: Ewan D. Milne <emilne@redhat.com> > Reviewed-by: Hannes Reinecke <hare@suse.com> > Reviewed-by: James Bottomley <jejb@linux.vnet.ibm.com> > --- > drivers/scsi/scsi_scan.c | 2 ++ > drivers/scsi/scsi_sysfs.c | 2 ++ > include/scsi/scsi_device.h | 1 + > 3 files changed, 5 insertions(+) > > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c > index 6a82066..63b8bca 100644 > --- a/drivers/scsi/scsi_scan.c > +++ b/drivers/scsi/scsi_scan.c > @@ -315,6 +315,8 @@ static void scsi_target_destroy(struct scsi_target *starget) > struct Scsi_Host *shost = dev_to_shost(dev->parent); > unsigned long flags; > > + BUG_ON(starget->state != STARGET_REMOVE && > + starget->state != STARGET_CREATED); #modprobe scsi_debug #modprobe -r scsi_debug always triggers this BUG_ON in linux-next-20160411 printk says starget->state is _RUNNING > starget->state = STARGET_DEL; > transport_destroy_device(dev); > spin_lock_irqsave(shost->host_lock, flags); > diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c > index 00bc721..0df82e8 100644 > --- a/drivers/scsi/scsi_sysfs.c > +++ b/drivers/scsi/scsi_sysfs.c > @@ -1279,11 +1279,13 @@ restart: > spin_lock_irqsave(shost->host_lock, flags); > list_for_each_entry(starget, &shost->__targets, siblings) { > if (starget->state == STARGET_DEL || > + starget->state == STARGET_REMOVE || > starget == last_target) > continue; > if (starget->dev.parent == dev || &starget->dev == dev) { > kref_get(&starget->reap_ref); > last_target = starget; > + starget->state = STARGET_REMOVE; > spin_unlock_irqrestore(shost->host_lock, flags); > __scsi_remove_target(starget); > scsi_target_reap(starget); > diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h > index f63a167..2bffaa6 100644 > --- a/include/scsi/scsi_device.h > +++ b/include/scsi/scsi_device.h > @@ -240,6 +240,7 @@ scmd_printk(const char *, const struct scsi_cmnd *, const char *, ...); > enum scsi_target_state { > STARGET_CREATED = 1, > STARGET_RUNNING, > + STARGET_REMOVE, > STARGET_DEL, > }; > > -- > 1.8.5.6 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state 2016-04-05 9:50 ` [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Johannes Thumshirn 2016-04-12 5:30 ` Xiong Zhou @ 2016-04-12 13:01 ` Xiong Zhou 2016-04-13 8:19 ` Johannes Thumshirn 1 sibling, 1 reply; 9+ messages in thread From: Xiong Zhou @ 2016-04-12 13:01 UTC (permalink / raw) To: Johannes Thumshirn Cc: Martin K. Petersen, James E.J. Bottomley, Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, linux-scsi, linux-kernel, stable How about this? drivers/scsi/scsi_scan: mark STARGET_REMOVE state before destroy Signed-off-by: Xiong Zhou <jencce.kernel@gmail.com> --- drivers/scsi/scsi_scan.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 27df7e7..21092e5 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -395,6 +395,8 @@ static void scsi_target_reap_ref_release(struct kref *kref) transport_remove_device(&starget->dev); device_del(&starget->dev); } + + starget->state = STARGET_REMOVE; scsi_target_destroy(starget); } @@ -465,6 +467,7 @@ static struct scsi_target *scsi_alloc_target(struct device *parent, dev_printk(KERN_ERR, dev, "target allocation failed, error %d\n", error); /* don't want scsi_target_reap to do the final * put because it will be under the host lock */ + starget->state = STARGET_REMOVE; scsi_target_destroy(starget); return NULL; } -- 1.8.3.1 On Tue, Apr 5, 2016 at 5:50 PM, Johannes Thumshirn <jthumshirn@suse.de> wrote: > Add intermediate STARGET_REMOVE state to scsi_target_state to avoid > running into the BUG_ON() in scsi_target_reap(). The STARGET_REMOVE > state is only valid in the path from scsi_remove_target() to > scsi_target_destroy() indicating this target is going to be removed. > > This re-fixes the problem introduced in commits > bc3f02a795d3b4faa99d37390174be2a75d091bd and > 40998193560dab6c3ce8d25f4fa58a23e252ef38 in a more comprehensive way. > > Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> > Fixes: 40998193560dab6c3ce8d25f4fa58a23e252ef38 > Cc: stable@vger.kernel.org > Reviewed-by: Ewan D. Milne <emilne@redhat.com> > Reviewed-by: Hannes Reinecke <hare@suse.com> > Reviewed-by: James Bottomley <jejb@linux.vnet.ibm.com> > --- > drivers/scsi/scsi_scan.c | 2 ++ > drivers/scsi/scsi_sysfs.c | 2 ++ > include/scsi/scsi_device.h | 1 + > 3 files changed, 5 insertions(+) > > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c > index 6a82066..63b8bca 100644 > --- a/drivers/scsi/scsi_scan.c > +++ b/drivers/scsi/scsi_scan.c > @@ -315,6 +315,8 @@ static void scsi_target_destroy(struct scsi_target *starget) > struct Scsi_Host *shost = dev_to_shost(dev->parent); > unsigned long flags; > > + BUG_ON(starget->state != STARGET_REMOVE && > + starget->state != STARGET_CREATED); > starget->state = STARGET_DEL; > transport_destroy_device(dev); > spin_lock_irqsave(shost->host_lock, flags); > diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c > index 00bc721..0df82e8 100644 > --- a/drivers/scsi/scsi_sysfs.c > +++ b/drivers/scsi/scsi_sysfs.c > @@ -1279,11 +1279,13 @@ restart: > spin_lock_irqsave(shost->host_lock, flags); > list_for_each_entry(starget, &shost->__targets, siblings) { > if (starget->state == STARGET_DEL || > + starget->state == STARGET_REMOVE || > starget == last_target) > continue; > if (starget->dev.parent == dev || &starget->dev == dev) { > kref_get(&starget->reap_ref); > last_target = starget; > + starget->state = STARGET_REMOVE; > spin_unlock_irqrestore(shost->host_lock, flags); > __scsi_remove_target(starget); > scsi_target_reap(starget); > diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h > index f63a167..2bffaa6 100644 > --- a/include/scsi/scsi_device.h > +++ b/include/scsi/scsi_device.h > @@ -240,6 +240,7 @@ scmd_printk(const char *, const struct scsi_cmnd *, const char *, ...); > enum scsi_target_state { > STARGET_CREATED = 1, > STARGET_RUNNING, > + STARGET_REMOVE, > STARGET_DEL, > }; > > -- > 1.8.5.6 > ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state 2016-04-12 13:01 ` Xiong Zhou @ 2016-04-13 8:19 ` Johannes Thumshirn 2016-04-15 3:24 ` Xiong Zhou 0 siblings, 1 reply; 9+ messages in thread From: Johannes Thumshirn @ 2016-04-13 8:19 UTC (permalink / raw) To: Xiong Zhou Cc: Martin K. Petersen, James E.J. Bottomley, Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, linux-scsi, linux-kernel, stable Hi Xiong Sorry for the late reply On Dienstag, 12. April 2016 21:01:53 CEST Xiong Zhou wrote: > How about this? > > drivers/scsi/scsi_scan: mark STARGET_REMOVE state before destroy > > Signed-off-by: Xiong Zhou <jencce.kernel@gmail.com> > --- > drivers/scsi/scsi_scan.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c > index 27df7e7..21092e5 100644 > --- a/drivers/scsi/scsi_scan.c > +++ b/drivers/scsi/scsi_scan.c > @@ -395,6 +395,8 @@ static void scsi_target_reap_ref_release(struct kref *kref) > transport_remove_device(&starget->dev); > device_del(&starget->dev); > } > + > + starget->state = STARGET_REMOVE; > scsi_target_destroy(starget); > } The only scsi_target_reap_ref_release() caller is scsi_target_reap_ref_put(), which in turn is only called by scsi_target_reap(). scsi_target_reap()'s only callers are scsi_remove_target()/__scsi_remove_target(), which set the STARGET_REMOVE state and __scsi_add_device() scsi_get_host_dev() __scsi_scan_target() Which I'm currently investiganting (in parallel to reproducing the bug). > > @@ -465,6 +467,7 @@ static struct scsi_target > *scsi_alloc_target(struct device *parent, > dev_printk(KERN_ERR, dev, "target allocation failed, error %d\n", error); > /* don't want scsi_target_reap to do the final > * put because it will be under the host lock */ > + starget->state = STARGET_REMOVE; > scsi_target_destroy(starget); > return NULL; > } Here starget->state is STARGET_CREATED and the assertion is already aware of this state transitoin. IOTW this /shouldn't/ be needed. -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state 2016-04-13 8:19 ` Johannes Thumshirn @ 2016-04-15 3:24 ` Xiong Zhou 0 siblings, 0 replies; 9+ messages in thread From: Xiong Zhou @ 2016-04-15 3:24 UTC (permalink / raw) To: Johannes Thumshirn Cc: Martin K. Petersen, James E.J. Bottomley, Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, linux-scsi, linux-kernel, stable On Wed, Apr 13, 2016 at 4:19 PM, Johannes Thumshirn <jthumshirn@suse.de> wrote: > Hi Xiong > Sorry for the late reply > > On Dienstag, 12. April 2016 21:01:53 CEST Xiong Zhou wrote: >> How about this? >> >> drivers/scsi/scsi_scan: mark STARGET_REMOVE state before destroy >> >> Signed-off-by: Xiong Zhou <jencce.kernel@gmail.com> >> --- >> drivers/scsi/scsi_scan.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c >> index 27df7e7..21092e5 100644 >> --- a/drivers/scsi/scsi_scan.c >> +++ b/drivers/scsi/scsi_scan.c >> @@ -395,6 +395,8 @@ static void scsi_target_reap_ref_release(struct kref *kref) >> transport_remove_device(&starget->dev); >> device_del(&starget->dev); >> } >> + >> + starget->state = STARGET_REMOVE; >> scsi_target_destroy(starget); >> } > > The only scsi_target_reap_ref_release() caller is scsi_target_reap_ref_put(), > which in turn is only called by scsi_target_reap(). scsi_target_reap()'s only > callers are scsi_remove_target()/__scsi_remove_target(), which set the > STARGET_REMOVE state and > > __scsi_add_device() > scsi_get_host_dev() > __scsi_scan_target() > > Which I'm currently investiganting (in parallel to reproducing the bug). Thanks ! -- Xiong > >> >> @@ -465,6 +467,7 @@ static struct scsi_target >> *scsi_alloc_target(struct device *parent, >> dev_printk(KERN_ERR, dev, "target allocation failed, error %d\n", error); >> /* don't want scsi_target_reap to do the final >> * put because it will be under the host lock */ >> + starget->state = STARGET_REMOVE; >> scsi_target_destroy(starget); >> return NULL; >> } > > Here starget->state is STARGET_CREATED and the assertion is already aware of > this state transitoin. IOTW this /shouldn't/ be needed. > > > -- > Johannes Thumshirn Storage > jthumshirn@suse.de +49 911 74053 689 > SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: Felix Imendörffer, Jane Smithard, Graham Norton > HRB 21284 (AG Nürnberg) > Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 2/2] Revert "scsi: fix soft lockup in scsi_remove_target() on module removal" 2016-04-05 9:50 [PATCH v4 0/2] Update SCSI target removal path Johannes Thumshirn 2016-04-05 9:50 ` [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Johannes Thumshirn @ 2016-04-05 9:50 ` Johannes Thumshirn 2016-04-05 11:18 ` [PATCH v4 0/2] Update SCSI target removal path Martin K. Petersen 2 siblings, 0 replies; 9+ messages in thread From: Johannes Thumshirn @ 2016-04-05 9:50 UTC (permalink / raw) To: Martin K. Petersen, James E.J. Bottomley Cc: Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, Johannes Thumshirn, linux-scsi, linux-kernel, stable Now that we've done a more comprehensive fix with the intermediate target state we can remove the previous hack introduced with commit 90a88d6ef88edcfc4f644dddc7eef4ea41bccf8b. Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Cc: stable@vger.kernel.org Reviewed-by: Ewan D. Milne <emilne@redhat.com> Reviewed-by: Hannes Reinecke <hare@suse.com> --- drivers/scsi/scsi_sysfs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 0df82e8..9e5f893 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c @@ -1272,19 +1272,17 @@ static void __scsi_remove_target(struct scsi_target *starget) void scsi_remove_target(struct device *dev) { struct Scsi_Host *shost = dev_to_shost(dev->parent); - struct scsi_target *starget, *last_target = NULL; + struct scsi_target *starget; unsigned long flags; restart: spin_lock_irqsave(shost->host_lock, flags); list_for_each_entry(starget, &shost->__targets, siblings) { if (starget->state == STARGET_DEL || - starget->state == STARGET_REMOVE || - starget == last_target) + starget->state == STARGET_REMOVE) continue; if (starget->dev.parent == dev || &starget->dev == dev) { kref_get(&starget->reap_ref); - last_target = starget; starget->state = STARGET_REMOVE; spin_unlock_irqrestore(shost->host_lock, flags); __scsi_remove_target(starget); -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Update SCSI target removal path 2016-04-05 9:50 [PATCH v4 0/2] Update SCSI target removal path Johannes Thumshirn 2016-04-05 9:50 ` [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Johannes Thumshirn 2016-04-05 9:50 ` [PATCH v4 2/2] Revert "scsi: fix soft lockup in scsi_remove_target() on module removal" Johannes Thumshirn @ 2016-04-05 11:18 ` Martin K. Petersen 2016-04-06 9:06 ` Johannes Thumshirn 2 siblings, 1 reply; 9+ messages in thread From: Martin K. Petersen @ 2016-04-05 11:18 UTC (permalink / raw) To: Johannes Thumshirn Cc: Martin K. Petersen, James E.J. Bottomley, Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, linux-scsi, linux-kernel >>>>> "Johannes" == Johannes Thumshirn <jthumshirn@suse.de> writes: Johannes> This is a follow up to "scsi: Add intermediate STARGET_REMOVE Johannes> state to scsi_target_state". James suggested we should let this incubate before hitting stable. Dropped v3 from 4.6/scsi-fixes and applied v4 to 4.7/scsi-queue. Thanks! -- Martin K. Petersen Oracle Linux Engineering ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Update SCSI target removal path 2016-04-05 11:18 ` [PATCH v4 0/2] Update SCSI target removal path Martin K. Petersen @ 2016-04-06 9:06 ` Johannes Thumshirn 0 siblings, 0 replies; 9+ messages in thread From: Johannes Thumshirn @ 2016-04-06 9:06 UTC (permalink / raw) To: Martin K. Petersen Cc: James E.J. Bottomley, Ewan D. Milne, Hannes Reinecke, Christoph Hellwig, linux-scsi, linux-kernel On 2016-04-05 13:18, Martin K. Petersen wrote: >>>>>> "Johannes" == Johannes Thumshirn <jthumshirn@suse.de> writes: > > Johannes> This is a follow up to "scsi: Add intermediate STARGET_REMOVE > Johannes> state to scsi_target_state". > > James suggested we should let this incubate before hitting stable. > > Dropped v3 from 4.6/scsi-fixes and applied v4 to 4.7/scsi-queue. Sounds good to me. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-04-15 3:24 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-04-05 9:50 [PATCH v4 0/2] Update SCSI target removal path Johannes Thumshirn 2016-04-05 9:50 ` [PATCH v4 1/2] scsi: Add intermediate STARGET_REMOVE state to scsi_target_state Johannes Thumshirn 2016-04-12 5:30 ` Xiong Zhou 2016-04-12 13:01 ` Xiong Zhou 2016-04-13 8:19 ` Johannes Thumshirn 2016-04-15 3:24 ` Xiong Zhou 2016-04-05 9:50 ` [PATCH v4 2/2] Revert "scsi: fix soft lockup in scsi_remove_target() on module removal" Johannes Thumshirn 2016-04-05 11:18 ` [PATCH v4 0/2] Update SCSI target removal path Martin K. Petersen 2016-04-06 9:06 ` Johannes Thumshirn
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).