LCOV - code coverage report
Current view: top level - fs/ext4 - acl.h (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc3-acha @ Mon Jul 31 20:08:06 PDT 2023 Lines: 0 14 0.0 %
Date: 2023-07-31 20:08:07 Functions: 0 1 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :   File: fs/ext4/acl.h
       4             : 
       5             :   (C) 2001 Andreas Gruenbacher, <a.gruenbacher@computer.org>
       6             : */
       7             : 
       8             : #include <linux/posix_acl_xattr.h>
       9             : 
      10             : #define EXT4_ACL_VERSION        0x0001
      11             : 
      12             : typedef struct {
      13             :         __le16          e_tag;
      14             :         __le16          e_perm;
      15             :         __le32          e_id;
      16             : } ext4_acl_entry;
      17             : 
      18             : typedef struct {
      19             :         __le16          e_tag;
      20             :         __le16          e_perm;
      21             : } ext4_acl_entry_short;
      22             : 
      23             : typedef struct {
      24             :         __le32          a_version;
      25             : } ext4_acl_header;
      26             : 
      27             : static inline size_t ext4_acl_size(int count)
      28             : {
      29           0 :         if (count <= 4) {
      30           0 :                 return sizeof(ext4_acl_header) +
      31             :                        count * sizeof(ext4_acl_entry_short);
      32             :         } else {
      33           0 :                 return sizeof(ext4_acl_header) +
      34           0 :                        4 * sizeof(ext4_acl_entry_short) +
      35           0 :                        (count - 4) * sizeof(ext4_acl_entry);
      36             :         }
      37             : }
      38             : 
      39           0 : static inline int ext4_acl_count(size_t size)
      40             : {
      41           0 :         ssize_t s;
      42           0 :         size -= sizeof(ext4_acl_header);
      43           0 :         s = size - 4 * sizeof(ext4_acl_entry_short);
      44           0 :         if (s < 0) {
      45           0 :                 if (size % sizeof(ext4_acl_entry_short))
      46             :                         return -1;
      47           0 :                 return size / sizeof(ext4_acl_entry_short);
      48             :         } else {
      49           0 :                 if (s % sizeof(ext4_acl_entry))
      50             :                         return -1;
      51           0 :                 return s / sizeof(ext4_acl_entry) + 4;
      52             :         }
      53             : }
      54             : 
      55             : #ifdef CONFIG_EXT4_FS_POSIX_ACL
      56             : 
      57             : /* acl.c */
      58             : struct posix_acl *ext4_get_acl(struct inode *inode, int type, bool rcu);
      59             : int ext4_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
      60             :                  struct posix_acl *acl, int type);
      61             : extern int ext4_init_acl(handle_t *, struct inode *, struct inode *);
      62             : 
      63             : #else  /* CONFIG_EXT4_FS_POSIX_ACL */
      64             : #include <linux/sched.h>
      65             : #define ext4_get_acl NULL
      66             : #define ext4_set_acl NULL
      67             : 
      68             : static inline int
      69             : ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir)
      70             : {
      71             :         return 0;
      72             : }
      73             : #endif  /* CONFIG_EXT4_FS_POSIX_ACL */
      74             : 

Generated by: LCOV version 1.14