diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-28 00:36:39 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-28 00:36:39 -0400 |
commit | d35cc56ddfc948d8df1aa6d41ac345fcec01854d (patch) | |
tree | 7e23a0e3dde639236e019aa88309d919941958e5 /drivers/scsi/scsi_lib.c | |
parent | 86d56134f1b67d0c18025ba5cade95c048ed528d (diff) | |
parent | d1db0eea852497762cab43b905b879dfcd3b8987 (diff) |
Merge 3.15-rc3 into staging-next
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 65a123d9c676..9db097a28a74 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -137,6 +137,7 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy) | |||
137 | * lock such that the kblockd_schedule_work() call happens | 137 | * lock such that the kblockd_schedule_work() call happens |
138 | * before blk_cleanup_queue() finishes. | 138 | * before blk_cleanup_queue() finishes. |
139 | */ | 139 | */ |
140 | cmd->result = 0; | ||
140 | spin_lock_irqsave(q->queue_lock, flags); | 141 | spin_lock_irqsave(q->queue_lock, flags); |
141 | blk_requeue_request(q, cmd->request); | 142 | blk_requeue_request(q, cmd->request); |
142 | kblockd_schedule_work(q, &device->requeue_work); | 143 | kblockd_schedule_work(q, &device->requeue_work); |
@@ -1044,6 +1045,7 @@ static int scsi_init_sgtable(struct request *req, struct scsi_data_buffer *sdb, | |||
1044 | */ | 1045 | */ |
1045 | int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask) | 1046 | int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask) |
1046 | { | 1047 | { |
1048 | struct scsi_device *sdev = cmd->device; | ||
1047 | struct request *rq = cmd->request; | 1049 | struct request *rq = cmd->request; |
1048 | 1050 | ||
1049 | int error = scsi_init_sgtable(rq, &cmd->sdb, gfp_mask); | 1051 | int error = scsi_init_sgtable(rq, &cmd->sdb, gfp_mask); |
@@ -1091,7 +1093,7 @@ err_exit: | |||
1091 | scsi_release_buffers(cmd); | 1093 | scsi_release_buffers(cmd); |
1092 | cmd->request->special = NULL; | 1094 | cmd->request->special = NULL; |
1093 | scsi_put_command(cmd); | 1095 | scsi_put_command(cmd); |
1094 | put_device(&cmd->device->sdev_gendev); | 1096 | put_device(&sdev->sdev_gendev); |
1095 | return error; | 1097 | return error; |
1096 | } | 1098 | } |
1097 | EXPORT_SYMBOL(scsi_init_io); | 1099 | EXPORT_SYMBOL(scsi_init_io); |
@@ -1273,7 +1275,7 @@ int scsi_prep_return(struct request_queue *q, struct request *req, int ret) | |||
1273 | struct scsi_cmnd *cmd = req->special; | 1275 | struct scsi_cmnd *cmd = req->special; |
1274 | scsi_release_buffers(cmd); | 1276 | scsi_release_buffers(cmd); |
1275 | scsi_put_command(cmd); | 1277 | scsi_put_command(cmd); |
1276 | put_device(&cmd->device->sdev_gendev); | 1278 | put_device(&sdev->sdev_gendev); |
1277 | req->special = NULL; | 1279 | req->special = NULL; |
1278 | } | 1280 | } |
1279 | break; | 1281 | break; |