blob: d1039e1ff70df7d7426363fdfd9883144e288435 [file] [log] [blame]
Peng Taod7e09d02013-05-02 16:46:55 +08001/*
2 * GPL HEADER START
3 *
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 only,
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License version 2 for more details (a copy is included
14 * in the LICENSE file that accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License
17 * version 2 along with this program; If not, see
Oleg Drokin6a5b99a2016-06-14 23:33:40 -040018 * http://www.gnu.org/licenses/gpl-2.0.html
Peng Taod7e09d02013-05-02 16:46:55 +080019 *
Peng Taod7e09d02013-05-02 16:46:55 +080020 * GPL HEADER END
21 */
22/*
23 * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Use is subject to license terms.
25 */
26/*
27 * Copyright (c) 2011, 2012, Intel Corporation.
28 */
29/*
30 * This file is part of Lustre, http://www.lustre.org/
31 * Lustre is a trademark of Sun Microsystems, Inc.
32 *
33 * lustre/lustre/include/lustre_idmap.h
34 *
35 * MDS data structures.
36 * See also lustre_idl.h for wire formats of requests.
37 */
38
39#ifndef _LUSTRE_EACL_H
40#define _LUSTRE_EACL_H
41
42/** \defgroup eacl eacl
43 *
44 * @{
45 */
46
47#ifdef CONFIG_FS_POSIX_ACL
48
49#include <linux/posix_acl_xattr.h>
50
51typedef struct {
52 __u16 e_tag;
53 __u16 e_perm;
54 __u32 e_id;
55 __u32 e_stat;
56} ext_acl_xattr_entry;
57
58typedef struct {
59 __u32 a_count;
60 ext_acl_xattr_entry a_entries[0];
61} ext_acl_xattr_header;
62
63#define CFS_ACL_XATTR_SIZE(count, prefix) \
64 (sizeof(prefix ## _header) + (count) * sizeof(prefix ## _entry))
65
66#define CFS_ACL_XATTR_COUNT(size, prefix) \
67 (((size) - sizeof(prefix ## _header)) / sizeof(prefix ## _entry))
68
Peng Taod7e09d02013-05-02 16:46:55 +080069#endif /* CONFIG_FS_POSIX_ACL */
70
71/** @} eacl */
72
73#endif