lkml.org 
[lkml]   [2012]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/3] block: Fix not tracing all device plug-operation.
    If process handled two or more devices,there will not be trace some
    devices plug-operation.

    Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
    ---
    block/blk-core.c | 16 +++++++++++++++-
    1 file changed, 15 insertions(+), 1 deletion(-)

    diff --git a/block/blk-core.c b/block/blk-core.c
    index 7a3abc6..034f186 100644
    --- a/block/blk-core.c
    +++ b/block/blk-core.c
    @@ -1521,11 +1521,25 @@ get_rq:
    struct request *__rq;

    __rq = list_entry_rq(plug->list.prev);
    - if (__rq->q != q)
    + if (__rq->q != q) {
    plug->should_sort = 1;
    + trace_block_plug(q);
    + }
    + } else {
    + struct request *__rq;
    + list_for_each_entry_reverse(__rq, &plug->list,
    + queuelist) {
    + if (__rq->q == q) {
    + list_add_tail(&req->queuelist,
    + &__rq->queuelist);
    + goto stat_acct;
    + }
    + }
    + trace_block_plug(q);
    }
    }
    list_add_tail(&req->queuelist, &plug->list);
    +stat_acct:
    drive_stat_acct(req, 1);
    } else {
    spin_lock_irq(q->queue_lock);
    --
    1.7.9.5
    \
     
     \ /
      Last update: 2012-08-10 14:42    [W:0.022 / U:62.080 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site