xref: /OK3568_Linux_fs/kernel/fs/f2fs/acl.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * fs/f2fs/acl.h
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6*4882a593Smuzhiyun  *             http://www.samsung.com/
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  * Portions of this code from linux/fs/ext2/acl.h
9*4882a593Smuzhiyun  *
10*4882a593Smuzhiyun  * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de>
11*4882a593Smuzhiyun  */
12*4882a593Smuzhiyun #ifndef __F2FS_ACL_H__
13*4882a593Smuzhiyun #define __F2FS_ACL_H__
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #include <linux/posix_acl_xattr.h>
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #define F2FS_ACL_VERSION	0x0001
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun struct f2fs_acl_entry {
20*4882a593Smuzhiyun 	__le16 e_tag;
21*4882a593Smuzhiyun 	__le16 e_perm;
22*4882a593Smuzhiyun 	__le32 e_id;
23*4882a593Smuzhiyun };
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun struct f2fs_acl_entry_short {
26*4882a593Smuzhiyun 	__le16 e_tag;
27*4882a593Smuzhiyun 	__le16 e_perm;
28*4882a593Smuzhiyun };
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun struct f2fs_acl_header {
31*4882a593Smuzhiyun 	__le32 a_version;
32*4882a593Smuzhiyun };
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #ifdef CONFIG_F2FS_FS_POSIX_ACL
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun extern struct posix_acl *f2fs_get_acl(struct inode *, int);
37*4882a593Smuzhiyun extern int f2fs_set_acl(struct inode *, struct posix_acl *, int);
38*4882a593Smuzhiyun extern int f2fs_init_acl(struct inode *, struct inode *, struct page *,
39*4882a593Smuzhiyun 							struct page *);
40*4882a593Smuzhiyun #else
41*4882a593Smuzhiyun #define f2fs_get_acl	NULL
42*4882a593Smuzhiyun #define f2fs_set_acl	NULL
43*4882a593Smuzhiyun 
f2fs_init_acl(struct inode * inode,struct inode * dir,struct page * ipage,struct page * dpage)44*4882a593Smuzhiyun static inline int f2fs_init_acl(struct inode *inode, struct inode *dir,
45*4882a593Smuzhiyun 				struct page *ipage, struct page *dpage)
46*4882a593Smuzhiyun {
47*4882a593Smuzhiyun 	return 0;
48*4882a593Smuzhiyun }
49*4882a593Smuzhiyun #endif
50*4882a593Smuzhiyun #endif /* __F2FS_ACL_H__ */
51