lkml.org 
[lkml]   [2008]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC][PATCH 3/3] Do not use rqhash when merges disabled
    Aaron Carroll wrote:
    > Hi Alan,
    >
    > Alan D. Brunelle wrote:
    >> --- a/block/elevator.c
    >> +++ b/block/elevator.c
    >> @@ -313,7 +313,7 @@ static inline void __elv_rqhash_del(struct request
    >> *rq)
    >>
    >> static void elv_rqhash_del(struct request_queue *q, struct request *rq)
    >> {
    >> - if (ELV_ON_HASH(rq))
    >> + if (!blk_queue_nomerges(q) && ELV_ON_HASH(rq))
    >> __elv_rqhash_del(rq);
    >> }
    >
    > If you switch the nomerges tunable while requests are in flight, it is
    > possible that
    > a request is put into the rqhash table but not removed here, leading to
    > the BUG_ON
    > in elv_dequeue_request() triggering. ELV_ON_HASH needs to be checked
    > regardless of
    > the nomerges state.
    >
    >
    > -- Aaron
    >
    >

    Hi Aaron -

    Good catch - that was a last minute addition, the ELV_ON_HASH should be
    sufficient without the check for blk_queue_nomerges, right?

    Alan


    \
     
     \ /
      Last update: 2008-04-24 03:03    [W:0.022 / U:0.820 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site