Commit 5786461b authored by Kinglong Mee's avatar Kinglong Mee Committed by Anna Schumaker

sunrpc: rename NFS_NGROUPS to UNX_NGROUPS for auth unix

NFS_NGROUPS has been move to sunrpc, rename to UNX_NGROUPS.
Signed-off-by: default avatarKinglong Mee <kinglongmee@gmail.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 863d7d9c
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
*/ */
#define UNX_MAXNODENAME __NEW_UTS_LEN #define UNX_MAXNODENAME __NEW_UTS_LEN
#define UNX_CALLSLACK (21 + XDR_QUADLEN(UNX_MAXNODENAME)) #define UNX_CALLSLACK (21 + XDR_QUADLEN(UNX_MAXNODENAME))
#define UNX_NGROUPS 16
struct rpcsec_gss_info; struct rpcsec_gss_info;
......
...@@ -14,12 +14,10 @@ ...@@ -14,12 +14,10 @@
#include <linux/sunrpc/auth.h> #include <linux/sunrpc/auth.h>
#include <linux/user_namespace.h> #include <linux/user_namespace.h>
#define NFS_NGROUPS 16
struct unx_cred { struct unx_cred {
struct rpc_cred uc_base; struct rpc_cred uc_base;
kgid_t uc_gid; kgid_t uc_gid;
kgid_t uc_gids[NFS_NGROUPS]; kgid_t uc_gids[UNX_NGROUPS];
}; };
#define uc_uid uc_base.cr_uid #define uc_uid uc_base.cr_uid
...@@ -82,13 +80,13 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, gfp_t ...@@ -82,13 +80,13 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, gfp_t
if (acred->group_info != NULL) if (acred->group_info != NULL)
groups = acred->group_info->ngroups; groups = acred->group_info->ngroups;
if (groups > NFS_NGROUPS) if (groups > UNX_NGROUPS)
groups = NFS_NGROUPS; groups = UNX_NGROUPS;
cred->uc_gid = acred->gid; cred->uc_gid = acred->gid;
for (i = 0; i < groups; i++) for (i = 0; i < groups; i++)
cred->uc_gids[i] = acred->group_info->gid[i]; cred->uc_gids[i] = acred->group_info->gid[i];
if (i < NFS_NGROUPS) if (i < UNX_NGROUPS)
cred->uc_gids[i] = INVALID_GID; cred->uc_gids[i] = INVALID_GID;
return &cred->uc_base; return &cred->uc_base;
...@@ -132,12 +130,12 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags) ...@@ -132,12 +130,12 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags)
if (acred->group_info != NULL) if (acred->group_info != NULL)
groups = acred->group_info->ngroups; groups = acred->group_info->ngroups;
if (groups > NFS_NGROUPS) if (groups > UNX_NGROUPS)
groups = NFS_NGROUPS; groups = UNX_NGROUPS;
for (i = 0; i < groups ; i++) for (i = 0; i < groups ; i++)
if (!gid_eq(cred->uc_gids[i], acred->group_info->gid[i])) if (!gid_eq(cred->uc_gids[i], acred->group_info->gid[i]))
return 0; return 0;
if (groups < NFS_NGROUPS && gid_valid(cred->uc_gids[groups])) if (groups < UNX_NGROUPS && gid_valid(cred->uc_gids[groups]))
return 0; return 0;
return 1; return 1;
} }
...@@ -166,7 +164,7 @@ unx_marshal(struct rpc_task *task, __be32 *p) ...@@ -166,7 +164,7 @@ unx_marshal(struct rpc_task *task, __be32 *p)
*p++ = htonl((u32) from_kuid(&init_user_ns, cred->uc_uid)); *p++ = htonl((u32) from_kuid(&init_user_ns, cred->uc_uid));
*p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gid)); *p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gid));
hold = p++; hold = p++;
for (i = 0; i < 16 && gid_valid(cred->uc_gids[i]); i++) for (i = 0; i < UNX_NGROUPS && gid_valid(cred->uc_gids[i]); i++)
*p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gids[i])); *p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gids[i]));
*hold = htonl(p - hold - 1); /* gid array length */ *hold = htonl(p - hold - 1); /* gid array length */
*base = htonl((p - base - 1) << 2); /* cred length */ *base = htonl((p - base - 1) << 2); /* cred length */
......
...@@ -403,7 +403,7 @@ svcauth_unix_info_release(struct svc_xprt *xpt) ...@@ -403,7 +403,7 @@ svcauth_unix_info_release(struct svc_xprt *xpt)
/**************************************************************************** /****************************************************************************
* auth.unix.gid cache * auth.unix.gid cache
* simple cache to map a UID to a list of GIDs * simple cache to map a UID to a list of GIDs
* because AUTH_UNIX aka AUTH_SYS has a max of 16 * because AUTH_UNIX aka AUTH_SYS has a max of UNX_NGROUPS
*/ */
#define GID_HASHBITS 8 #define GID_HASHBITS 8
#define GID_HASHMAX (1<<GID_HASHBITS) #define GID_HASHMAX (1<<GID_HASHBITS)
...@@ -810,7 +810,7 @@ svcauth_unix_accept(struct svc_rqst *rqstp, __be32 *authp) ...@@ -810,7 +810,7 @@ svcauth_unix_accept(struct svc_rqst *rqstp, __be32 *authp)
cred->cr_uid = make_kuid(&init_user_ns, svc_getnl(argv)); /* uid */ cred->cr_uid = make_kuid(&init_user_ns, svc_getnl(argv)); /* uid */
cred->cr_gid = make_kgid(&init_user_ns, svc_getnl(argv)); /* gid */ cred->cr_gid = make_kgid(&init_user_ns, svc_getnl(argv)); /* gid */
slen = svc_getnl(argv); /* gids length */ slen = svc_getnl(argv); /* gids length */
if (slen > 16 || (len -= (slen + 2)*4) < 0) if (slen > UNX_NGROUPS || (len -= (slen + 2)*4) < 0)
goto badcred; goto badcred;
cred->cr_group_info = groups_alloc(slen); cred->cr_group_info = groups_alloc(slen);
if (cred->cr_group_info == NULL) if (cred->cr_group_info == NULL)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment