162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * fs/f2fs/acl.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2012 Samsung Electronics Co., Ltd.
662306a36Sopenharmony_ci *             http://www.samsung.com/
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Portions of this code from linux/fs/ext2/acl.h
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de>
1162306a36Sopenharmony_ci */
1262306a36Sopenharmony_ci#ifndef __F2FS_ACL_H__
1362306a36Sopenharmony_ci#define __F2FS_ACL_H__
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include <linux/posix_acl_xattr.h>
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define F2FS_ACL_VERSION	0x0001
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cistruct f2fs_acl_entry {
2062306a36Sopenharmony_ci	__le16 e_tag;
2162306a36Sopenharmony_ci	__le16 e_perm;
2262306a36Sopenharmony_ci	__le32 e_id;
2362306a36Sopenharmony_ci};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cistruct f2fs_acl_entry_short {
2662306a36Sopenharmony_ci	__le16 e_tag;
2762306a36Sopenharmony_ci	__le16 e_perm;
2862306a36Sopenharmony_ci};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_cistruct f2fs_acl_header {
3162306a36Sopenharmony_ci	__le32 a_version;
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#ifdef CONFIG_F2FS_FS_POSIX_ACL
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciextern struct posix_acl *f2fs_get_acl(struct inode *, int, bool);
3762306a36Sopenharmony_ciextern int f2fs_set_acl(struct mnt_idmap *, struct dentry *,
3862306a36Sopenharmony_ci			struct posix_acl *, int);
3962306a36Sopenharmony_ciextern int f2fs_init_acl(struct inode *, struct inode *, struct page *,
4062306a36Sopenharmony_ci							struct page *);
4162306a36Sopenharmony_ci#else
4262306a36Sopenharmony_ci#define f2fs_get_acl	NULL
4362306a36Sopenharmony_ci#define f2fs_set_acl	NULL
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cistatic inline int f2fs_init_acl(struct inode *inode, struct inode *dir,
4662306a36Sopenharmony_ci				struct page *ipage, struct page *dpage)
4762306a36Sopenharmony_ci{
4862306a36Sopenharmony_ci	return 0;
4962306a36Sopenharmony_ci}
5062306a36Sopenharmony_ci#endif
5162306a36Sopenharmony_ci#endif /* __F2FS_ACL_H__ */
52