Commit 059ee82b authored by Trond Myklebust's avatar Trond Myklebust
Browse files

SUNRPC: Fix unx_lookup_cred() allocation



Default to the same mempool allocation strategy as for rpc_malloc().

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 910ad386
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -40,17 +40,19 @@ unx_destroy(struct rpc_auth *auth)
/*
 * Lookup AUTH_UNIX creds for current process
 */
static struct rpc_cred *
unx_lookup_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
static struct rpc_cred *unx_lookup_cred(struct rpc_auth *auth,
					struct auth_cred *acred, int flags)
{
	gfp_t gfp = GFP_KERNEL;
	struct rpc_cred *ret;

	if (flags & RPCAUTH_LOOKUP_ASYNC)
		gfp = GFP_NOWAIT | __GFP_NOWARN;
	ret = mempool_alloc(unix_pool, gfp);
	ret = kmalloc(sizeof(*ret), rpc_task_gfp_mask());
	if (!ret) {
		if (!(flags & RPCAUTH_LOOKUP_ASYNC))
			return ERR_PTR(-ENOMEM);
		ret = mempool_alloc(unix_pool, GFP_NOWAIT);
		if (!ret)
			return ERR_PTR(-ENOMEM);
	}
	rpcauth_init_cred(ret, acred, auth, &unix_credops);
	ret->cr_flags = 1UL << RPCAUTH_CRED_UPTODATE;
	return ret;