lkml.org 
[lkml]   [2016]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 08/12] dm: dm.c: replace 'bio->bi_vcnt == 1' with !bio_multiple_segments
    On Fri, Nov 11, 2016 at 8:05 PM, Ming Lei <tom.leiming@gmail.com> wrote:
    > Avoid to access .bi_vcnt directly, because the bio can be
    > splitted from block layer, and .bi_vcnt should never have
    > been used here.
    >
    > Signed-off-by: Ming Lei <tom.leiming@gmail.com>
    > ---
    > drivers/md/dm-rq.c | 7 ++++++-
    > 1 file changed, 6 insertions(+), 1 deletion(-)
    >
    > diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c
    > index b2a9e2d161e4..d9cc8324e597 100644
    > --- a/drivers/md/dm-rq.c
    > +++ b/drivers/md/dm-rq.c
    > @@ -797,8 +797,13 @@ static void dm_old_request_fn(struct request_queue *q)
    > if (req_op(rq) != REQ_OP_FLUSH)
    > pos = blk_rq_pos(rq);
    >
    > + /*
    > + * bio can be splitted from block layer, so use
    > + * !bio_multiple_segments instead of 'bio->bi_vcnt == 1'
    > + */
    > if ((dm_old_request_peeked_before_merge_deadline(md) &&
    > - md_in_flight(md) && rq->bio && rq->bio->bi_vcnt == 1 &&
    > + md_in_flight(md) && rq->bio &&
    > + !bio_multiple_segments(rq->bio) &&
    > md->last_rq_pos == pos && md->last_rq_rw == rq_data_dir(rq)) ||
    > (ti->type->busy && ti->type->busy(ti))) {
    > blk_delay_queue(q, 10);

    Hi Alasdair, Mike, Christoph and anyone,

    Could you give this one a review?

    Thanks,
    Ming Lei

    \
     
     \ /
      Last update: 2016-11-15 02:03    [W:2.684 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site