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