|
@@ -79,11 +79,8 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
|
|
|
groups = NFS_NGROUPS;
|
|
|
|
|
|
cred->uc_gid = acred->gid;
|
|
|
- for (i = 0; i < groups; i++) {
|
|
|
- gid_t gid;
|
|
|
- gid = from_kgid(&init_user_ns, GROUP_AT(acred->group_info, i));
|
|
|
- cred->uc_gids[i] = gid;
|
|
|
- }
|
|
|
+ for (i = 0; i < groups; i++)
|
|
|
+ cred->uc_gids[i] = GROUP_AT(acred->group_info, i);
|
|
|
if (i < NFS_NGROUPS)
|
|
|
cred->uc_gids[i] = INVALID_GID;
|
|
|
|
|
@@ -130,12 +127,9 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags)
|
|
|
groups = acred->group_info->ngroups;
|
|
|
if (groups > NFS_NGROUPS)
|
|
|
groups = NFS_NGROUPS;
|
|
|
- for (i = 0; i < groups ; i++) {
|
|
|
- gid_t gid;
|
|
|
- gid = from_kgid(&init_user_ns, GROUP_AT(acred->group_info, i));
|
|
|
- if (cred->uc_gids[i] != gid)
|
|
|
+ for (i = 0; i < groups ; i++)
|
|
|
+ if (!gid_eq(cred->uc_gids[i], GROUP_AT(acred->group_info, i)))
|
|
|
return 0;
|
|
|
- }
|
|
|
if (groups < NFS_NGROUPS &&
|
|
|
cred->uc_gids[groups] != INVALID_GID)
|
|
|
return 0;
|