61 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _BCACHEFS_ACL_H3#define _BCACHEFS_ACL_H4 5struct bch_inode_unpacked;6struct bch_hash_info;7struct bch_inode_info;8struct posix_acl;9 10#define BCH_ACL_VERSION 0x000111 12typedef struct {13 __le16 e_tag;14 __le16 e_perm;15 __le32 e_id;16} bch_acl_entry;17 18typedef struct {19 __le16 e_tag;20 __le16 e_perm;21} bch_acl_entry_short;22 23typedef struct {24 __le32 a_version;25} bch_acl_header;26 27void bch2_acl_to_text(struct printbuf *, const void *, size_t);28 29#ifdef CONFIG_BCACHEFS_POSIX_ACL30 31struct posix_acl *bch2_get_acl(struct inode *, int, bool);32 33int bch2_set_acl_trans(struct btree_trans *, subvol_inum,34 struct bch_inode_unpacked *,35 struct posix_acl *, int);36int bch2_set_acl(struct mnt_idmap *, struct dentry *, struct posix_acl *, int);37int bch2_acl_chmod(struct btree_trans *, subvol_inum,38 struct bch_inode_unpacked *,39 umode_t, struct posix_acl **);40 41#else42 43static 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 50static 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