blob: 3f41e09200b86db3e26f022ef358c6f0cfeb1451 [file] [log] [blame]
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +09001/*-------------------------------------------------------------------------*
2 * File: fs/jffs2/acl.h
3 * POSIX ACL support on JFFS2 FileSystem
4 *
5 * Implemented by KaiGai Kohei <kaigai@ak.jp.nec.com>
6 * Copyright (C) 2006 NEC Corporation
7 *
8 * For licensing information, see the file 'LICENCE' in the jffs2 directory.
9 *-------------------------------------------------------------------------*/
KaiGai Koheide1f72f2006-05-13 15:13:27 +090010struct jffs2_acl_entry {
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +090011 jint16_t e_tag;
12 jint16_t e_perm;
13 jint32_t e_id;
KaiGai Koheide1f72f2006-05-13 15:13:27 +090014};
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +090015
KaiGai Koheide1f72f2006-05-13 15:13:27 +090016struct jffs2_acl_entry_short {
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +090017 jint16_t e_tag;
18 jint16_t e_perm;
KaiGai Koheide1f72f2006-05-13 15:13:27 +090019};
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +090020
KaiGai Koheide1f72f2006-05-13 15:13:27 +090021struct jffs2_acl_header {
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +090022 jint32_t a_version;
KaiGai Koheide1f72f2006-05-13 15:13:27 +090023};
KaiGai Koheiaa98d7c2006-05-13 15:09:47 +090024
25#ifdef __KERNEL__
26#ifdef CONFIG_JFFS2_FS_POSIX_ACL
27
28#define JFFS2_ACL_NOT_CACHED ((void *)-1)
29
30extern int jffs2_permission(struct inode *, int, struct nameidata *);
31extern int jffs2_acl_chmod(struct inode *);
32extern int jffs2_init_acl(struct inode *, struct inode *);
33extern void jffs2_clear_acl(struct inode *);
34
35extern struct xattr_handler jffs2_acl_access_xattr_handler;
36extern struct xattr_handler jffs2_acl_default_xattr_handler;
37
38#else
39
40#define jffs2_permission NULL
41#define jffs2_acl_chmod(inode) (0)
42#define jffs2_init_acl(inode,dir) (0)
43#define jffs2_clear_acl(inode)
44
45#endif /* CONFIG_JFFS2_FS_POSIX_ACL */
46#endif /* __KERNEL__ */