1/* SPDX-License-Identifier: LGPL-2.1 */
2/*
3 * Copyright IBM Corporation, 2010
4 * Author Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
5 */
6#ifndef FS_9P_ACL_H
7#define FS_9P_ACL_H
8
9#ifdef CONFIG_9P_FS_POSIX_ACL
10int v9fs_get_acl(struct inode *inode, struct p9_fid *fid);
11struct posix_acl *v9fs_iop_get_inode_acl(struct inode *inode, int type,
12				   bool rcu);
13struct posix_acl *v9fs_iop_get_acl(struct mnt_idmap *idmap,
14					  struct dentry *dentry, int type);
15int v9fs_iop_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
16		     struct posix_acl *acl, int type);
17int v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid);
18int v9fs_set_create_acl(struct inode *inode, struct p9_fid *fid,
19			struct posix_acl *dacl, struct posix_acl *acl);
20int v9fs_acl_mode(struct inode *dir, umode_t *modep,
21		  struct posix_acl **dpacl, struct posix_acl **pacl);
22void v9fs_put_acl(struct posix_acl *dacl, struct posix_acl *acl);
23#else
24#define v9fs_iop_get_inode_acl	NULL
25#define v9fs_iop_get_acl NULL
26#define v9fs_iop_set_acl NULL
27static inline int v9fs_get_acl(struct inode *inode, struct p9_fid *fid)
28{
29	return 0;
30}
31static inline int v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid)
32{
33	return 0;
34}
35static inline int v9fs_set_create_acl(struct inode *inode,
36				      struct p9_fid *fid,
37				      struct posix_acl *dacl,
38				      struct posix_acl *acl)
39{
40	return 0;
41}
42static inline void v9fs_put_acl(struct posix_acl *dacl,
43				struct posix_acl *acl)
44{
45}
46static inline int v9fs_acl_mode(struct inode *dir, umode_t *modep,
47				struct posix_acl **dpacl,
48				struct posix_acl **pacl)
49{
50	return 0;
51}
52
53#endif
54#endif /* FS_9P_XATTR_H */
55