linux/fs/xfs/xfs_acl.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2001-2005 Silicon Graphics, Inc.
   3 * All Rights Reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or
   6 * modify it under the terms of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it would be useful,
  10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12 * GNU General Public License for more details.
  13 *
  14 * You should have received a copy of the GNU General Public License
  15 * along with this program; if not, write the Free Software Foundation,
  16 * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  17 */
  18#ifndef __XFS_ACL_H__
  19#define __XFS_ACL_H__
  20
  21struct inode;
  22struct posix_acl;
  23struct xfs_inode;
  24
  25#define XFS_ACL_MAX_ENTRIES 25
  26#define XFS_ACL_NOT_PRESENT (-1)
  27
  28/* On-disk XFS access control list structure */
  29struct xfs_acl {
  30        __be32          acl_cnt;
  31        struct xfs_acl_entry {
  32                __be32  ae_tag;
  33                __be32  ae_id;
  34                __be16  ae_perm;
  35        } acl_entry[XFS_ACL_MAX_ENTRIES];
  36};
  37
  38/* On-disk XFS extended attribute names */
  39#define SGI_ACL_FILE            "SGI_ACL_FILE"
  40#define SGI_ACL_DEFAULT         "SGI_ACL_DEFAULT"
  41#define SGI_ACL_FILE_SIZE       (sizeof(SGI_ACL_FILE)-1)
  42#define SGI_ACL_DEFAULT_SIZE    (sizeof(SGI_ACL_DEFAULT)-1)
  43
  44#ifdef CONFIG_XFS_POSIX_ACL
  45extern int xfs_check_acl(struct inode *inode, int mask);
  46extern struct posix_acl *xfs_get_acl(struct inode *inode, int type);
  47extern int xfs_inherit_acl(struct inode *inode, struct posix_acl *default_acl);
  48extern int xfs_acl_chmod(struct inode *inode);
  49extern int posix_acl_access_exists(struct inode *inode);
  50extern int posix_acl_default_exists(struct inode *inode);
  51
  52extern struct xattr_handler xfs_xattr_system_handler;
  53#else
  54# define xfs_check_acl                                  NULL
  55# define xfs_get_acl(inode, type)                       NULL
  56# define xfs_inherit_acl(inode, default_acl)            0
  57# define xfs_acl_chmod(inode)                           0
  58# define posix_acl_access_exists(inode)                 0
  59# define posix_acl_default_exists(inode)                0
  60#endif /* CONFIG_XFS_POSIX_ACL */
  61#endif  /* __XFS_ACL_H__ */
  62