1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _BCACHEFS_ACL_H |
3 | #define _BCACHEFS_ACL_H |
4 | |
5 | struct bch_inode_unpacked; |
6 | struct bch_hash_info; |
7 | struct bch_inode_info; |
8 | struct posix_acl; |
9 | |
10 | #define BCH_ACL_VERSION 0x0001 |
11 | |
12 | typedef struct { |
13 | __le16 e_tag; |
14 | __le16 e_perm; |
15 | __le32 e_id; |
16 | } bch_acl_entry; |
17 | |
18 | typedef struct { |
19 | __le16 e_tag; |
20 | __le16 e_perm; |
21 | } bch_acl_entry_short; |
22 | |
23 | typedef struct { |
24 | __le32 ; |
25 | } ; |
26 | |
27 | void bch2_acl_to_text(struct printbuf *, const void *, size_t); |
28 | |
29 | #ifdef CONFIG_BCACHEFS_POSIX_ACL |
30 | |
31 | struct posix_acl *bch2_get_acl(struct mnt_idmap *, struct dentry *, int); |
32 | |
33 | int bch2_set_acl_trans(struct btree_trans *, subvol_inum, |
34 | struct bch_inode_unpacked *, |
35 | struct posix_acl *, int); |
36 | int bch2_set_acl(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); |
37 | int bch2_acl_chmod(struct btree_trans *, subvol_inum, |
38 | struct bch_inode_unpacked *, |
39 | umode_t, struct posix_acl **); |
40 | |
41 | #else |
42 | |
43 | static inline int bch2_set_acl_trans(struct btree_trans *trans, subvol_inum inum, |
44 | struct bch_inode_unpacked *inode_u, |
45 | struct posix_acl *acl, int type) |
46 | { |
47 | return 0; |
48 | } |
49 | |
50 | static inline int bch2_acl_chmod(struct btree_trans *trans, subvol_inum inum, |
51 | struct bch_inode_unpacked *inode, |
52 | umode_t mode, |
53 | struct posix_acl **new_acl) |
54 | { |
55 | return 0; |
56 | } |
57 | |
58 | #endif /* CONFIG_BCACHEFS_POSIX_ACL */ |
59 | |
60 | #endif /* _BCACHEFS_ACL_H */ |
61 | |