Commit 805a1f62 authored by Chuck Lever's avatar Chuck Lever Committed by Anna Schumaker
Browse files

xprtrdma: Ensure creating an MR does not trigger FS writeback



Probably would be good to also pass GFP flags to ib_alloc_mr.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 3b39f52a
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -147,11 +147,14 @@ int frwr_init_mr(struct rpcrdma_ia *ia, struct rpcrdma_mr *mr)
	struct ib_mr *frmr;
	int rc;

	/* NB: ib_alloc_mr and device drivers typically allocate
	 *     memory with GFP_KERNEL.
	 */
	frmr = ib_alloc_mr(ia->ri_pd, ia->ri_mrtype, depth);
	if (IS_ERR(frmr))
		goto out_mr_err;

	sg = kcalloc(depth, sizeof(*sg), GFP_KERNEL);
	sg = kcalloc(depth, sizeof(*sg), GFP_NOFS);
	if (!sg)
		goto out_list_err;

@@ -171,8 +174,6 @@ out_mr_err:
	return rc;

out_list_err:
	dprintk("RPC:       %s: sg allocation failure\n",
		__func__);
	ib_dereg_mr(frmr);
	return -ENOMEM;
}
+1 −1
Original line number Diff line number Diff line
@@ -949,7 +949,7 @@ rpcrdma_mrs_create(struct rpcrdma_xprt *r_xprt)
		struct rpcrdma_mr *mr;
		int rc;

		mr = kzalloc(sizeof(*mr), GFP_KERNEL);
		mr = kzalloc(sizeof(*mr), GFP_NOFS);
		if (!mr)
			break;