diff options
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
| -rw-r--r-- | drivers/scsi/scsi_lib.c | 11 | 
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 8041fe1ab17..4a3842212c5 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -1403,11 +1403,6 @@ static void scsi_softirq_done(struct request *rq)  	INIT_LIST_HEAD(&cmd->eh_entry); -	/* -	 * Set the serial numbers back to zero -	 */ -	cmd->serial_number = 0; -  	atomic_inc(&cmd->device->iodone_cnt);  	if (cmd->result)  		atomic_inc(&cmd->device->ioerr_cnt); @@ -1642,9 +1637,8 @@ struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,  	blk_queue_max_segment_size(q, dma_get_max_seg_size(dev)); -	/* New queue, no concurrency on queue_flags */  	if (!shost->use_clustering) -		queue_flag_clear_unlocked(QUEUE_FLAG_CLUSTER, q); +		q->limits.cluster = 0;  	/*  	 * set a reasonable default alignment on word boundaries: the @@ -2438,7 +2432,8 @@ scsi_internal_device_unblock(struct scsi_device *sdev)  		sdev->sdev_state = SDEV_RUNNING;  	else if (sdev->sdev_state == SDEV_CREATED_BLOCK)  		sdev->sdev_state = SDEV_CREATED; -	else +	else if (sdev->sdev_state != SDEV_CANCEL && +		 sdev->sdev_state != SDEV_OFFLINE)  		return -EINVAL;  	spin_lock_irqsave(q->queue_lock, flags);  |