Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/fs/bcachefs/acl.h
26282 views
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 inode *, int, bool);
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
62