ia64/xen-unstable

changeset 8240:64cd054aa143

Merge
author cl349@firebug.cl.cam.ac.uk
date Sun Dec 04 18:24:24 2005 +0100 (2005-12-04)
parents 2d32c7489a39 8c7de61d3913
children 0255f48b757f
files
line diff
     1.1 --- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c	Sun Dec 04 18:17:33 2005 +0100
     1.2 +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c	Sun Dec 04 18:24:24 2005 +0100
     1.3 @@ -493,12 +493,12 @@ static void make_response(blkif_t *blkif
     1.4  	blk_ring->rsp_prod_pvt++;
     1.5  	RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(blk_ring, notify);
     1.6  
     1.7 -	/*
     1.8 -         * Tail check for pending requests. Allows frontend to avoid
     1.9 -         * notifications if requests are already in flight (lower overheads
    1.10 -         * and promotes batching).
    1.11 -         */
    1.12  	if (blk_ring->rsp_prod_pvt == blk_ring->req_cons) {
    1.13 +		/*
    1.14 +		 * Tail check for pending requests. Allows frontend to avoid
    1.15 +		 * notifications if requests are already in flight (lower
    1.16 +		 * overheads and promotes batching).
    1.17 +		 */
    1.18  		int more_to_do;
    1.19  		RING_FINAL_CHECK_FOR_REQUESTS(blk_ring, more_to_do);
    1.20  		if (more_to_do) {
    1.21 @@ -506,6 +506,12 @@ static void make_response(blkif_t *blkif
    1.22  			maybe_trigger_blkio_schedule();
    1.23  		}
    1.24  	}
    1.25 +	else if (!__on_blkdev_list(blkif)
    1.26 +		 && RING_HAS_UNCONSUMED_REQUESTS(blk_ring)) {
    1.27 +		/* Keep pulling requests as they become available... */
    1.28 +		add_to_blkdev_list_tail(blkif);
    1.29 +		maybe_trigger_blkio_schedule();
    1.30 +	}
    1.31  
    1.32  	spin_unlock_irqrestore(&blkif->blk_ring_lock, flags);
    1.33