]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/acl.h
Disable pristine-tar option in gbp.conf, since there is no pristine-tar branch.
[bcachefs-tools-debian] / libbcachefs / acl.h
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          a_version;
25 } bch_acl_header;
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 */