]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: core: Make "access_state" sysfs attribute always visible
authorMartin Wilck <mwilck@suse.com>
Thu, 27 Jan 2022 14:13:51 +0000 (15:13 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Feb 2022 04:06:13 +0000 (23:06 -0500)
commitd2119e7bc5fab50dd9f29b1d225a1478650e45be
treed351f665c539a1ef258210fb5f886f50d17d992d
parent684cf88737f7b9af66c1d9009901a484f4039e71
scsi: core: Make "access_state" sysfs attribute always visible

If a SCSI device handler module is loaded after some SCSI devices have
already been probed (e.g. via request_module() by dm-multipath), the
"access_state" and "preferred_path" sysfs attributes remain invisible for
these devices, although the handler is attached and live. The reason is
that the visibility is only checked when the sysfs attribute group is first
created. This results in an inconsistent user experience depending on the
load order of SCSI low-level drivers vs. device handler modules.

This patch changes user space API: attempting to read the "access_state" or
"preferred_path" attributes will now result in -EINVAL rather than -ENODEV
for devices that have no device handler, and tests for the existence of
these attributes will have a different result.

Link: https://lore.kernel.org/r/20220127141351.30706-1-mwilck@suse.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_sysfs.c