On Wed, 2014-02-05 at 04:39 -0800, Christoph Hellwig wrote: > If we don't have starved devices we don't need to take the host lock > to iterate over them. Also split the function up to be more clear. This looks reasonable and can potentially go separately too. > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > drivers/scsi/scsi_lib.c | 31 ++++++++++++------------------- > 1 file changed, 12 insertions(+), 19 deletions(-) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index 216be71..44740c0 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -363,29 +363,12 @@ static inline int scsi_host_is_busy(struct Scsi_Host *shost) > return 0; > } > > -/* > - * Function: scsi_run_queue() > - * > - * Purpose: Select a proper request queue to serve next > - * > - * Arguments: q - last request's queue > - * > - * Returns: Nothing > - * > - * Notes: The previous command was completely finished, start > - * a new one if possible. > - */ Instead of dumping the description, how about converting it to docbook and making it match the new function? > -static void scsi_run_queue(struct request_queue *q) > +static void scsi_starved_list_run(struct Scsi_Host *shost) > { > - struct scsi_device *sdev = q->queuedata; > - struct Scsi_Host *shost; > LIST_HEAD(starved_list); > + struct scsi_device *sdev; > unsigned long flags; > > - shost = sdev->host; > - if (scsi_target(sdev)->single_lun) > - scsi_single_lun_run(sdev); > - > spin_lock_irqsave(shost->host_lock, flags); > list_splice_init(&shost->starved_list, &starved_list); > > @@ -437,6 +420,16 @@ static void scsi_run_queue(struct request_queue *q) > /* put any unprocessed entries back */ > list_splice(&starved_list, &shost->starved_list); > spin_unlock_irqrestore(shost->host_lock, flags); > +} And reinsert either the original or a docbook formatted version of the description. Thanks, James > +static void scsi_run_queue(struct request_queue *q) > +{ > + struct scsi_device *sdev = q->queuedata; > + > + if (scsi_target(sdev)->single_lun) > + scsi_single_lun_run(sdev); > + if (!list_empty(&sdev->host->starved_list)) > + scsi_starved_list_run(sdev->host); > > blk_run_queue(q); > } > -- > 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