aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_lib.c
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew@wil.cx>2007-09-25 12:42:04 -0400
committerJames Bottomley <jejb@mulgrave.localdomain>2007-10-12 14:52:46 -0400
commit6f5391c283d7fdcf24bf40786ea79061919d1e1d (patch)
tree32ee9abddf9879445792019e1c03bcd28ce6bd4f /drivers/scsi/scsi_lib.c
parent687d2bc4877081a44c41b5b312e012cc69edda53 (diff)
[SCSI] Get rid of scsi_cmnd->done
The ULD ->done callback moves into the scsi_driver. By moving the call to scsi_io_completion() from scsi_blk_pc_done() to scsi_finish_command(), we can eliminate the latter entirely. By returning 'good_bytes' from the ->done callback (rather than invoking scsi_io_completion()), we can stop exporting scsi_io_completion(). Also move the prototypes from sd.h to sd.c as they're all internal anyway. Rename sd_rw_intr to sd_done and rw_intr to sr_done. Inspired-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r--drivers/scsi/scsi_lib.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 86fd3abe731a..fac34293bef7 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -982,7 +982,6 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
982 } 982 }
983 scsi_end_request(cmd, 0, this_count, !result); 983 scsi_end_request(cmd, 0, this_count, !result);
984} 984}
985EXPORT_SYMBOL(scsi_io_completion);
986 985
987/* 986/*
988 * Function: scsi_init_io() 987 * Function: scsi_init_io()
@@ -1063,18 +1062,6 @@ static struct scsi_cmnd *scsi_get_cmd_from_req(struct scsi_device *sdev,
1063 return cmd; 1062 return cmd;
1064} 1063}
1065 1064
1066static void scsi_blk_pc_done(struct scsi_cmnd *cmd)
1067{
1068 BUG_ON(!blk_pc_request(cmd->request));
1069 /*
1070 * This will complete the whole command with uptodate=1 so
1071 * as far as the block layer is concerned the command completed
1072 * successfully. Since this is a REQ_BLOCK_PC command the
1073 * caller should check the request's errors value
1074 */
1075 scsi_io_completion(cmd, cmd->request_bufflen);
1076}
1077
1078int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req) 1065int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req)
1079{ 1066{
1080 struct scsi_cmnd *cmd; 1067 struct scsi_cmnd *cmd;
@@ -1124,7 +1111,6 @@ int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req)
1124 cmd->transfersize = req->data_len; 1111 cmd->transfersize = req->data_len;
1125 cmd->allowed = req->retries; 1112 cmd->allowed = req->retries;
1126 cmd->timeout_per_command = req->timeout; 1113 cmd->timeout_per_command = req->timeout;
1127 cmd->done = scsi_blk_pc_done;
1128 return BLKPREP_OK; 1114 return BLKPREP_OK;
1129} 1115}
1130EXPORT_SYMBOL(scsi_setup_blk_pc_cmnd); 1116EXPORT_SYMBOL(scsi_setup_blk_pc_cmnd);