X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_idmap.h;h=a8c5a218b6c7d4c09b49b9be5d8a9c1071bdfea1;hb=298cdb5c0b6136b91e76c9c515bfbc2df99bae0b;hp=fa14de13e417d524ca85c52a58c1127e1f014109;hpb=45c495867c903379ec9e9acf01d3d49caffa36e4;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_idmap.h b/lustre/include/lustre_idmap.h index fa14de1..a8c5a21 100644 --- a/lustre/include/lustre_idmap.h +++ b/lustre/include/lustre_idmap.h @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -17,17 +15,15 @@ * * 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 */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2012, 2017, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -47,55 +43,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 { - cfs_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 md_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 md_ucred *mu, - struct lustre_idmap_table *t, - int reverse, uid_t uid); -extern int lustre_idmap_lookup_gid(struct md_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 */