public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fix scsi add-single-device
@ 2003-01-26 18:00 James Bottomley
  2003-01-27  8:15 ` Mike Anderson
  0 siblings, 1 reply; 3+ messages in thread
From: James Bottomley @ 2003-01-26 18:00 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: Type: text/plain, Size: 142 bytes --]



There was a logic typo in the abstraction of scsi_add_single_device()
that meant it could never work.

The attached patch fixes it.

James


[-- Attachment #2: Type: text/plain, Size: 1102 bytes --]

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.958   -> 1.959  
#	drivers/scsi/scsi_scan.c	1.52    -> 1.53   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/01/26	jejb@mulgrave.(none)	1.959
# [SCSI] make echo scsi add-single-device x x x x > /proc/scsi/scsi work again
# 
# Correct the logic error making it fail
# --------------------------------------------
#
diff -Nru a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
--- a/drivers/scsi/scsi_scan.c	Sun Jan 26 11:58:46 2003
+++ b/drivers/scsi/scsi_scan.c	Sun Jan 26 11:58:46 2003
@@ -1758,7 +1758,7 @@
 	shost = scsi_host_hn_get(host);
 	if (!shost)
 		return -ENODEV;
-	if(scsi_find_device(shost, channel, id, lun) != NULL)
+	if(scsi_find_device(shost, channel, id, lun) == NULL)
 		goto out;
 
 	if (scsi_probe_and_add_lun(shost, NULL, channel, id, lun, NULL) ==

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] fix scsi add-single-device
  2003-01-26 18:00 [PATCH] fix scsi add-single-device James Bottomley
@ 2003-01-27  8:15 ` Mike Anderson
  2003-01-27 16:07   ` James Bottomley
  0 siblings, 1 reply; 3+ messages in thread
From: Mike Anderson @ 2003-01-27  8:15 UTC (permalink / raw)
  To: James Bottomley; +Cc: linux-scsi

James Bottomley [James.Bottomley@steeleye.com] wrote:
> diff -Nru a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
> --- a/drivers/scsi/scsi_scan.c	Sun Jan 26 11:58:46 2003
> +++ b/drivers/scsi/scsi_scan.c	Sun Jan 26 11:58:46 2003
> @@ -1758,7 +1758,7 @@
>  	shost = scsi_host_hn_get(host);
>  	if (!shost)
>  		return -ENODEV;
> -	if(scsi_find_device(shost, channel, id, lun) != NULL)
> +	if(scsi_find_device(shost, channel, id, lun) == NULL)
>  		goto out;

The previous condition seemed to be correct as you want to exit if
scsi_find_device finds a scsi_device at the nexus you are trying to add.

The patch below fixed the interface for me.  Though I only tested in
with scsi_debug under UML YMMV.

-andmike
--
Michael Anderson
andmike@us.ibm.com

 hosts.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

------

--- 1.48/drivers/scsi/hosts.h	Fri Jan 10 13:13:38 2003
+++ edited/drivers/scsi/hosts.h	Mon Jan 27 00:02:23 2003
@@ -605,8 +605,8 @@
 	list_for_each_entry (sdev, &shost->my_devices, siblings)
                 if (sdev->channel == channel && sdev->id == pun
                    && sdev->lun ==lun)
-                        break;
-        return sdev;
+                        return sdev;
+        return NULL;
 }
 
 /*

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] fix scsi add-single-device
  2003-01-27  8:15 ` Mike Anderson
@ 2003-01-27 16:07   ` James Bottomley
  0 siblings, 0 replies; 3+ messages in thread
From: James Bottomley @ 2003-01-27 16:07 UTC (permalink / raw)
  To: Mike Anderson; +Cc: linux-scsi

On Mon, 2003-01-27 at 02:15, Mike Anderson wrote:
> James Bottomley [James.Bottomley@steeleye.com] wrote:
> > diff -Nru a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
> > --- a/drivers/scsi/scsi_scan.c	Sun Jan 26 11:58:46 2003
> > +++ b/drivers/scsi/scsi_scan.c	Sun Jan 26 11:58:46 2003
> > @@ -1758,7 +1758,7 @@
> >  	shost = scsi_host_hn_get(host);
> >  	if (!shost)
> >  		return -ENODEV;
> > -	if(scsi_find_device(shost, channel, id, lun) != NULL)
> > +	if(scsi_find_device(shost, channel, id, lun) == NULL)
> >  		goto out;
> 
> The previous condition seemed to be correct as you want to exit if
> scsi_find_device finds a scsi_device at the nexus you are trying to add.
> 
> The patch below fixed the interface for me.  Though I only tested in
> with scsi_debug under UML YMMV.

Yes, sorry (long week last week).  It is indeed the semantics of
scsi_find_device() that are broken.

Thanks,

James



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-01-27 16:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-26 18:00 [PATCH] fix scsi add-single-device James Bottomley
2003-01-27  8:15 ` Mike Anderson
2003-01-27 16:07   ` James Bottomley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox