|
|
|
|
|
|
|
|
|
|
xen-changelog
# HG changeset patch
# User cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID 64cd054aa1432b44c66e72c0c0179827aa5772a9
# Parent 2d32c7489a390084ba65ef22e22926f198185ea1
# Parent 8c7de61d3913ed2b463c91624b0411041158a9c2
Merge
diff -r 2d32c7489a39 -r 64cd054aa143
linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c Sun Dec 4
17:17:33 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c Sun Dec 4
17:24:24 2005
@@ -493,18 +493,24 @@
blk_ring->rsp_prod_pvt++;
RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(blk_ring, notify);
- /*
- * Tail check for pending requests. Allows frontend to avoid
- * notifications if requests are already in flight (lower overheads
- * and promotes batching).
- */
if (blk_ring->rsp_prod_pvt == blk_ring->req_cons) {
+ /*
+ * Tail check for pending requests. Allows frontend to avoid
+ * notifications if requests are already in flight (lower
+ * overheads and promotes batching).
+ */
int more_to_do;
RING_FINAL_CHECK_FOR_REQUESTS(blk_ring, more_to_do);
if (more_to_do) {
add_to_blkdev_list_tail(blkif);
maybe_trigger_blkio_schedule();
}
+ }
+ else if (!__on_blkdev_list(blkif)
+ && RING_HAS_UNCONSUMED_REQUESTS(blk_ring)) {
+ /* Keep pulling requests as they become available... */
+ add_to_blkdev_list_tail(blkif);
+ maybe_trigger_blkio_schedule();
}
spin_unlock_irqrestore(&blkif->blk_ring_lock, flags);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
|
|
|
|