o It is possible that when there is only a single queue in the system, it
remains unexpired for a long time (because there is no IO activity on the
disk). So when next request comes in after a long time, it might make
scheduler think that all this while queue used the disk and it will assign
a high vdisktime to the queue. Hence make sure queue is expired once all
the requests have completed from the queue.
o Also avoid unnecessarily expiring a queue when it has got one request
dispatched to the queue and waiting for it to finish and it does not have
more requests queued to dispatch.
Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>