For a deleted scsi target marked as FC_PORTSTATE_BLOCKED, rescanning it looks fine. Signed-off-by: Hillf Danton <dhillf@xxxxxxxxx> --- --- o/linux-2.6.36-rc4/drivers/scsi/scsi_transport_fc.c 2010-09-13 07:07:38.000000000 +0800 +++ m/linux-2.6.36-rc4/drivers/scsi/scsi_transport_fc.c 2010-09-24 22:16:26.000000000 +0800 @@ -50,7 +50,6 @@ static int fc_vport_setup(struct Scsi_Ho static int fc_bsg_hostadd(struct Scsi_Host *, struct fc_host_attrs *); static int fc_bsg_rportadd(struct Scsi_Host *, struct fc_rport *); static void fc_bsg_remove(struct request_queue *); -static void fc_bsg_goose_queue(struct fc_rport *); /* * Redefine so that we can have same named attributes in the @@ -2737,8 +2736,6 @@ fc_remote_port_add(struct Scsi_Host *sho spin_unlock_irqrestore(shost->host_lock, flags); - fc_bsg_goose_queue(rport); - return rport; } } @@ -3753,33 +3750,6 @@ fail_host_msg: } -/* - * fc_bsg_goose_queue - restart rport queue in case it was stopped - * @rport: rport to be restarted - */ -static void -fc_bsg_goose_queue(struct fc_rport *rport) -{ - int flagset; - unsigned long flags; - - if (!rport->rqst_q) - return; - - get_device(&rport->dev); - - spin_lock_irqsave(rport->rqst_q->queue_lock, flags); - flagset = test_bit(QUEUE_FLAG_REENTER, &rport->rqst_q->queue_flags) && - !test_bit(QUEUE_FLAG_REENTER, &rport->rqst_q->queue_flags); - if (flagset) - queue_flag_set(QUEUE_FLAG_REENTER, rport->rqst_q); - __blk_run_queue(rport->rqst_q); - if (flagset) - queue_flag_clear(QUEUE_FLAG_REENTER, rport->rqst_q); - spin_unlock_irqrestore(rport->rqst_q->queue_lock, flags); - - put_device(&rport->dev); -} /** -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html