diff options
Diffstat (limited to 'fs/nfs/callback_xdr.c')
-rw-r--r-- | fs/nfs/callback_xdr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c index d81f96aacd51..656f68f7fe53 100644 --- a/fs/nfs/callback_xdr.c +++ b/fs/nfs/callback_xdr.c | |||
@@ -925,7 +925,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r | |||
925 | if (hdr_arg.minorversion == 0) { | 925 | if (hdr_arg.minorversion == 0) { |
926 | cps.clp = nfs4_find_client_ident(SVC_NET(rqstp), hdr_arg.cb_ident); | 926 | cps.clp = nfs4_find_client_ident(SVC_NET(rqstp), hdr_arg.cb_ident); |
927 | if (!cps.clp || !check_gss_callback_principal(cps.clp, rqstp)) | 927 | if (!cps.clp || !check_gss_callback_principal(cps.clp, rqstp)) |
928 | return rpc_drop_reply; | 928 | goto out_invalidcred; |
929 | } | 929 | } |
930 | 930 | ||
931 | cps.minorversion = hdr_arg.minorversion; | 931 | cps.minorversion = hdr_arg.minorversion; |
@@ -953,6 +953,10 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r | |||
953 | nfs_put_client(cps.clp); | 953 | nfs_put_client(cps.clp); |
954 | dprintk("%s: done, status = %u\n", __func__, ntohl(status)); | 954 | dprintk("%s: done, status = %u\n", __func__, ntohl(status)); |
955 | return rpc_success; | 955 | return rpc_success; |
956 | |||
957 | out_invalidcred: | ||
958 | pr_warn_ratelimited("NFS: NFSv4 callback contains invalid cred\n"); | ||
959 | return rpc_autherr_badcred; | ||
956 | } | 960 | } |
957 | 961 | ||
958 | /* | 962 | /* |