aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_mount.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-08-28 21:59:36 -0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-10-15 21:41:15 -0400
commit293688ec420f1160ed93ea4c7948ed5baf8bafa7 (patch)
tree3e342f759b3ae0499eedcb8f050dd2c4c1b48e93 /fs/xfs/xfs_mount.h
parentf541d270dbce375b7bd8cef466bdaf0cff945b45 (diff)
[XFS] remove dependency of the dmapi module on behaviors
Mount options are now parsed by the main XFS module and rejected if dmapi support is not available, and there is a new dm operation to send the mount event. SGI-PV: 969608 SGI-Modid: xfs-linux-melb:xfs-kern:29502a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_mount.h')
-rw-r--r--fs/xfs/xfs_mount.h24
1 files changed, 16 insertions, 8 deletions
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 02b9a6ee9403..a7cd596ec6d2 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -85,6 +85,8 @@ typedef int (*xfs_send_namesp_t)(dm_eventtype_t, struct bhv_vfs *,
85 bhv_vnode_t *, 85 bhv_vnode_t *,
86 dm_right_t, bhv_vnode_t *, dm_right_t, 86 dm_right_t, bhv_vnode_t *, dm_right_t,
87 char *, char *, mode_t, int, int); 87 char *, char *, mode_t, int, int);
88typedef int (*xfs_send_mount_t)(struct xfs_mount *, dm_right_t,
89 char *, char *);
88typedef void (*xfs_send_unmount_t)(struct bhv_vfs *, bhv_vnode_t *, 90typedef void (*xfs_send_unmount_t)(struct bhv_vfs *, bhv_vnode_t *,
89 dm_right_t, mode_t, int, int); 91 dm_right_t, mode_t, int, int);
90 92
@@ -93,21 +95,24 @@ typedef struct xfs_dmops {
93 xfs_send_mmap_t xfs_send_mmap; 95 xfs_send_mmap_t xfs_send_mmap;
94 xfs_send_destroy_t xfs_send_destroy; 96 xfs_send_destroy_t xfs_send_destroy;
95 xfs_send_namesp_t xfs_send_namesp; 97 xfs_send_namesp_t xfs_send_namesp;
98 xfs_send_mount_t xfs_send_mount;
96 xfs_send_unmount_t xfs_send_unmount; 99 xfs_send_unmount_t xfs_send_unmount;
97} xfs_dmops_t; 100} xfs_dmops_t;
98 101
99#define XFS_SEND_DATA(mp, ev,vp,off,len,fl,lock) \ 102#define XFS_SEND_DATA(mp, ev,vp,off,len,fl,lock) \
100 (*(mp)->m_dm_ops.xfs_send_data)(ev,vp,off,len,fl,lock) 103 (*(mp)->m_dm_ops->xfs_send_data)(ev,vp,off,len,fl,lock)
101#define XFS_SEND_MMAP(mp, vma,fl) \ 104#define XFS_SEND_MMAP(mp, vma,fl) \
102 (*(mp)->m_dm_ops.xfs_send_mmap)(vma,fl) 105 (*(mp)->m_dm_ops->xfs_send_mmap)(vma,fl)
103#define XFS_SEND_DESTROY(mp, vp,right) \ 106#define XFS_SEND_DESTROY(mp, vp,right) \
104 (*(mp)->m_dm_ops.xfs_send_destroy)(vp,right) 107 (*(mp)->m_dm_ops->xfs_send_destroy)(vp,right)
105#define XFS_SEND_NAMESP(mp, ev,b1,r1,b2,r2,n1,n2,mode,rval,fl) \ 108#define XFS_SEND_NAMESP(mp, ev,b1,r1,b2,r2,n1,n2,mode,rval,fl) \
106 (*(mp)->m_dm_ops.xfs_send_namesp)(ev,NULL,b1,r1,b2,r2,n1,n2,mode,rval,fl) 109 (*(mp)->m_dm_ops->xfs_send_namesp)(ev,NULL,b1,r1,b2,r2,n1,n2,mode,rval,fl)
107#define XFS_SEND_PREUNMOUNT(mp, vfs,b1,r1,b2,r2,n1,n2,mode,rval,fl) \ 110#define XFS_SEND_PREUNMOUNT(mp, vfs,b1,r1,b2,r2,n1,n2,mode,rval,fl) \
108 (*(mp)->m_dm_ops.xfs_send_namesp)(DM_EVENT_PREUNMOUNT,vfs,b1,r1,b2,r2,n1,n2,mode,rval,fl) 111 (*(mp)->m_dm_ops->xfs_send_namesp)(DM_EVENT_PREUNMOUNT,vfs,b1,r1,b2,r2,n1,n2,mode,rval,fl)
112#define XFS_SEND_MOUNT(mp,right,path,name) \
113 (*(mp)->m_dm_ops->xfs_send_mount)(mp,right,path,name)
109#define XFS_SEND_UNMOUNT(mp, vfsp,vp,right,mode,rval,fl) \ 114#define XFS_SEND_UNMOUNT(mp, vfsp,vp,right,mode,rval,fl) \
110 (*(mp)->m_dm_ops.xfs_send_unmount)(vfsp,vp,right,mode,rval,fl) 115 (*(mp)->m_dm_ops->xfs_send_unmount)(vfsp,vp,right,mode,rval,fl)
111 116
112 117
113/* 118/*
@@ -407,7 +412,7 @@ typedef struct xfs_mount {
407 uint m_chsize; /* size of next field */ 412 uint m_chsize; /* size of next field */
408 struct xfs_chash *m_chash; /* fs private inode per-cluster 413 struct xfs_chash *m_chash; /* fs private inode per-cluster
409 * hash table */ 414 * hash table */
410 struct xfs_dmops m_dm_ops; /* vector of DMI ops */ 415 struct xfs_dmops *m_dm_ops; /* vector of DMI ops */
411 struct xfs_qmops m_qm_ops; /* vector of XQM ops */ 416 struct xfs_qmops m_qm_ops; /* vector of XQM ops */
412 struct xfs_ioops m_io_ops; /* vector of I/O ops */ 417 struct xfs_ioops m_io_ops; /* vector of I/O ops */
413 atomic_t m_active_trans; /* number trans frozen */ 418 atomic_t m_active_trans; /* number trans frozen */
@@ -642,7 +647,10 @@ extern void xfs_sb_from_disk(struct xfs_sb *, struct xfs_dsb *);
642extern void xfs_sb_to_disk(struct xfs_dsb *, struct xfs_sb *, __int64_t); 647extern void xfs_sb_to_disk(struct xfs_dsb *, struct xfs_sb *, __int64_t);
643extern int xfs_sb_validate_fsb_count(struct xfs_sb *, __uint64_t); 648extern int xfs_sb_validate_fsb_count(struct xfs_sb *, __uint64_t);
644 649
645extern struct xfs_dmops xfs_dmcore_stub; 650extern int xfs_dmops_get(struct xfs_mount *, struct xfs_mount_args *);
651extern void xfs_dmops_put(struct xfs_mount *);
652
653extern struct xfs_dmops xfs_dmcore_xfs;
646extern struct xfs_qmops xfs_qmcore_stub; 654extern struct xfs_qmops xfs_qmcore_stub;
647extern struct xfs_ioops xfs_iocore_xfs; 655extern struct xfs_ioops xfs_iocore_xfs;
648 656