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