Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
"Two simple fixes, both of which cause I/O hangs.

The storvsc one is from the hyper-v which can hang under certain hot
add/remove conditions and the other is generally, where removing a
target and a device in close proximity can result in the release
method being executed twice (and subsequent list and other corruption
and an eventual panic)"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: storvsc: Fix scsi_cmd error assignments in storvsc_handle_error
scsi: core: check for device state in __scsi_remove_target()

+6 -2
+4 -1
drivers/scsi/scsi_sysfs.c
··· 1415 1415 * check. 1416 1416 */ 1417 1417 if (sdev->channel != starget->channel || 1418 - sdev->id != starget->id || 1418 + sdev->id != starget->id) 1419 + continue; 1420 + if (sdev->sdev_state == SDEV_DEL || 1421 + sdev->sdev_state == SDEV_CANCEL || 1419 1422 !get_device(&sdev->sdev_gendev)) 1420 1423 continue; 1421 1424 spin_unlock_irqrestore(shost->host_lock, flags);
+2 -1
drivers/scsi/storvsc_drv.c
··· 953 953 case TEST_UNIT_READY: 954 954 break; 955 955 default: 956 - set_host_byte(scmnd, DID_TARGET_FAILURE); 956 + set_host_byte(scmnd, DID_ERROR); 957 957 } 958 958 break; 959 959 case SRB_STATUS_INVALID_LUN: 960 + set_host_byte(scmnd, DID_NO_CONNECT); 960 961 do_work = true; 961 962 process_err_fn = storvsc_remove_lun; 962 963 break;