lkml.org 
[lkml]   [2009]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 1/3] block: let blk_end_request_all handle bidi requests
    From
    On Mon, 11 May 2009 11:06:30 +0200
    Jens Axboe <jens.axboe@oracle.com> wrote:

    > On Mon, May 11 2009, FUJITA Tomonori wrote:
    > > blk_end_request_all() and __blk_end_request_all() should finish all
    > > bytes including bidi, by definition. That's what all bidi users need ,
    > > bidi requests must be complete as a whole (partial completion is
    > > impossible).
    > >
    > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    > > ---
    > > include/linux/blkdev.h | 12 ++++++++++--
    > > 1 files changed, 10 insertions(+), 2 deletions(-)
    > >
    > > diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
    > > index 8919683..3b5c564 100644
    > > --- a/include/linux/blkdev.h
    > > +++ b/include/linux/blkdev.h
    > > @@ -911,8 +911,12 @@ static inline bool blk_end_request(struct request *rq, int error,
    > > static inline void blk_end_request_all(struct request *rq, int error)
    > > {
    > > bool pending;
    > > + unsigned int bidi_bytes = 0;
    > >
    > > - pending = blk_end_request(rq, error, blk_rq_bytes(rq));
    > > + if (unlikely(blk_bidi_rq(rq)))
    > > + bidi_bytes = blk_rq_bytes(rq->next_rq);
    > > +
    > > + pending = blk_end_bidi_request(rq, error, blk_rq_bytes(rq), bidi_bytes);
    > > BUG_ON(pending);
    > > }
    > >
    > > @@ -963,8 +967,12 @@ static inline bool __blk_end_request(struct request *rq, int error,
    > > static inline void __blk_end_request_all(struct request *rq, int error)
    > > {
    > > bool pending;
    > > + unsigned int bidi_bytes = 0;
    > > +
    > > + if (unlikely(blk_bidi_rq(rq)))
    > > + bidi_bytes = blk_rq_bytes(rq->next_rq);
    > >
    > > - pending = __blk_end_request(rq, error, blk_rq_bytes(rq));
    > > + pending = __blk_end_bidi_request(rq, error, blk_rq_bytes(rq), bidi_bytes);
    > > BUG_ON(pending);
    > > }
    >
    > Looks ok, perhaps we can next get rid of the bidi naming? It's all
    > pretty much folded into one anyway, using __blk_end_bidi_request() from
    > generic end-request handling looks confusing.

    Yeah, agreed; the bidi name is confusing. I'll send another patch to
    clean up it on the top of this patchset soon.


    \
     
     \ /
      Last update: 2009-05-11 11:15    [W:0.022 / U:4.380 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site