summaryrefslogtreecommitdiffstats
path: root/include/linux/sunrpc/svcauth.h
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2013-05-14 16:07:13 -0400
committerJ. Bruce Fields <bfields@redhat.com>2013-07-01 17:23:06 -0400
commit0dc1531aca7fd1440918bd55844a054e9c29acad (patch)
tree3bed6a56a709b4781d8108f7a5b7546a6685fd09 /include/linux/sunrpc/svcauth.h
parent442340639194762df7e61e8aabae44a18896eca1 (diff)
downloadlinux-0dc1531aca7fd1440918bd55844a054e9c29acad.tar.gz
linux-0dc1531aca7fd1440918bd55844a054e9c29acad.tar.bz2
linux-0dc1531aca7fd1440918bd55844a054e9c29acad.zip
svcrpc: store gss mech in svc_cred
Store a pointer to the gss mechanism used in the rq_cred and cl_cred. This will make it easier to enforce SP4_MACH_CRED, which needs to compare the mechanism used on the exchange_id with that used on protected operations. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'include/linux/sunrpc/svcauth.h')
-rw-r--r--include/linux/sunrpc/svcauth.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h
index 95c956613a9c..8d71d6577459 100644
--- a/include/linux/sunrpc/svcauth.h
+++ b/include/linux/sunrpc/svcauth.h
@@ -14,6 +14,7 @@
#include <linux/string.h>
#include <linux/sunrpc/msg_prot.h>
#include <linux/sunrpc/cache.h>
+#include <linux/sunrpc/gss_api.h>
#include <linux/hash.h>
#include <linux/cred.h>
@@ -23,6 +24,7 @@ struct svc_cred {
struct group_info *cr_group_info;
u32 cr_flavor; /* pseudoflavor */
char *cr_principal; /* for gss */
+ struct gss_api_mech *cr_gss_mech;
};
static inline void init_svc_cred(struct svc_cred *cred)
@@ -37,6 +39,8 @@ static inline void free_svc_cred(struct svc_cred *cred)
if (cred->cr_group_info)
put_group_info(cred->cr_group_info);
kfree(cred->cr_principal);
+ gss_mech_put(cred->cr_gss_mech);
+ init_svc_cred(cred);
}
struct svc_rqst; /* forward decl */