Skip to content

Commit

Permalink
blk-wbt: abstract out end IO completion handler
Browse files Browse the repository at this point in the history
Prep patch for calling the handler from a different context,
no functional changes in this patch.

Tested-by: Agarwal, Anchal <anchalag@amazon.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
axboe committed Aug 27, 2018
1 parent b8dcdab commit 061a542
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions block/blk-wbt.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,16 +123,11 @@ static void rwb_wake_all(struct rq_wb *rwb)
}
}

static void __wbt_done(struct rq_qos *rqos, enum wbt_flags wb_acct)
static void wbt_rqw_done(struct rq_wb *rwb, struct rq_wait *rqw,
enum wbt_flags wb_acct)
{
struct rq_wb *rwb = RQWB(rqos);
struct rq_wait *rqw;
int inflight, limit;

if (!(wb_acct & WBT_TRACKED))
return;

rqw = get_rq_wait(rwb, wb_acct);
inflight = atomic_dec_return(&rqw->inflight);

/*
Expand Down Expand Up @@ -170,6 +165,18 @@ static void __wbt_done(struct rq_qos *rqos, enum wbt_flags wb_acct)
}
}

static void __wbt_done(struct rq_qos *rqos, enum wbt_flags wb_acct)
{
struct rq_wb *rwb = RQWB(rqos);
struct rq_wait *rqw;

if (!(wb_acct & WBT_TRACKED))
return;

rqw = get_rq_wait(rwb, wb_acct);
wbt_rqw_done(rwb, rqw, wb_acct);
}

/*
* Called on completion of a request. Note that it's also called when
* a request is merged, when the request gets freed.
Expand Down

0 comments on commit 061a542

Please sign in to comment.