Instead of keeping the principal name associated with a request in a structure that's private to auth_gss and using an accessor function, move it to svc_cred.
Showing the changes to include (2 of 8 files). Show all
Unified · Split
| @@ -15,13 +15,22 @@ · 14 unmodified lines | ||
| 15 | 15 | #include <linux/sunrpc/msg_prot.h> |
| 16 | 16 | #include <linux/sunrpc/cache.h> |
| 17 | 17 | #include <linux/hash.h> |
| 18 | +#include <linux/cred.h> | |
| 18 | 19 | |
| 19 | 20 | struct svc_cred { |
| 20 | 21 | uid_t cr_uid; |
| 21 | 22 | gid_t cr_gid; |
| 22 | 23 | struct group_info *cr_group_info; |
| 24 | + char *cr_principal; /* for gss */ | |
| 23 | 25 | }; |
| 24 | 26 | |
| 27 | +static inline void free_svc_cred(struct svc_cred *cred) | |
| 28 | +{ | |
| 29 | + if (cred->cr_group_info) | |
| 30 | + put_group_info(cred->cr_group_info); | |
| 31 | + kfree(cred->cr_principal); | |
| 32 | +} | |
| 33 | + | |
| 25 | 34 | struct svc_rqst; /* forward decl */ |
| 26 | 35 | struct in6_addr; |
| 27 | 36 | |
| @@ -22,7 +22,6 @@ int gss_svc_init_net(struct net *net); · 21 unmodified lines | ||
| 22 | 22 | void gss_svc_shutdown_net(struct net *net); |
| 23 | 23 | int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name); |
| 24 | 24 | u32 svcauth_gss_flavor(struct auth_domain *dom); |
| 25 | −char *svc_gss_principal(struct svc_rqst *); | |
| 26 | 25 | |
| 27 | 26 | #endif /* __KERNEL__ */ |
| 28 | 27 | #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */ |