Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a44c9d36 authored by Bart Van Assche's avatar Bart Van Assche Committed by Martin K. Petersen
Browse files

scsi: core: scsi_get_device_flags_keyed(): Always return device flags



Since scsi_get_device_flags_keyed() callers do not check whether or not
the returned value is an error code, change that function such that it
returns a flags value even if the 'key' argument is invalid.  Note:
since commit 28a0bc41 ("scsi: sd: Implement blacklist option for
WRITE SAME w/ UNMAP") bit 31 is a valid device information flag so
checking whether bit 31 is set in the return value is not sufficient to
tell the difference between an error code and a flags value.

Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent f0317e88
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -599,17 +599,12 @@ blist_flags_t scsi_get_device_flags_keyed(struct scsi_device *sdev,
				int key)
{
	struct scsi_dev_info_list *devinfo;
	int err;

	devinfo = scsi_dev_info_list_find(vendor, model, key);
	if (!IS_ERR(devinfo))
		return devinfo->flags;

	err = PTR_ERR(devinfo);
	if (err != -ENOENT)
		return err;

	/* nothing found, return nothing */
	/* key or device not found: return nothing */
	if (key != SCSI_DEVINFO_GLOBAL)
		return 0;