Loading fs/nfs/flexfilelayout/flexfilelayout.c +1 −13 Original line number Diff line number Diff line Loading @@ -28,9 +28,6 @@ #define FF_LAYOUT_POLL_RETRY_MAX (15*HZ) #define FF_LAYOUTRETURN_MAXERR 20 static struct group_info *ff_zero_group; static void ff_layout_read_record_layoutstats_done(struct rpc_task *task, struct nfs_pgio_header *hdr); static int ff_layout_mirror_prepare_stats(struct pnfs_layout_hdr *lo, Loading Loading @@ -414,7 +411,7 @@ ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh, for (i = 0; i < fls->mirror_array_cnt; i++) { struct nfs4_ff_layout_mirror *mirror; struct auth_cred acred = { .group_info = ff_zero_group }; struct auth_cred acred = {}; struct rpc_cred __rcu *cred; struct cred *kcred; u32 ds_count, fh_count, id; Loading Loading @@ -2400,11 +2397,6 @@ static int __init nfs4flexfilelayout_init(void) { printk(KERN_INFO "%s: NFSv4 Flexfile Layout Driver Registering...\n", __func__); if (!ff_zero_group) { ff_zero_group = groups_alloc(0); if (!ff_zero_group) return -ENOMEM; } return pnfs_register_layoutdriver(&flexfilelayout_type); } Loading @@ -2413,10 +2405,6 @@ static void __exit nfs4flexfilelayout_exit(void) printk(KERN_INFO "%s: NFSv4 Flexfile Layout Driver Unregistering...\n", __func__); pnfs_unregister_layoutdriver(&flexfilelayout_type); if (ff_zero_group) { put_group_info(ff_zero_group); ff_zero_group = NULL; } } MODULE_ALIAS("nfs-layouttype4-4"); Loading include/linux/sunrpc/auth.h +0 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ struct auth_cred { const struct cred *cred; kuid_t uid; kgid_t gid; struct group_info *group_info; const char *principal; unsigned long ac_flags; unsigned char machine_cred : 1; Loading net/sunrpc/auth.c +0 −1 Original line number Diff line number Diff line Loading @@ -658,7 +658,6 @@ rpcauth_lookupcred(struct rpc_auth *auth, int flags) memset(&acred, 0, sizeof(acred)); acred.uid = cred->fsuid; acred.gid = cred->fsgid; acred.group_info = cred->group_info; acred.cred = cred; ret = auth->au_ops->lookup_cred(auth, &acred, flags); return ret; Loading net/sunrpc/auth_generic.c +7 −10 Original line number Diff line number Diff line Loading @@ -113,11 +113,8 @@ generic_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, g gcred->acred.uid = acred->uid; gcred->acred.gid = acred->gid; gcred->acred.group_info = acred->group_info; gcred->acred.cred = gcred->gc_base.cr_cred; gcred->acred.ac_flags = 0; if (gcred->acred.group_info != NULL) get_group_info(gcred->acred.group_info); gcred->acred.machine_cred = acred->machine_cred; gcred->acred.principal = acred->principal; Loading @@ -135,8 +132,6 @@ generic_free_cred(struct rpc_cred *cred) struct generic_cred *gcred = container_of(cred, struct generic_cred, gc_base); dprintk("RPC: generic_free_cred %p\n", gcred); if (gcred->acred.group_info != NULL) put_group_info(gcred->acred.group_info); put_cred(cred->cr_cred); kfree(gcred); } Loading Loading @@ -173,6 +168,7 @@ generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags) { struct generic_cred *gcred = container_of(cred, struct generic_cred, gc_base); int i; struct group_info *a, *g; if (acred->machine_cred) return machine_cred_match(acred, gcred, flags); Loading @@ -182,16 +178,17 @@ generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags) gcred->acred.machine_cred != 0) goto out_nomatch; a = acred->cred->group_info; g = gcred->acred.cred->group_info; /* Optimisation in the case where pointers are identical... */ if (gcred->acred.group_info == acred->group_info) if (a == g) goto out_match; /* Slow path... */ if (gcred->acred.group_info->ngroups != acred->group_info->ngroups) if (g->ngroups != a->ngroups) goto out_nomatch; for (i = 0; i < gcred->acred.group_info->ngroups; i++) { if (!gid_eq(gcred->acred.group_info->gid[i], acred->group_info->gid[i])) for (i = 0; i < g->ngroups; i++) { if (!gid_eq(g->gid[i], a->gid[i])) goto out_nomatch; } out_match: Loading net/sunrpc/auth_unix.c +6 −6 Original line number Diff line number Diff line Loading @@ -79,14 +79,14 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, gfp_t rpcauth_init_cred(&cred->uc_base, acred, auth, &unix_credops); cred->uc_base.cr_flags = 1UL << RPCAUTH_CRED_UPTODATE; if (acred->group_info != NULL) groups = acred->group_info->ngroups; if (acred->cred && acred->cred->group_info != NULL) groups = acred->cred->group_info->ngroups; if (groups > UNX_NGROUPS) groups = UNX_NGROUPS; cred->uc_gid = acred->gid; for (i = 0; i < groups; i++) cred->uc_gids[i] = acred->group_info->gid[i]; cred->uc_gids[i] = acred->cred->group_info->gid[i]; if (i < UNX_NGROUPS) cred->uc_gids[i] = INVALID_GID; Loading Loading @@ -130,12 +130,12 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags) if (!uid_eq(cred->uc_uid, acred->uid) || !gid_eq(cred->uc_gid, acred->gid)) return 0; if (acred->group_info != NULL) groups = acred->group_info->ngroups; if (acred->cred && acred->cred->group_info != NULL) groups = acred->cred->group_info->ngroups; if (groups > UNX_NGROUPS) groups = UNX_NGROUPS; 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->cred->group_info->gid[i])) return 0; if (groups < UNX_NGROUPS && gid_valid(cred->uc_gids[groups])) return 0; Loading Loading
fs/nfs/flexfilelayout/flexfilelayout.c +1 −13 Original line number Diff line number Diff line Loading @@ -28,9 +28,6 @@ #define FF_LAYOUT_POLL_RETRY_MAX (15*HZ) #define FF_LAYOUTRETURN_MAXERR 20 static struct group_info *ff_zero_group; static void ff_layout_read_record_layoutstats_done(struct rpc_task *task, struct nfs_pgio_header *hdr); static int ff_layout_mirror_prepare_stats(struct pnfs_layout_hdr *lo, Loading Loading @@ -414,7 +411,7 @@ ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh, for (i = 0; i < fls->mirror_array_cnt; i++) { struct nfs4_ff_layout_mirror *mirror; struct auth_cred acred = { .group_info = ff_zero_group }; struct auth_cred acred = {}; struct rpc_cred __rcu *cred; struct cred *kcred; u32 ds_count, fh_count, id; Loading Loading @@ -2400,11 +2397,6 @@ static int __init nfs4flexfilelayout_init(void) { printk(KERN_INFO "%s: NFSv4 Flexfile Layout Driver Registering...\n", __func__); if (!ff_zero_group) { ff_zero_group = groups_alloc(0); if (!ff_zero_group) return -ENOMEM; } return pnfs_register_layoutdriver(&flexfilelayout_type); } Loading @@ -2413,10 +2405,6 @@ static void __exit nfs4flexfilelayout_exit(void) printk(KERN_INFO "%s: NFSv4 Flexfile Layout Driver Unregistering...\n", __func__); pnfs_unregister_layoutdriver(&flexfilelayout_type); if (ff_zero_group) { put_group_info(ff_zero_group); ff_zero_group = NULL; } } MODULE_ALIAS("nfs-layouttype4-4"); Loading
include/linux/sunrpc/auth.h +0 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ struct auth_cred { const struct cred *cred; kuid_t uid; kgid_t gid; struct group_info *group_info; const char *principal; unsigned long ac_flags; unsigned char machine_cred : 1; Loading
net/sunrpc/auth.c +0 −1 Original line number Diff line number Diff line Loading @@ -658,7 +658,6 @@ rpcauth_lookupcred(struct rpc_auth *auth, int flags) memset(&acred, 0, sizeof(acred)); acred.uid = cred->fsuid; acred.gid = cred->fsgid; acred.group_info = cred->group_info; acred.cred = cred; ret = auth->au_ops->lookup_cred(auth, &acred, flags); return ret; Loading
net/sunrpc/auth_generic.c +7 −10 Original line number Diff line number Diff line Loading @@ -113,11 +113,8 @@ generic_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, g gcred->acred.uid = acred->uid; gcred->acred.gid = acred->gid; gcred->acred.group_info = acred->group_info; gcred->acred.cred = gcred->gc_base.cr_cred; gcred->acred.ac_flags = 0; if (gcred->acred.group_info != NULL) get_group_info(gcred->acred.group_info); gcred->acred.machine_cred = acred->machine_cred; gcred->acred.principal = acred->principal; Loading @@ -135,8 +132,6 @@ generic_free_cred(struct rpc_cred *cred) struct generic_cred *gcred = container_of(cred, struct generic_cred, gc_base); dprintk("RPC: generic_free_cred %p\n", gcred); if (gcred->acred.group_info != NULL) put_group_info(gcred->acred.group_info); put_cred(cred->cr_cred); kfree(gcred); } Loading Loading @@ -173,6 +168,7 @@ generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags) { struct generic_cred *gcred = container_of(cred, struct generic_cred, gc_base); int i; struct group_info *a, *g; if (acred->machine_cred) return machine_cred_match(acred, gcred, flags); Loading @@ -182,16 +178,17 @@ generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags) gcred->acred.machine_cred != 0) goto out_nomatch; a = acred->cred->group_info; g = gcred->acred.cred->group_info; /* Optimisation in the case where pointers are identical... */ if (gcred->acred.group_info == acred->group_info) if (a == g) goto out_match; /* Slow path... */ if (gcred->acred.group_info->ngroups != acred->group_info->ngroups) if (g->ngroups != a->ngroups) goto out_nomatch; for (i = 0; i < gcred->acred.group_info->ngroups; i++) { if (!gid_eq(gcred->acred.group_info->gid[i], acred->group_info->gid[i])) for (i = 0; i < g->ngroups; i++) { if (!gid_eq(g->gid[i], a->gid[i])) goto out_nomatch; } out_match: Loading
net/sunrpc/auth_unix.c +6 −6 Original line number Diff line number Diff line Loading @@ -79,14 +79,14 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, gfp_t rpcauth_init_cred(&cred->uc_base, acred, auth, &unix_credops); cred->uc_base.cr_flags = 1UL << RPCAUTH_CRED_UPTODATE; if (acred->group_info != NULL) groups = acred->group_info->ngroups; if (acred->cred && acred->cred->group_info != NULL) groups = acred->cred->group_info->ngroups; if (groups > UNX_NGROUPS) groups = UNX_NGROUPS; cred->uc_gid = acred->gid; for (i = 0; i < groups; i++) cred->uc_gids[i] = acred->group_info->gid[i]; cred->uc_gids[i] = acred->cred->group_info->gid[i]; if (i < UNX_NGROUPS) cred->uc_gids[i] = INVALID_GID; Loading Loading @@ -130,12 +130,12 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags) if (!uid_eq(cred->uc_uid, acred->uid) || !gid_eq(cred->uc_gid, acred->gid)) return 0; if (acred->group_info != NULL) groups = acred->group_info->ngroups; if (acred->cred && acred->cred->group_info != NULL) groups = acred->cred->group_info->ngroups; if (groups > UNX_NGROUPS) groups = UNX_NGROUPS; 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->cred->group_info->gid[i])) return 0; if (groups < UNX_NGROUPS && gid_valid(cred->uc_gids[groups])) return 0; Loading