mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 09:41:03 +02:00
nvmet-rdma: factor out response resource cleanup
Move the RDMA read/write context teardown and the request SGL freeing out of nvmet_rdma_release_rsp() into a new helper function nvmet_rdma_free_rsp_resources(). This is a refactoring with no functional change, in preparation for the following patch that uses nvmet_rdma_free_rsp_resources(). Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
2a8513091d
commit
9009617547
|
|
@ -657,18 +657,25 @@ static void nvmet_rdma_rw_ctx_destroy(struct nvmet_rdma_rsp *rsp)
|
|||
req->sg, req->sg_cnt, nvmet_data_dir(req));
|
||||
}
|
||||
|
||||
static void nvmet_rdma_release_rsp(struct nvmet_rdma_rsp *rsp)
|
||||
static void nvmet_rdma_free_rsp_resources(struct nvmet_rdma_rsp *rsp)
|
||||
{
|
||||
struct nvmet_rdma_queue *queue = rsp->queue;
|
||||
|
||||
atomic_add(1 + rsp->n_rdma, &queue->sq_wr_avail);
|
||||
|
||||
if (rsp->n_rdma)
|
||||
nvmet_rdma_rw_ctx_destroy(rsp);
|
||||
|
||||
if (rsp->req.sg < rsp->cmd->inline_sg ||
|
||||
rsp->req.sg >= rsp->cmd->inline_sg + queue->dev->inline_page_count)
|
||||
nvmet_req_free_sgls(&rsp->req);
|
||||
}
|
||||
|
||||
static void nvmet_rdma_release_rsp(struct nvmet_rdma_rsp *rsp)
|
||||
{
|
||||
struct nvmet_rdma_queue *queue = rsp->queue;
|
||||
|
||||
atomic_add(1 + rsp->n_rdma, &queue->sq_wr_avail);
|
||||
|
||||
nvmet_rdma_free_rsp_resources(rsp);
|
||||
|
||||
if (unlikely(!list_empty_careful(&queue->rsp_wr_wait_list)))
|
||||
nvmet_rdma_process_wr_wait_list(queue);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user