162306a36Sopenharmony_ci/* SPDX-License-Identifier: LGPL-2.1 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright IBM Corporation, 2010
462306a36Sopenharmony_ci * Author Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci#ifndef FS_9P_ACL_H
762306a36Sopenharmony_ci#define FS_9P_ACL_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifdef CONFIG_9P_FS_POSIX_ACL
1062306a36Sopenharmony_ciint v9fs_get_acl(struct inode *inode, struct p9_fid *fid);
1162306a36Sopenharmony_cistruct posix_acl *v9fs_iop_get_inode_acl(struct inode *inode, int type,
1262306a36Sopenharmony_ci				   bool rcu);
1362306a36Sopenharmony_cistruct posix_acl *v9fs_iop_get_acl(struct mnt_idmap *idmap,
1462306a36Sopenharmony_ci					  struct dentry *dentry, int type);
1562306a36Sopenharmony_ciint v9fs_iop_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
1662306a36Sopenharmony_ci		     struct posix_acl *acl, int type);
1762306a36Sopenharmony_ciint v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid);
1862306a36Sopenharmony_ciint v9fs_set_create_acl(struct inode *inode, struct p9_fid *fid,
1962306a36Sopenharmony_ci			struct posix_acl *dacl, struct posix_acl *acl);
2062306a36Sopenharmony_ciint v9fs_acl_mode(struct inode *dir, umode_t *modep,
2162306a36Sopenharmony_ci		  struct posix_acl **dpacl, struct posix_acl **pacl);
2262306a36Sopenharmony_civoid v9fs_put_acl(struct posix_acl *dacl, struct posix_acl *acl);
2362306a36Sopenharmony_ci#else
2462306a36Sopenharmony_ci#define v9fs_iop_get_inode_acl	NULL
2562306a36Sopenharmony_ci#define v9fs_iop_get_acl NULL
2662306a36Sopenharmony_ci#define v9fs_iop_set_acl NULL
2762306a36Sopenharmony_cistatic inline int v9fs_get_acl(struct inode *inode, struct p9_fid *fid)
2862306a36Sopenharmony_ci{
2962306a36Sopenharmony_ci	return 0;
3062306a36Sopenharmony_ci}
3162306a36Sopenharmony_cistatic inline int v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid)
3262306a36Sopenharmony_ci{
3362306a36Sopenharmony_ci	return 0;
3462306a36Sopenharmony_ci}
3562306a36Sopenharmony_cistatic inline int v9fs_set_create_acl(struct inode *inode,
3662306a36Sopenharmony_ci				      struct p9_fid *fid,
3762306a36Sopenharmony_ci				      struct posix_acl *dacl,
3862306a36Sopenharmony_ci				      struct posix_acl *acl)
3962306a36Sopenharmony_ci{
4062306a36Sopenharmony_ci	return 0;
4162306a36Sopenharmony_ci}
4262306a36Sopenharmony_cistatic inline void v9fs_put_acl(struct posix_acl *dacl,
4362306a36Sopenharmony_ci				struct posix_acl *acl)
4462306a36Sopenharmony_ci{
4562306a36Sopenharmony_ci}
4662306a36Sopenharmony_cistatic inline int v9fs_acl_mode(struct inode *dir, umode_t *modep,
4762306a36Sopenharmony_ci				struct posix_acl **dpacl,
4862306a36Sopenharmony_ci				struct posix_acl **pacl)
4962306a36Sopenharmony_ci{
5062306a36Sopenharmony_ci	return 0;
5162306a36Sopenharmony_ci}
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci#endif
5462306a36Sopenharmony_ci#endif /* FS_9P_XATTR_H */
55