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 git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
[SCSI] mpt fusion: clear list of outstanding commands on host reset
[SCSI] scsi_lib: only call scsi_unprep_request() under queue lock
[SCSI] ibmvstgt: move crq_queue_create to the end of initialization
[SCSI] libiscsi REGRESSION: fix passthrough support with older iscsi tools
[SCSI] aacraid: disable Dell Percraid quirk on Adaptec 2200S and 2120S

+21 -17
+3
drivers/message/fusion/mptscsih.c
··· 2008 2008 return FAILED; 2009 2009 } 2010 2010 2011 + /* make sure we have no outstanding commands at this stage */ 2012 + mptscsih_flush_running_cmds(hd); 2013 + 2011 2014 ioc = hd->ioc; 2012 2015 printk(MYIOC_s_INFO_FMT "attempting host reset! (sc=%p)\n", 2013 2016 ioc->name, SCpnt);
+2 -2
drivers/scsi/aacraid/linit.c
··· 175 175 { aac_rx_init, "percraid", "DELL ", "PERCRAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* PERC 3/Di (Boxster/PERC3DiB) */ 176 176 { aac_rx_init, "aacraid", "ADAPTEC ", "catapult ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* catapult */ 177 177 { aac_rx_init, "aacraid", "ADAPTEC ", "tomcat ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* tomcat */ 178 - { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2120S ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2120S (Crusader) */ 179 - { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan) */ 178 + { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2120S ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec 2120S (Crusader) */ 179 + { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec 2200S (Vulcan) */ 180 180 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan-2m) */ 181 181 { aac_rx_init, "aacraid", "Legend ", "Legend S220 ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S220 (Legend Crusader) */ 182 182 { aac_rx_init, "aacraid", "Legend ", "Legend S230 ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S230 (Legend Vulcan) */
+10 -8
drivers/scsi/ibmvscsi/ibmvstgt.c
··· 864 864 865 865 INIT_WORK(&vport->crq_work, handle_crq); 866 866 867 - err = crq_queue_create(&vport->crq_queue, target); 867 + err = scsi_add_host(shost, target->dev); 868 868 if (err) 869 869 goto free_srp_target; 870 870 871 - err = scsi_add_host(shost, target->dev); 872 - if (err) 873 - goto destroy_queue; 874 - 875 871 err = scsi_tgt_alloc_queue(shost); 876 872 if (err) 877 - goto destroy_queue; 873 + goto remove_host; 874 + 875 + err = crq_queue_create(&vport->crq_queue, target); 876 + if (err) 877 + goto free_queue; 878 878 879 879 return 0; 880 - destroy_queue: 881 - crq_queue_destroy(target); 880 + free_queue: 881 + scsi_tgt_free_queue(shost); 882 + remove_host: 883 + scsi_remove_host(shost); 882 884 free_srp_target: 883 885 srp_target_free(target); 884 886 put_host:
+5 -6
drivers/scsi/libiscsi.c
··· 489 489 if (!__kfifo_get(session->cmdpool.queue, 490 490 (void*)&task, sizeof(void*))) 491 491 return NULL; 492 - 493 - if ((hdr->opcode == (ISCSI_OP_NOOP_OUT | ISCSI_OP_IMMEDIATE)) && 494 - hdr->ttt == RESERVED_ITT) { 495 - conn->ping_task = task; 496 - conn->last_ping = jiffies; 497 - } 498 492 } 499 493 /* 500 494 * released in complete pdu for task we expect a response for, and ··· 697 703 task = __iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)&hdr, NULL, 0); 698 704 if (!task) 699 705 iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n"); 706 + else if (!rhdr) { 707 + /* only track our nops */ 708 + conn->ping_task = task; 709 + conn->last_ping = jiffies; 710 + } 700 711 } 701 712 702 713 static int iscsi_handle_reject(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
+1 -1
drivers/scsi/scsi_lib.c
··· 648 648 struct request *req = cmd->request; 649 649 unsigned long flags; 650 650 651 - scsi_unprep_request(req); 652 651 spin_lock_irqsave(q->queue_lock, flags); 652 + scsi_unprep_request(req); 653 653 blk_requeue_request(q, req); 654 654 spin_unlock_irqrestore(q->queue_lock, flags); 655 655