X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_ucache.h;h=1eca99dbffcb44098643e2c498de7128f2d02f58;hb=3056f3ec0a513408b76494ea4bb26fd888d952b5;hp=0cba634ec1cebb2e51fc71891985c894bdd428c7;hpb=d2d56f38da01001c92a09afc6b52b5acbd9bc13c;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_ucache.h b/lustre/include/lustre_ucache.h index 0cba634..1eca99d 100644 --- a/lustre/include/lustre_ucache.h +++ b/lustre/include/lustre_ucache.h @@ -1,5 +1,37 @@ /* -*- 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. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). + * + * 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. + * + * GPL HEADER END + */ +/* + * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Use is subject to license terms. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. */ #ifndef _UPCALL_CACHE_H @@ -29,47 +61,30 @@ struct upcall_cache_entry; -struct mdt_setxid_perm { +struct md_perm { lnet_nid_t mp_nid; __u32 mp_perm; }; -struct mdt_identity { +struct md_identity { struct upcall_cache_entry *mi_uc_entry; uid_t mi_uid; gid_t mi_gid; struct group_info *mi_ginfo; int mi_nperms; - struct mdt_setxid_perm *mi_perms; -}; - -struct rmtacl_upcall_data { - uid_t aud_uid; - gid_t aud_gid; - char *aud_cmd; -}; - -struct mdt_rmtacl { - uid_t ra_uid; - gid_t ra_gid; - __u32 ra_handle; - char *ra_cmd; - char *ra_buf; + struct md_perm *mi_perms; }; struct upcall_cache_entry { struct list_head ue_hash; __u64 ue_key; -// __u64 ue_primary; -// struct group_info *ue_group_info; atomic_t ue_refcount; int ue_flags; cfs_waitq_t ue_waitq; cfs_time_t ue_acquire_expire; cfs_time_t ue_expire; union { - struct mdt_identity identity; - struct mdt_rmtacl acl; + struct md_identity identity; } u; }; @@ -98,6 +113,7 @@ struct upcall_cache_ops { struct upcall_cache { struct list_head uc_hashtable[UC_CACHE_HASH_SIZE]; spinlock_t uc_lock; + rwlock_t uc_upcall_rwlock; char uc_name[40]; /* for upcall */ char uc_upcall[UC_CACHE_UPCALL_MAXPATH];