X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_idmap.h;h=35f55eb75570719bebabdd1832813e7721585034;hb=210803a2475862464045b609eee43237d74e853b;hp=7f19dfd08dcbe308505a490870084ed25b8a14c5;hpb=08aa217ce49aba1ded52e0f7adb8a607035123fd;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_idmap.h b/lustre/include/lustre_idmap.h index 7f19dfd..35f55eb 100644 --- a/lustre/include/lustre_idmap.h +++ b/lustre/include/lustre_idmap.h @@ -15,11 +15,7 @@ * * You should have received a copy of the GNU General Public License * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ @@ -27,11 +23,10 @@ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, Intel Corporation. + * Copyright (c) 2012, 2017, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. * * lustre/lustre/include/lustre_idmap.h * @@ -47,55 +42,28 @@ * @{ */ -#include +#include -#define CFS_NGROUPS_PER_BLOCK ((int)(CFS_PAGE_SIZE / sizeof(gid_t))) +#ifdef HAVE_GROUP_INFO_GID -#define CFS_GROUP_AT(gi, i) \ - ((gi)->blocks[(i) / CFS_NGROUPS_PER_BLOCK][(i) % CFS_NGROUPS_PER_BLOCK]) +#define CFS_GROUP_AT(gi, i) ((gi)->gid[(i)]) -enum { - CFS_IC_NOTHING = 0, /* convert nothing */ - CFS_IC_ALL = 1, /* convert all items */ - CFS_IC_MAPPED = 2, /* convert mapped uid/gid */ - CFS_IC_UNMAPPED = 3 /* convert unmapped uid/gid */ -}; +#else /* !HAVE_GROUP_INFO_GID */ -#define CFS_IDMAP_NOTFOUND (-1) +#define CFS_NGROUPS_PER_BLOCK ((int)(PAGE_SIZE / sizeof(gid_t))) -#define CFS_IDMAP_HASHSIZE 32 +#define CFS_GROUP_AT(gi, i) \ + ((gi)->blocks[(i) / CFS_NGROUPS_PER_BLOCK][(i) % CFS_NGROUPS_PER_BLOCK]) -enum lustre_idmap_idx { - RMT_UIDMAP_IDX, - LCL_UIDMAP_IDX, - RMT_GIDMAP_IDX, - LCL_GIDMAP_IDX, - CFS_IDMAP_N_HASHES -}; +#endif /* HAVE_GROUP_INFO_GID */ -struct lustre_idmap_table { - spinlock_t lit_lock; - cfs_list_t lit_idmaps[CFS_IDMAP_N_HASHES][CFS_IDMAP_HASHSIZE]; -}; +#include -extern void lustre_groups_from_list(cfs_group_info_t *ginfo, gid_t *glist); -extern void lustre_groups_sort(cfs_group_info_t *group_info); -extern int lustre_in_group_p(struct lu_ucred *mu, gid_t grp); +struct lu_ucred; -extern int lustre_idmap_add(struct lustre_idmap_table *t, - uid_t ruid, uid_t luid, - gid_t rgid, gid_t lgid); -extern int lustre_idmap_del(struct lustre_idmap_table *t, - uid_t ruid, uid_t luid, - gid_t rgid, gid_t lgid); -extern int lustre_idmap_lookup_uid(struct lu_ucred *mu, - struct lustre_idmap_table *t, - int reverse, uid_t uid); -extern int lustre_idmap_lookup_gid(struct lu_ucred *mu, - struct lustre_idmap_table *t, - int reverse, gid_t gid); -extern struct lustre_idmap_table *lustre_idmap_init(void); -extern void lustre_idmap_fini(struct lustre_idmap_table *t); +extern void lustre_groups_from_list(struct group_info *ginfo, gid_t *glist); +extern void lustre_groups_sort(struct group_info *group_info); +extern int lustre_in_group_p(struct lu_ucred *mu, gid_t grp); /** @} idmap */