@ -1251,9 +1251,12 @@ struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
get_device ( & starget - > dev ) ;
down ( & shost - > scan_mutex ) ;
res = scsi_probe_and_add_lun ( starget , lun , NULL , & sdev , 1 , hostdata ) ;
if ( res ! = SCSI_SCAN_LUN_PRESENT )
sdev = ERR_PTR ( - ENODEV ) ;
if ( scsi_host_scan_allowed ( shost ) ) {
res = scsi_probe_and_add_lun ( starget , lun , NULL , & sdev , 1 ,
hostdata ) ;
if ( res ! = SCSI_SCAN_LUN_PRESENT )
sdev = ERR_PTR ( - ENODEV ) ;
}
up ( & shost - > scan_mutex ) ;
scsi_target_reap ( starget ) ;
put_device ( & starget - > dev ) ;
@ -1403,11 +1406,15 @@ int scsi_scan_host_selected(struct Scsi_Host *shost, unsigned int channel,
return - EINVAL ;
down ( & shost - > scan_mutex ) ;
if ( channel = = SCAN_WILD_CARD )
for ( channel = 0 ; channel < = shost - > max_channel ; channel + + )
if ( scsi_host_scan_allowed ( shost ) ) {
if ( channel = = SCAN_WILD_CARD )
for ( channel = 0 ; channel < = shost - > max_channel ;
channel + + )
scsi_scan_channel ( shost , channel , id , lun ,
rescan ) ;
else
scsi_scan_channel ( shost , channel , id , lun , rescan ) ;
else
scsi_scan_channel ( shost , channel , id , lun , rescan ) ;
}
up ( & shost - > scan_mutex ) ;
return 0 ;