acl.h
/*
File: fs/ext3/acl.h
(C) 2001 Andreas Gruenbacher,
*/
#include
#define EXT3_ACL_VERSION 0×0001 typedef struct { typedef struct { typedef struct { static inline size_t ext3_acl_size(int count) static inline int ext3_acl_count(size_t size) #ifdef CONFIG_EXT3_FS_POSIX_ACL /* acl.c */ #else /* CONFIG_EXT3_FS_POSIX_ACL */ static inline int static inline int
__le16 e_tag;
__le16 e_perm;
__le32 e_id;
} ext3_acl_entry;
__le16 e_tag;
__le16 e_perm;
} ext3_acl_entry_short;
__le32 a_version;
} ext3_acl_header;
{
if (count <= 4) {
return sizeof(ext3_acl_header) +
count * sizeof(ext3_acl_entry_short);
} else {
return sizeof(ext3_acl_header) +
4 * sizeof(ext3_acl_entry_short) +
(count - 4) * sizeof(ext3_acl_entry);
}
}
{
ssize_t s;
size -= sizeof(ext3_acl_header);
s = size - 4 * sizeof(ext3_acl_entry_short);
if (s < 0) {
if (size % sizeof(ext3_acl_entry_short))
return -1;
return size / sizeof(ext3_acl_entry_short);
} else {
if (s % sizeof(ext3_acl_entry))
return -1;
return s / sizeof(ext3_acl_entry) + 4;
}
}
extern int ext3_check_acl (struct inode *, int);
extern int ext3_acl_chmod (struct inode *);
extern int ext3_init_acl (handle_t *, struct inode *, struct inode *);
#include
ext3_acl_chmod(struct inode *inode)
{
return 0;
}
ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir)
{
return 0;
}
#endif /* CONFIG_EXT3_FS_POSIX_ACL */