diff options
author | Paul Mackerras <paulus@ozlabs.org> | 2015-09-26 02:19:15 +0200 |
---|---|---|
committer | James Bottomley <JBottomley@Odin.com> | 2015-10-01 19:46:28 +0200 |
commit | 1378889c563a2938d231203ed36c041af183b798 (patch) | |
tree | 3c3e4e5c8c9c5803a56629ab78cad9dcf6fcd12c /drivers/scsi/3w-9xxx.c | |
parent | libiscsi: Fix iscsi_check_transport_timeouts possible infinite loop (diff) | |
download | linux-1378889c563a2938d231203ed36c041af183b798.tar.xz linux-1378889c563a2938d231203ed36c041af183b798.zip |
scsi_dh: Use the correct module name when loading device handler
This fixes a bug in recent kernels which results in failure to boot
on systems that have multipath SCSI disks. I observed this failure
on a POWER8 server where all the disks are multipath SCSI disks.
The symptoms are several messages like this on the console:
[ 3.018700] device-mapper: table: 253:0: multipath: error attaching hardware handler
[ 3.018828] device-mapper: ioctl: error adding target to table
and the system does not find its disks, and therefore fails to boot.
Bisection revealed that the bug was introduced in commit 566079c849cf,
"dm-mpath, scsi_dh: request scsi_dh modules in scsi_dh, not dm-mpath".
The specific reason for the failure is that where we previously loaded
the "scsi_dh_alua" module, we are now trying to load the "alua" module,
which doesn't exist.
To fix this, we change the request_module call in scsi_dh_lookup()
to prepend "scsi_dh_" to the name, just like the old code in
drivers/md/dm-mpath.c:parse_hw_handler() used to do.
[jejb: also fixes issue spotted by Sasha Levin that formatting
characters could be passed in via sysfs and cause issues with
request_module()]
Fixes: 566079c849cf
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Cc: Sasha Levin <sasha.levin@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
Diffstat (limited to 'drivers/scsi/3w-9xxx.c')
0 files changed, 0 insertions, 0 deletions