Commit 635d98b1 authored by Christoph Hellwig's avatar Christoph Hellwig

scsi: move the nr_phys_segments assert into scsi_init_io

scsi_init_io should only be called for requests that transfer data,
so move the assert that a request has segments from the callers into
scsi_init_io.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
parent e6c11dbb
...@@ -963,8 +963,11 @@ int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask) ...@@ -963,8 +963,11 @@ int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask)
{ {
struct scsi_device *sdev = cmd->device; struct scsi_device *sdev = cmd->device;
struct request *rq = cmd->request; struct request *rq = cmd->request;
int error;
int error = scsi_init_sgtable(rq, &cmd->sdb, gfp_mask); BUG_ON(!rq->nr_phys_segments);
error = scsi_init_sgtable(rq, &cmd->sdb, gfp_mask);
if (error) if (error)
goto err_exit; goto err_exit;
...@@ -1055,11 +1058,7 @@ int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req) ...@@ -1055,11 +1058,7 @@ int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req)
* submit a request without an attached bio. * submit a request without an attached bio.
*/ */
if (req->bio) { if (req->bio) {
int ret; int ret = scsi_init_io(cmd, GFP_ATOMIC);
BUG_ON(!req->nr_phys_segments);
ret = scsi_init_io(cmd, GFP_ATOMIC);
if (unlikely(ret)) if (unlikely(ret))
return ret; return ret;
} else { } else {
...@@ -1098,11 +1097,6 @@ int scsi_setup_fs_cmnd(struct scsi_device *sdev, struct request *req) ...@@ -1098,11 +1097,6 @@ int scsi_setup_fs_cmnd(struct scsi_device *sdev, struct request *req)
return ret; return ret;
} }
/*
* Filesystem requests must transfer data.
*/
BUG_ON(!req->nr_phys_segments);
memset(cmd->cmnd, 0, BLK_MAX_CDB); memset(cmd->cmnd, 0, BLK_MAX_CDB);
return scsi_init_io(cmd, GFP_ATOMIC); return scsi_init_io(cmd, GFP_ATOMIC);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment