On 03/09/2016 07:54 AM, Christoph Hellwig wrote:
+ if (i + 1 != ctx->nr_ops) + rdma_wr->wr.next = &ctx->map.wrs[i + 1].wr;
Not that this really matters, but my own preference is to write such a comparison as i + 1 < ctx->nr_ops.
@@ -787,6 +799,16 @@ struct ib_qp *ib_create_qp(struct ib_pd *pd, atomic_inc(&pd->usecnt); atomic_inc(&qp_init_attr->send_cq->usecnt); + + if (qp_init_attr->cap.max_rdma_ctxs) { + ret = rdma_rw_init_mrs(qp, qp_init_attr); + if (ret) { + pr_err("failed to init MR pool ret= %d\n", ret); + ib_destroy_qp(qp); + qp = ERR_PTR(ret); + } + }
ib_destroy_qp() can fail and if it fails it does not decrement pd->usecnt. Does this have to be handled or reported in some way?
Otherwise this patch looks fine to me. Bart. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html