• Patrick Mansfield's avatar
    [PATCH] cleanup code for /proc add/remove single device · c8571205
    Patrick Mansfield authored
    On Thu, Nov 21, 2002 at 02:23:14AM +0100, Christoph Hellwig wrote:
    > two new helpers in scsi_scan.c: scsi_add_single_device and
    > scsi_remove_single_device that do all hard work.  Thanks to
    > beeing in scsi_scan.c and using proper helpers they're a lot
    > smaller and cleaner.
    >
    >
    > --- 1.44/drivers/scsi/scsi.h	Sun Nov 17 16:44:35 2002
    > +++ edited/drivers/scsi/scsi.h	Thu Nov 21 01:05:39 2002
    > -
    > -		err = -ENOSYS;
    > -		if (sdev)
    > -			goto out;	/* We do not yet support unplugging */
    > -
    > -		scan_scsis(shost, 1, channel, id, lun);
    > -		err = length;
    > -		goto out;
    > -	}
    > +		err = scsi_add_single_device(host, channel, id, lun);
    > +		if (err >= 0)
    > +			err = length;
    
    > ===== drivers/scsi/scsi_scan.c 1.38 vs edited =====
    > --- 1.38/drivers/scsi/scsi_scan.c	Sun Nov 17 16:47:20 2002
    > +++ edited/drivers/scsi/scsi_scan.c	Thu Nov 21 01:16:03 2002
    > @@ -1862,6 +1862,69 @@
    >
    >  }
    >
    > +int scsi_add_single_device(uint host, uint channel, uint id, uint lun)
    > +{
    > +	struct scsi_device *sdevscan, *sdev;
    > +	struct Scsi_Host *shost;
    > +	int error = -ENODEV;
    > +
    > +	shost = scsi_host_hn_get(host);
    > +	if (!shost)
    > +		return -ENODEV;
    > +	sdev = scsi_find_device(shost, channel, id, lun);
    > +	if (!sdev)
    > +		goto out;
    > +
    
    James/Christoph -
    
    I had to change the above to a "if (sdev)" per the following patch (against
    current scsi-misc-2.5) to get the add to work correctly. Otherwise, this
    worked fine.
    c8571205
scsi_scan.c 61 KB