cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

acl.h (1903B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#include <linux/init.h>
      3#include <linux/posix_acl.h>
      4
      5#define REISERFS_ACL_VERSION	0x0001
      6
      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_ACL
     51struct posix_acl *reiserfs_get_acl(struct inode *inode, int type, bool rcu);
     52int reiserfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
     53		     struct posix_acl *acl, int type);
     54int reiserfs_acl_chmod(struct inode *inode);
     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#else
     61
     62#define reiserfs_cache_default_acl(inode) 0
     63#define reiserfs_get_acl NULL
     64#define reiserfs_set_acl NULL
     65
     66static inline int reiserfs_acl_chmod(struct inode *inode)
     67{
     68	return 0;
     69}
     70
     71static inline int
     72reiserfs_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#endif