]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
nvme-rdma: unconditionally recycle the request mr
authorSagi Grimberg <sagi@grimberg.me>
Wed, 5 Jul 2017 06:56:13 +0000 (09:56 +0300)
committerSagi Grimberg <sagi@grimberg.me>
Thu, 6 Jul 2017 06:49:43 +0000 (09:49 +0300)
When our RDMA queue-pair is torn down with high load
of I/O traffic, we have no way of knowing if the
memory region was actually registered by the reg_mr
work request as it completion flushes with error (hw
might have done it or not).

So in order to not deal with all this uncertanty, we
simply recycle the MR in reinit_request.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
drivers/nvme/host/rdma.c

index ccdbd99d5a1c89a1041083f90d44c826f1965732..da04df1af231758cb4965735c417a215d736ec94 100644 (file)
@@ -272,9 +272,6 @@ static int nvme_rdma_reinit_request(void *data, struct request *rq)
        struct nvme_rdma_request *req = blk_mq_rq_to_pdu(rq);
        int ret = 0;
 
-       if (!req->mr->need_inval)
-               goto out;
-
        ib_dereg_mr(req->mr);
 
        req->mr = ib_alloc_mr(dev->pd, IB_MR_TYPE_MEM_REG,