usb-storage: support for more than 8 LUNs
This is necessary to make some storage arrays work. Some storage devices have more than 8 LUNs. In addition you can hook up a WideSCSI bus to USB. In these cases even level 2 devices can have more than 8 LUNs. For them it is necessary to simply believe the class specific command and report its result back to the SCSI layer. Off by one Alan noticed is fixed. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
59e980efaf
commit
ec371326d4
1 changed files with 6 additions and 0 deletions
|
@ -889,6 +889,12 @@ static void usb_stor_scan_dwork(struct work_struct *work)
|
|||
!(us->fflags & US_FL_SCM_MULT_TARG)) {
|
||||
mutex_lock(&us->dev_mutex);
|
||||
us->max_lun = usb_stor_Bulk_max_lun(us);
|
||||
/*
|
||||
* Allow proper scanning of devices that present more than 8 LUNs
|
||||
* While not affecting other devices that may need the previous behavior
|
||||
*/
|
||||
if (us->max_lun >= 8)
|
||||
us_to_host(us)->max_lun = us->max_lun+1;
|
||||
mutex_unlock(&us->dev_mutex);
|
||||
}
|
||||
scsi_scan_host(us_to_host(us));
|
||||
|
|
Loading…
Reference in a new issue