[PATCH 13/15] xfs: make m_dm_ops a void pointer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The only remaining reference to the xfs_dmops data type is in the
xfs_mount structure.  Change that pointer into a void pointer,
thereby making it possible to hide the remaining DMAPI type
definitions inside the CONFIG_XFS_DMAPI conditional.

Signed-off-by: Alex Elder <aelder@xxxxxxx>

---
 fs/xfs/Makefile    |    3 +++
 fs/xfs/xfs_dmapi.h |   10 +++++-----
 fs/xfs/xfs_dmops.c |   14 ++++++++------
 fs/xfs/xfs_mount.h |    2 +-
 4 files changed, 17 insertions(+), 12 deletions(-)

Index: b/fs/xfs/Makefile
===================================================================
--- a/fs/xfs/Makefile
+++ b/fs/xfs/Makefile
@@ -23,6 +23,9 @@ XFS_LINUX := linux-2.6
 ifeq ($(CONFIG_XFS_DEBUG),y)
 	EXTRA_CFLAGS += -g
 endif
+ifdef CONFIG_XFS_DMAPI
+	EXTRA_CFLAGS += -I$(srctree)/fs/dmapi
+endif
 
 obj-$(CONFIG_XFS_FS)		+= xfs.o
 
Index: b/fs/xfs/xfs_dmapi.h
===================================================================
--- a/fs/xfs/xfs_dmapi.h
+++ b/fs/xfs/xfs_dmapi.h
@@ -151,6 +151,11 @@ typedef enum {
  * Prototypes and functions for the Data Migration subsystem.
  */
 
+extern int	xfs_dmops_get(struct xfs_mount *);
+extern void	xfs_dmops_put(struct xfs_mount *);
+
+#ifdef XFS_DMAPI
+
 extern struct xfs_dmops xfs_dmcore_xfs;
 
 typedef int	(*xfs_send_data_t)(int, struct xfs_inode *,
@@ -175,11 +180,6 @@ typedef struct xfs_dmops {
 	xfs_send_unmount_t	xfs_send_unmount;
 } xfs_dmops_t;
 
-extern int	xfs_dmops_get(struct xfs_mount *);
-extern void	xfs_dmops_put(struct xfs_mount *);
-
-#ifdef XFS_DMAPI
-
 /*
  * DMAPI events only apply if DMAPI support was specified at mount
  * time.  If active, a particular DMAPI event can be enabled for
Index: b/fs/xfs/xfs_dmops.c
===================================================================
--- a/fs/xfs/xfs_dmops.c
+++ b/fs/xfs/xfs_dmops.c
@@ -66,6 +66,8 @@ xfs_dmops_put(struct xfs_mount *mp)
 
 #ifdef	XFS_DMAPI
 
+#define	DM_OPS(mp)	((struct xfs_dmops *) (mp)->m_dm_ops)
+
 /* Private functions that encapsulate conditionally sending DMAPI messages */
 
 static inline int
@@ -81,7 +83,7 @@ xfs_dmapi_send_data(
 
 	if (! xfs_dmapi_event_enabled(ip, event))
 	    	return 0;
-	send_data = ip->i_mount->m_dm_ops->xfs_send_data;
+	send_data = DM_OPS(ip->i_mount)->xfs_send_data;
 
 	return send_data(event, ip, offset, length, flags, lock_flags);
 }
@@ -95,7 +97,7 @@ xfs_dmapi_send_mmap(
 	struct xfs_mount	*mp = XFS_M(inode->i_sb);
 
 	if (mp->m_dm_ops) {
-		xfs_send_mmap_t	send_mmap = mp->m_dm_ops->xfs_send_mmap;
+		xfs_send_mmap_t	send_mmap = DM_OPS(mp)->xfs_send_mmap;
 
 		return send_mmap(vma, vm_flags);
 	}
@@ -113,7 +115,7 @@ xfs_dmapi_send_destroy(
 
 	if (!xfs_dmapi_event_enabled(ip, DM_EVENT_DESTROY))
 	    	return 0;
-	send_destroy = ip->i_mount->m_dm_ops->xfs_send_destroy;
+	send_destroy = DM_OPS(ip->i_mount)->xfs_send_destroy;
 
 	return send_destroy(ip, right);
 }
@@ -167,7 +169,7 @@ xfs_dmapi_send_namesp(
 	if (!enabled)
 	    	return 0;
 
-	send_namesp = ip1->i_mount->m_dm_ops->xfs_send_namesp;
+	send_namesp = DM_OPS(ip1->i_mount)->xfs_send_namesp;
 
 	return send_namesp(event, NULL, ip1, right1, ip2, right2,
 				name1, name2, mode, ret, flags);
@@ -179,7 +181,7 @@ xfs_dmapi_send_mount(
 	char			*path)
 {
     	if (mp->m_dm_ops) {
-		xfs_send_mount_t send_mount = mp->m_dm_ops->xfs_send_mount;
+		xfs_send_mount_t send_mount = DM_OPS(mp)->xfs_send_mount;
 
 		return send_mount(mp, DM_RIGHT_NULL, path, mp->m_fsname);
 	}
@@ -207,7 +209,7 @@ xfs_dmapi_send_unmount(
 {
 	if (mp->m_dm_ops) {
 		xfs_send_unmount_t send_unmount =
-					mp->m_dm_ops->xfs_send_unmount;
+					DM_OPS(mp)->xfs_send_unmount;
 
 		send_unmount(mp, mp->m_rootip, DM_RIGHT_NULL,
 				0, 0, XFS_DMAPI_UNMOUNT_FLAGS(mp));
Index: b/fs/xfs/xfs_mount.h
===================================================================
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -182,7 +182,7 @@ typedef struct xfs_mount {
 	uint			m_chsize;	/* size of next field */
 	struct xfs_chash	*m_chash;	/* fs private inode per-cluster
 						 * hash table */
-	struct xfs_dmops	*m_dm_ops;	/* vector of DMI ops */
+	void			*m_dm_ops;	/* vector of DMI ops */
 	struct xfs_qmops	*m_qm_ops;	/* vector of XQM ops */
 	atomic_t		m_active_trans;	/* number trans frozen */
 #ifdef HAVE_PERCPU_SB

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux