1/* 2 * Copyright (c) 2000-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_SUPER_H__ 19#define __XFS_SUPER_H__ 20 21#ifdef CONFIG_XFS_DMAPI 22# define vfs_insertdmapi(vfs) vfs_insertops(vfsp, &xfs_dmops) 23# define vfs_initdmapi() dmapi_init() 24# define vfs_exitdmapi() dmapi_uninit() 25#else 26# define vfs_insertdmapi(vfs) do { } while (0) 27# define vfs_initdmapi() do { } while (0) 28# define vfs_exitdmapi() do { } while (0) 29#endif 30 31#ifdef CONFIG_XFS_QUOTA 32# define vfs_insertquota(vfs) vfs_insertops(vfsp, &xfs_qmops) 33# define vfs_initquota() xfs_qm_init() 34# define vfs_exitquota() xfs_qm_exit() 35#else 36# define vfs_insertquota(vfs) do { } while (0) 37# define vfs_initquota() do { } while (0) 38# define vfs_exitquota() do { } while (0) 39#endif 40 41#ifdef CONFIG_XFS_POSIX_ACL 42# define XFS_ACL_STRING "ACLs, " 43# define set_posix_acl_flag(sb) ((sb)->s_flags |= MS_POSIXACL) 44#else 45# define XFS_ACL_STRING 46# define set_posix_acl_flag(sb) do { } while (0) 47#endif 48 49#ifdef CONFIG_XFS_SECURITY 50# define XFS_SECURITY_STRING "security attributes, " 51# define ENOSECURITY 0 52#else 53# define XFS_SECURITY_STRING 54# define ENOSECURITY EOPNOTSUPP 55#endif 56 57#ifdef CONFIG_XFS_RT 58# define XFS_REALTIME_STRING "realtime, " 59#else 60# define XFS_REALTIME_STRING 61#endif 62 63#if XFS_BIG_BLKNOS 64# if XFS_BIG_INUMS 65# define XFS_BIGFS_STRING "large block/inode numbers, " 66# else 67# define XFS_BIGFS_STRING "large block numbers, " 68# endif 69#else 70# define XFS_BIGFS_STRING 71#endif 72 73#ifdef CONFIG_XFS_TRACE 74# define XFS_TRACE_STRING "tracing, " 75#else 76# define XFS_TRACE_STRING 77#endif 78 79#ifdef XFSDEBUG 80# define XFS_DBG_STRING "debug" 81#else 82# define XFS_DBG_STRING "no debug" 83#endif 84 85#define XFS_BUILD_OPTIONS XFS_ACL_STRING \ 86 XFS_SECURITY_STRING \ 87 XFS_REALTIME_STRING \ 88 XFS_BIGFS_STRING \ 89 XFS_TRACE_STRING \ 90 XFS_DBG_STRING /* DBG must be last */ 91 92struct xfs_inode; 93struct xfs_mount; 94struct xfs_buftarg; 95 96extern __uint64_t xfs_max_file_offset(unsigned int); 97 98extern void xfs_initialize_vnode(bhv_desc_t *, xfs_vnode_t *, bhv_desc_t *, int); 99 100extern void xfs_flush_inode(struct xfs_inode *); 101extern void xfs_flush_device(struct xfs_inode *); 102 103extern int xfs_blkdev_get(struct xfs_mount *, const char *, 104 struct block_device **); 105extern void xfs_blkdev_put(struct block_device *); 106extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); 107 108extern struct export_operations xfs_export_operations; 109 110extern int init_xfs_fs(void); 111extern void exit_xfs_fs(void); 112 113#endif /* __XFS_SUPER_H__ */ 114