brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 2571b1a Raw
79 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#include <linux/init.h>3#include <linux/posix_acl.h>4 5#define REISERFS_ACL_VERSION	0x00016 7typedef struct {8	__le16 e_tag;9	__le16 e_perm;10	__le32 e_id;11} reiserfs_acl_entry;12 13typedef struct {14	__le16 e_tag;15	__le16 e_perm;16} reiserfs_acl_entry_short;17 18typedef struct {19	__le32 a_version;20} reiserfs_acl_header;21 22static inline size_t reiserfs_acl_size(int count)23{24	if (count <= 4) {25		return sizeof(reiserfs_acl_header) +26		    count * sizeof(reiserfs_acl_entry_short);27	} else {28		return sizeof(reiserfs_acl_header) +29		    4 * sizeof(reiserfs_acl_entry_short) +30		    (count - 4) * sizeof(reiserfs_acl_entry);31	}32}33 34static inline int reiserfs_acl_count(size_t size)35{36	ssize_t s;37	size -= sizeof(reiserfs_acl_header);38	s = size - 4 * sizeof(reiserfs_acl_entry_short);39	if (s < 0) {40		if (size % sizeof(reiserfs_acl_entry_short))41			return -1;42		return size / sizeof(reiserfs_acl_entry_short);43	} else {44		if (s % sizeof(reiserfs_acl_entry))45			return -1;46		return s / sizeof(reiserfs_acl_entry) + 4;47	}48}49 50#ifdef CONFIG_REISERFS_FS_POSIX_ACL51struct posix_acl *reiserfs_get_acl(struct inode *inode, int type, bool rcu);52int reiserfs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,53		     struct posix_acl *acl, int type);54int reiserfs_acl_chmod(struct dentry *dentry);55int reiserfs_inherit_default_acl(struct reiserfs_transaction_handle *th,56				 struct inode *dir, struct dentry *dentry,57				 struct inode *inode);58int reiserfs_cache_default_acl(struct inode *dir);59 60#else61 62#define reiserfs_cache_default_acl(inode) 063#define reiserfs_get_acl NULL64#define reiserfs_set_acl NULL65 66static inline int reiserfs_acl_chmod(struct dentry *dentry)67{68	return 0;69}70 71static inline int72reiserfs_inherit_default_acl(struct reiserfs_transaction_handle *th,73			     const struct inode *dir, struct dentry *dentry,74			     struct inode *inode)75{76	return 0;77}78#endif79