2017-03-17 09:18:50 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
# ifndef _BCACHEFS_ACL_H
# define _BCACHEFS_ACL_H
struct bch_inode_unpacked ;
struct bch_hash_info ;
struct bch_inode_info ;
struct posix_acl ;
# define BCH_ACL_VERSION 0x0001
typedef struct {
__le16 e_tag ;
__le16 e_perm ;
__le32 e_id ;
} bch_acl_entry ;
typedef struct {
__le16 e_tag ;
__le16 e_perm ;
} bch_acl_entry_short ;
typedef struct {
__le32 a_version ;
} bch_acl_header ;
2023-09-09 01:14:08 +03:00
void bch2_acl_to_text ( struct printbuf * , const void * , size_t ) ;
# ifdef CONFIG_BCACHEFS_POSIX_ACL
2017-03-17 09:18:50 +03:00
struct posix_acl * bch2_get_acl ( struct mnt_idmap * , struct dentry * , int ) ;
2021-03-16 07:28:17 +03:00
int bch2_set_acl_trans ( struct btree_trans * , subvol_inum ,
2017-03-17 09:18:50 +03:00
struct bch_inode_unpacked * ,
struct posix_acl * , int ) ;
int bch2_set_acl ( struct mnt_idmap * , struct dentry * , struct posix_acl * , int ) ;
2021-03-16 07:28:17 +03:00
int bch2_acl_chmod ( struct btree_trans * , subvol_inum ,
struct bch_inode_unpacked * ,
2017-03-17 09:18:50 +03:00
umode_t , struct posix_acl * * ) ;
# else
2021-03-16 07:28:17 +03:00
static inline int bch2_set_acl_trans ( struct btree_trans * trans , subvol_inum inum ,
2017-03-17 09:18:50 +03:00
struct bch_inode_unpacked * inode_u ,
struct posix_acl * acl , int type )
{
return 0 ;
}
2021-03-16 07:28:17 +03:00
static inline int bch2_acl_chmod ( struct btree_trans * trans , subvol_inum inum ,
2021-03-03 02:35:30 +03:00
struct bch_inode_unpacked * inode ,
2017-03-17 09:18:50 +03:00
umode_t mode ,
struct posix_acl * * new_acl )
{
return 0 ;
}
# endif /* CONFIG_BCACHEFS_POSIX_ACL */
# endif /* _BCACHEFS_ACL_H */