Make it explicit which variants of scsi_get_command() and scsi_put_command() manipulate the SCSI device reference count. This patch does not change any functionality. Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> Cc: Mike Christie <michaelc@xxxxxxxxxxx> Cc: Hannes Reinecke <hare@xxxxxxx> --- drivers/scsi/scsi.c | 23 ++++++++++++----------- drivers/scsi/scsi_error.c | 2 +- drivers/scsi/scsi_lib.c | 10 +++++----- drivers/scsi/scsi_tgt_lib.c | 2 +- include/scsi/scsi_cmnd.h | 8 ++++---- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index eaa808e..3d3eb74 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -281,13 +281,14 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) EXPORT_SYMBOL_GPL(__scsi_get_command); /** - * scsi_get_command - Allocate and setup a scsi command block + * scsi_get_command_and_dev() - Allocate and setup a scsi command block * @dev: parent scsi device * @gfp_mask: allocator flags * * Returns: The allocated scsi command structure. */ -struct scsi_cmnd *scsi_get_command(struct scsi_device *dev, gfp_t gfp_mask) +struct scsi_cmnd *scsi_get_command_and_dev(struct scsi_device *dev, + gfp_t gfp_mask) { struct scsi_cmnd *cmd; @@ -311,16 +312,16 @@ struct scsi_cmnd *scsi_get_command(struct scsi_device *dev, gfp_t gfp_mask) return cmd; } -EXPORT_SYMBOL(scsi_get_command); +EXPORT_SYMBOL(scsi_get_command_and_dev); /** - * __scsi_put_command - Free a struct scsi_cmnd + * __scsi_put_command_and_dev() - Free a struct scsi_cmnd * @shost: dev->host * @cmd: Command to free * @dev: parent scsi device */ -void __scsi_put_command(struct Scsi_Host *shost, struct scsi_cmnd *cmd, - struct device *dev) +void __scsi_put_command_and_dev(struct Scsi_Host *shost, struct scsi_cmnd *cmd, + struct device *dev) { unsigned long flags; @@ -337,17 +338,17 @@ void __scsi_put_command(struct Scsi_Host *shost, struct scsi_cmnd *cmd, put_device(dev); } -EXPORT_SYMBOL(__scsi_put_command); +EXPORT_SYMBOL(__scsi_put_command_and_dev); /** - * scsi_put_command - Free a scsi command block + * scsi_put_command_and_dev() - Free a scsi command block * @cmd: command block to free * * Returns: Nothing. * * Notes: The command must not belong to any lists. */ -void scsi_put_command(struct scsi_cmnd *cmd) +void scsi_put_command_and_dev(struct scsi_cmnd *cmd) { struct scsi_device *sdev = cmd->device; unsigned long flags; @@ -358,9 +359,9 @@ void scsi_put_command(struct scsi_cmnd *cmd) list_del_init(&cmd->list); spin_unlock_irqrestore(&cmd->device->list_lock, flags); - __scsi_put_command(cmd->device->host, cmd, &sdev->sdev_gendev); + __scsi_put_command_and_dev(cmd->device->host, cmd, &sdev->sdev_gendev); } -EXPORT_SYMBOL(scsi_put_command); +EXPORT_SYMBOL(scsi_put_command_and_dev); static struct scsi_host_cmd_pool *scsi_get_host_cmd_pool(gfp_t gfp_mask) { diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 2150596..4a1462a 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@ -1995,7 +1995,7 @@ scsi_reset_provider(struct scsi_device *dev, int flag) if (scsi_autopm_get_host(shost) < 0) return FAILED; - scmd = scsi_get_command(dev, GFP_KERNEL); + scmd = scsi_get_command_and_dev(dev, GFP_KERNEL); blk_rq_init(NULL, &req); scmd->request = &req; diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 905ac00..fc18403 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -116,7 +116,7 @@ static void scsi_unprep_request(struct request *req) blk_unprep_request(req); req->special = NULL; - scsi_put_command(cmd); + scsi_put_command_and_dev(cmd); } /** @@ -545,7 +545,7 @@ void scsi_next_command(struct scsi_cmnd *cmd) /* need to hold a reference on the device before we let go of the cmd */ get_device(&sdev->sdev_gendev); - scsi_put_command(cmd); + scsi_put_command_and_dev(cmd); scsi_run_queue(q); /* ok to remove device now */ @@ -1110,7 +1110,7 @@ int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask) err_exit: scsi_release_buffers(cmd); cmd->request->special = NULL; - scsi_put_command(cmd); + scsi_put_command_and_dev(cmd); return error; } EXPORT_SYMBOL(scsi_init_io); @@ -1121,7 +1121,7 @@ static struct scsi_cmnd *scsi_get_cmd_from_req(struct scsi_device *sdev, struct scsi_cmnd *cmd; if (!req->special) { - cmd = scsi_get_command(sdev, GFP_ATOMIC); + cmd = scsi_get_command_and_dev(sdev, GFP_ATOMIC); if (unlikely(!cmd)) return NULL; req->special = cmd; @@ -1286,7 +1286,7 @@ int scsi_prep_return(struct request_queue *q, struct request *req, int ret) if (req->special) { struct scsi_cmnd *cmd = req->special; scsi_release_buffers(cmd); - scsi_put_command(cmd); + scsi_put_command_and_dev(cmd); req->special = NULL; } break; diff --git a/drivers/scsi/scsi_tgt_lib.c b/drivers/scsi/scsi_tgt_lib.c index 84a1fdf..79d18c5 100644 --- a/drivers/scsi/scsi_tgt_lib.c +++ b/drivers/scsi/scsi_tgt_lib.c @@ -155,7 +155,7 @@ void scsi_host_put_command(struct Scsi_Host *shost, struct scsi_cmnd *cmd) __blk_put_request(q, rq); spin_unlock_irqrestore(q->queue_lock, flags); - __scsi_put_command(shost, cmd, &shost->shost_gendev); + __scsi_put_command_and_dev(shost, cmd, &shost->shost_gendev); } EXPORT_SYMBOL_GPL(scsi_host_put_command); diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index de5f5d8..3649eef 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -138,11 +138,11 @@ static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd) return *(struct scsi_driver **)cmd->request->rq_disk->private_data; } -extern struct scsi_cmnd *scsi_get_command(struct scsi_device *, gfp_t); +extern struct scsi_cmnd *scsi_get_command_and_dev(struct scsi_device *, gfp_t); extern struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *, gfp_t); -extern void scsi_put_command(struct scsi_cmnd *); -extern void __scsi_put_command(struct Scsi_Host *, struct scsi_cmnd *, - struct device *); +extern void scsi_put_command_and_dev(struct scsi_cmnd *); +extern void __scsi_put_command_and_dev(struct Scsi_Host *, struct scsi_cmnd *, + struct device *); extern void scsi_finish_command(struct scsi_cmnd *cmd); extern void *scsi_kmap_atomic_sg(struct scatterlist *sg, int sg_count, -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html