diff options
author | Sreekanth Reddy <sreekanth.reddy@broadcom.com> | 2021-07-26 17:24:02 +0530 |
---|---|---|
committer | Sasha Levin <sashal@kernel.org> | 2021-08-26 08:36:44 -0400 |
commit | 460add3104945704bfd2b92441b48a30b2ee9f1e (patch) | |
tree | c351d1d5bb71d4f25801511fb41310c03086d733 /drivers/scsi | |
parent | e25e7495d72649cb50b42865356bfe272b3a2a6d (diff) | |
download | linux-stable-460add3104945704bfd2b92441b48a30b2ee9f1e.tar.gz linux-stable-460add3104945704bfd2b92441b48a30b2ee9f1e.tar.bz2 linux-stable-460add3104945704bfd2b92441b48a30b2ee9f1e.zip |
scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
[ Upstream commit 70edd2e6f652f67d854981fd67f9ad0f1deaea92 ]
Avoid printing a 'target allocation failed' error if the driver
target_alloc() callback function returns -ENXIO. This return value
indicates that the corresponding H:C:T:L entry is empty.
Removing this error reduces the scan time if the user issues SCAN_WILD_CARD
scan operation through sysfs parameter on a host with a lot of empty
H:C:T:L entries.
Avoiding the printk on -ENXIO matches the behavior of the other callback
functions during scanning.
Link: https://lore.kernel.org/r/20210726115402.1936-1-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/scsi_scan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 009a5b2aa3d0..149465de35b2 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -462,7 +462,8 @@ static struct scsi_target *scsi_alloc_target(struct device *parent, error = shost->hostt->target_alloc(starget); if(error) { - dev_printk(KERN_ERR, dev, "target allocation failed, error %d\n", error); + if (error != -ENXIO) + dev_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 */ scsi_target_destroy(starget); |