block: trace all devices plug operation
authorJianpeng Ma <majianpeng@gmail.com>
Wed, 11 Sep 2013 19:21:07 +0000 (13:21 -0600)
committerJens Axboe <axboe@kernel.dk>
Wed, 11 Sep 2013 19:21:07 +0000 (13:21 -0600)
In func blk_queue_bio, if list of plug is empty,it will call
blk_trace_plug.
If process deal with a single device,it't ok.But if process deal with
multi devices,it only trace the first device.
Using request_count to judge, it can soleve this problem.

In addition, i modify the comment.

Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c

index 93a18d1d3da8e43d79b4450e30211ecb59f14b2f..91037f74668e341587b95385977035f18fb39f4f 100644 (file)
@@ -1549,11 +1549,9 @@ get_rq:
        if (plug) {
                /*
                 * If this is the first request added after a plug, fire
-                * of a plug trace. If others have been added before, check
-                * if we have multiple devices in this plug. If so, make a
-                * note to sort the list before dispatch.
+                * of a plug trace.
                 */
-               if (list_empty(&plug->list))
+               if (!request_count)
                        trace_block_plug(q);
                else {
                        if (request_count >= BLK_MAX_REQUEST_COUNT) {