diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-05-13 12:51:02 -0400 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-05-14 15:09:33 -0400 | 
| commit | 1f4c86c0be9064ab4eebd9e67c84606c1cfeec4b (patch) | |
| tree | 6ae9e8e6550f644335bbf6812edd7e6cfcde7e53 /net/sunrpc/auth_gss/gss_spkm3_mech.c | |
| parent | 8535b2be5181fc3019e4150567ef53210fe3b04f (diff) | |
| download | olio-linux-3.10-1f4c86c0be9064ab4eebd9e67c84606c1cfeec4b.tar.xz olio-linux-3.10-1f4c86c0be9064ab4eebd9e67c84606c1cfeec4b.zip  | |
NFS: Don't use GFP_KERNEL in rpcsec_gss downcalls
Again, we can deadlock if the memory reclaim triggers a writeback that
requires a rpcsec_gss credential lookup.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/auth_gss/gss_spkm3_mech.c')
| -rw-r--r-- | net/sunrpc/auth_gss/gss_spkm3_mech.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sunrpc/auth_gss/gss_spkm3_mech.c b/net/sunrpc/auth_gss/gss_spkm3_mech.c index 035e1dd6af1..dc3f1f5ed86 100644 --- a/net/sunrpc/auth_gss/gss_spkm3_mech.c +++ b/net/sunrpc/auth_gss/gss_spkm3_mech.c @@ -84,13 +84,14 @@ simple_get_netobj(const void *p, const void *end, struct xdr_netobj *res)  static int  gss_import_sec_context_spkm3(const void *p, size_t len, -				struct gss_ctx *ctx_id) +				struct gss_ctx *ctx_id, +				gfp_t gfp_mask)  {  	const void *end = (const void *)((const char *)p + len);  	struct	spkm3_ctx *ctx;  	int	version; -	if (!(ctx = kzalloc(sizeof(*ctx), GFP_NOFS))) +	if (!(ctx = kzalloc(sizeof(*ctx), gfp_mask)))  		goto out_err;  	p = simple_get_bytes(p, end, &version, sizeof(version));  |