Messages in this thread | | | Date | Wed, 09 Jul 2014 13:12:54 +0200 | From | Hannes Reinecke <> | Subject | Re: [PATCH 02/14] scsi: split __scsi_queue_insert |
| |
On 06/25/2014 06:51 PM, Christoph Hellwig wrote: > Factor out a helper to set the _blocked values, which we'll reuse for the > blk-mq code path. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > drivers/scsi/scsi_lib.c | 44 ++++++++++++++++++++++++++------------------ > 1 file changed, 26 insertions(+), 18 deletions(-) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index d5d22e4..2667c75 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -75,28 +75,12 @@ struct kmem_cache *scsi_sdb_cache; > */ > #define SCSI_QUEUE_DELAY 3 > > -/** > - * __scsi_queue_insert - private queue insertion > - * @cmd: The SCSI command being requeued > - * @reason: The reason for the requeue > - * @unbusy: Whether the queue should be unbusied > - * > - * This is a private queue insertion. The public interface > - * scsi_queue_insert() always assumes the queue should be unbusied > - * because it's always called before the completion. This function is > - * for a requeue after completion, which should only occur in this > - * file. > - */ > -static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy) > +static void > +scsi_set_blocked(struct scsi_cmnd *cmd, int reason) > { > struct Scsi_Host *host = cmd->device->host; > struct scsi_device *device = cmd->device; > struct scsi_target *starget = scsi_target(device); > - struct request_queue *q = device->request_queue; > - unsigned long flags; > - > - SCSI_LOG_MLQUEUE(1, scmd_printk(KERN_INFO, cmd, > - "Inserting command %p into mlqueue\n", cmd)); > > /* > * Set the appropriate busy bit for the device/host. > @@ -123,6 +107,30 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy) > starget->target_blocked = starget->max_target_blocked; > break; > } > +} > + > +/** > + * __scsi_queue_insert - private queue insertion > + * @cmd: The SCSI command being requeued > + * @reason: The reason for the requeue > + * @unbusy: Whether the queue should be unbusied > + * > + * This is a private queue insertion. The public interface > + * scsi_queue_insert() always assumes the queue should be unbusied > + * because it's always called before the completion. This function is > + * for a requeue after completion, which should only occur in this > + * file. > + */ > +static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy) > +{ > + struct scsi_device *device = cmd->device; > + struct request_queue *q = device->request_queue; > + unsigned long flags; > + > + SCSI_LOG_MLQUEUE(1, scmd_printk(KERN_INFO, cmd, > + "Inserting command %p into mlqueue\n", cmd)); > + > + scsi_set_blocked(cmd, reason); > > /* > * Decrement the counters, since these commands are no longer > Reviewed-by: Hannes Reinecke <hare@suse.de>
Cheers,
Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |