xref: /linux/fs/9p/acl.h (revision f9bff0e31881d03badf191d3b0005839391f5f2b)
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
10 int v9fs_get_acl(struct inode *inode, struct p9_fid *fid);
11 struct posix_acl *v9fs_iop_get_inode_acl(struct inode *inode, int type,
12 				   bool rcu);
13 struct posix_acl *v9fs_iop_get_acl(struct mnt_idmap *idmap,
14 					  struct dentry *dentry, int type);
15 int v9fs_iop_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
16 		     struct posix_acl *acl, int type);
17 int v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid);
18 int v9fs_set_create_acl(struct inode *inode, struct p9_fid *fid,
19 			struct posix_acl *dacl, struct posix_acl *acl);
20 int v9fs_acl_mode(struct inode *dir, umode_t *modep,
21 		  struct posix_acl **dpacl, struct posix_acl **pacl);
22 void 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
27 static inline int v9fs_get_acl(struct inode *inode, struct p9_fid *fid)
28 {
29 	return 0;
30 }
31 static inline int v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid)
32 {
33 	return 0;
34 }
35 static 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 }
42 static inline void v9fs_put_acl(struct posix_acl *dacl,
43 				struct posix_acl *acl)
44 {
45 }
46 static 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