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:
"This is our remaining set of three fixes for 4.0: two oops fixes(one
for cable pulls triggering oopses and the other be2iscsi specific) and
one warn on in sysfs on multipath devices using enclosures"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
Defer processing of REQ_PREEMPT requests for blocked devices
be2iscsi: Fix kernel panic when device initialization fails
enclosure: fix WARN_ON removing an adapter in multi-path devices

+13 -8
+6 -5
drivers/misc/enclosure.c
··· 202 202 { 203 203 char name[ENCLOSURE_NAME_SIZE]; 204 204 205 + enclosure_link_name(cdev, name); 206 + 205 207 /* 206 208 * In odd circumstances, like multipath devices, something else may 207 209 * already have removed the links, so check for this condition first. 208 210 */ 209 - if (!cdev->dev->kobj.sd) 210 - return; 211 + if (cdev->dev->kobj.sd) 212 + sysfs_remove_link(&cdev->dev->kobj, name); 211 213 212 - enclosure_link_name(cdev, name); 213 - sysfs_remove_link(&cdev->dev->kobj, name); 214 - sysfs_remove_link(&cdev->cdev.kobj, "device"); 214 + if (cdev->cdev.kobj.sd) 215 + sysfs_remove_link(&cdev->cdev.kobj, "device"); 215 216 } 216 217 217 218 static int enclosure_add_links(struct enclosure_component *cdev)
+1 -1
drivers/scsi/be2iscsi/be_main.c
··· 5734 5734 hba_free: 5735 5735 if (phba->msix_enabled) 5736 5736 pci_disable_msix(phba->pcidev); 5737 - iscsi_host_remove(phba->shost); 5738 5737 pci_dev_put(phba->pcidev); 5739 5738 iscsi_host_free(phba->shost); 5739 + pci_set_drvdata(pcidev, NULL); 5740 5740 disable_pci: 5741 5741 pci_disable_device(pcidev); 5742 5742 return ret;
+3 -1
drivers/scsi/scsi_lib.c
··· 1311 1311 "rejecting I/O to dead device\n"); 1312 1312 ret = BLKPREP_KILL; 1313 1313 break; 1314 - case SDEV_QUIESCE: 1315 1314 case SDEV_BLOCK: 1316 1315 case SDEV_CREATED_BLOCK: 1316 + ret = BLKPREP_DEFER; 1317 + break; 1318 + case SDEV_QUIESCE: 1317 1319 /* 1318 1320 * If the devices is blocked we defer normal commands. 1319 1321 */
+3 -1
include/linux/blk_types.h
··· 181 181 __REQ_ELVPRIV, /* elevator private data attached */ 182 182 __REQ_FAILED, /* set if the request failed */ 183 183 __REQ_QUIET, /* don't worry about errors */ 184 - __REQ_PREEMPT, /* set for "ide_preempt" requests */ 184 + __REQ_PREEMPT, /* set for "ide_preempt" requests and also 185 + for requests for which the SCSI "quiesce" 186 + state must be ignored. */ 185 187 __REQ_ALLOCED, /* request came from our alloc pool */ 186 188 __REQ_COPY_USER, /* contains copies of user pages */ 187 189 __REQ_FLUSH_SEQ, /* request for flush sequence */