Re: [PATCH] block: call elv_bio_merged() when merged

From: Shaohua Li
Date: Fri May 20 2011 - 04:32:04 EST


2011/5/20 Namhyung Kim <namhyung@xxxxxxxxx>:
> Commit 73c101011926 ("block: initial patch for on-stack per-task plugging")
> removed calls to elv_bio_merged() when @bio merged with @req. Re-add them.
>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx>
> Cc: Divyesh Shah <dpshah@xxxxxxxxxx>
> ---
>  block/blk-core.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/block/blk-core.c b/block/blk-core.c
> index 3fe00a14822a..4dc02ef5fc82 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -1132,6 +1132,7 @@ static bool bio_attempt_back_merge(struct request_queue *q, struct request *req,
>        req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
>
>        drive_stat_acct(req, 0);
> +       elv_bio_merged(q, req, bio);
>        return true;
>  }
>
> @@ -1173,6 +1174,7 @@ static bool bio_attempt_front_merge(struct request_queue *q,
>        req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
>
>        drive_stat_acct(req, 0);
> +       elv_bio_merged(q, req, bio);
>        return true;
>  }
Looks you should do this in __make_request. when the routine is called
in attempt_plug_merge, the request isn't added to elevator yet.

Thanks,
Shaohua
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/