aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r--drivers/scsi/scsi_lib.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 8041fe1ab179..4a3842212c50 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)
1403 1403
1404 INIT_LIST_HEAD(&cmd->eh_entry); 1404 INIT_LIST_HEAD(&cmd->eh_entry);
1405 1405
1406 /*
1407 * Set the serial numbers back to zero
1408 */
1409 cmd->serial_number = 0;
1410
1411 atomic_inc(&cmd->device->iodone_cnt); 1406 atomic_inc(&cmd->device->iodone_cnt);
1412 if (cmd->result) 1407 if (cmd->result)
1413 atomic_inc(&cmd->device->ioerr_cnt); 1408 atomic_inc(&cmd->device->ioerr_cnt);
@@ -1642,9 +1637,8 @@ struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,
1642 1637
1643 blk_queue_max_segment_size(q, dma_get_max_seg_size(dev)); 1638 blk_queue_max_segment_size(q, dma_get_max_seg_size(dev));
1644 1639
1645 /* New queue, no concurrency on queue_flags */
1646 if (!shost->use_clustering) 1640 if (!shost->use_clustering)
1647 queue_flag_clear_unlocked(QUEUE_FLAG_CLUSTER, q); 1641 q->limits.cluster = 0;
1648 1642
1649 /* 1643 /*
1650 * set a reasonable default alignment on word boundaries: the 1644 * set a reasonable default alignment on word boundaries: the
@@ -2438,7 +2432,8 @@ scsi_internal_device_unblock(struct scsi_device *sdev)
2438 sdev->sdev_state = SDEV_RUNNING; 2432 sdev->sdev_state = SDEV_RUNNING;
2439 else if (sdev->sdev_state == SDEV_CREATED_BLOCK) 2433 else if (sdev->sdev_state == SDEV_CREATED_BLOCK)
2440 sdev->sdev_state = SDEV_CREATED; 2434 sdev->sdev_state = SDEV_CREATED;
2441 else 2435 else if (sdev->sdev_state != SDEV_CANCEL &&
2436 sdev->sdev_state != SDEV_OFFLINE)
2442 return -EINVAL; 2437 return -EINVAL;
2443 2438
2444 spin_lock_irqsave(q->queue_lock, flags); 2439 spin_lock_irqsave(q->queue_lock, flags);