xref: /openbmc/linux/fs/jffs2/acl.h (revision aa98d7cf)
1aa98d7cfSKaiGai Kohei /*-------------------------------------------------------------------------*
2aa98d7cfSKaiGai Kohei  *  File: fs/jffs2/acl.h
3aa98d7cfSKaiGai Kohei  *  POSIX ACL support on JFFS2 FileSystem
4aa98d7cfSKaiGai Kohei  *
5aa98d7cfSKaiGai Kohei  *  Implemented by KaiGai Kohei <kaigai@ak.jp.nec.com>
6aa98d7cfSKaiGai Kohei  *  Copyright (C) 2006 NEC Corporation
7aa98d7cfSKaiGai Kohei  *
8aa98d7cfSKaiGai Kohei  *  For licensing information, see the file 'LICENCE' in the jffs2 directory.
9aa98d7cfSKaiGai Kohei  *-------------------------------------------------------------------------*/
10aa98d7cfSKaiGai Kohei typedef struct {
11aa98d7cfSKaiGai Kohei 	jint16_t	e_tag;
12aa98d7cfSKaiGai Kohei 	jint16_t	e_perm;
13aa98d7cfSKaiGai Kohei 	jint32_t	e_id;
14aa98d7cfSKaiGai Kohei } jffs2_acl_entry;
15aa98d7cfSKaiGai Kohei 
16aa98d7cfSKaiGai Kohei typedef struct {
17aa98d7cfSKaiGai Kohei 	jint16_t	e_tag;
18aa98d7cfSKaiGai Kohei 	jint16_t	e_perm;
19aa98d7cfSKaiGai Kohei } jffs2_acl_entry_short;
20aa98d7cfSKaiGai Kohei 
21aa98d7cfSKaiGai Kohei typedef struct {
22aa98d7cfSKaiGai Kohei 	jint32_t	a_version;
23aa98d7cfSKaiGai Kohei } jffs2_acl_header;
24aa98d7cfSKaiGai Kohei 
25aa98d7cfSKaiGai Kohei #ifdef __KERNEL__
26aa98d7cfSKaiGai Kohei #ifdef CONFIG_JFFS2_FS_POSIX_ACL
27aa98d7cfSKaiGai Kohei 
28aa98d7cfSKaiGai Kohei #define JFFS2_ACL_NOT_CACHED ((void *)-1)
29aa98d7cfSKaiGai Kohei 
30aa98d7cfSKaiGai Kohei extern int jffs2_permission(struct inode *, int, struct nameidata *);
31aa98d7cfSKaiGai Kohei extern int jffs2_acl_chmod(struct inode *);
32aa98d7cfSKaiGai Kohei extern int jffs2_init_acl(struct inode *, struct inode *);
33aa98d7cfSKaiGai Kohei extern void jffs2_clear_acl(struct inode *);
34aa98d7cfSKaiGai Kohei 
35aa98d7cfSKaiGai Kohei extern struct xattr_handler jffs2_acl_access_xattr_handler;
36aa98d7cfSKaiGai Kohei extern struct xattr_handler jffs2_acl_default_xattr_handler;
37aa98d7cfSKaiGai Kohei 
38aa98d7cfSKaiGai Kohei #else
39aa98d7cfSKaiGai Kohei 
40aa98d7cfSKaiGai Kohei #define jffs2_permission NULL
41aa98d7cfSKaiGai Kohei #define jffs2_acl_chmod(inode)		(0)
42aa98d7cfSKaiGai Kohei #define jffs2_init_acl(inode,dir)	(0)
43aa98d7cfSKaiGai Kohei #define jffs2_clear_acl(inode)
44aa98d7cfSKaiGai Kohei 
45aa98d7cfSKaiGai Kohei #endif	/* CONFIG_JFFS2_FS_POSIX_ACL */
46aa98d7cfSKaiGai Kohei #endif	/* __KERNEL__ */
47