[PATCH 08/15] xfs: rewrite XFS_SEND_DESTROY() as a function

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

 



Re-implement XFS_SEND_DESTROY() using a real (static inline)
function.

The mount point passed in to XFS_SEND_DESTROY() is always taken from
the i_mount field of the xfs_inode which is also provided.  Get rid
of the mount point argument altogether, and compute what would have
been passed within the macro.

Finally, move the test for whether the event is enabled into the
called function.

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

---
 fs/xfs/xfs_dmapi.h    |   16 ++++++++++++++--
 fs/xfs/xfs_vnodeops.c |    5 ++---
 2 files changed, 16 insertions(+), 5 deletions(-)

Index: b/fs/xfs/xfs_dmapi.h
===================================================================
--- a/fs/xfs/xfs_dmapi.h
+++ b/fs/xfs/xfs_dmapi.h
@@ -245,8 +245,20 @@ xfs_dmapi_send_mmap(
 	return 0;
 }
 
-#define XFS_SEND_DESTROY(mp, ip,right) \
-	(*(mp)->m_dm_ops->xfs_send_destroy)(ip,right)
+static inline int
+xfs_dmapi_send_destroy(
+	struct xfs_inode	*ip,
+	dm_right_t		right)
+{
+	xfs_send_destroy_t	send_destroy;
+
+	if (!xfs_dmapi_event_enabled(ip, DM_EVENT_DESTROY))
+	    	return 0;
+	send_destroy = ip->i_mount->m_dm_ops->xfs_send_destroy;
+
+	return send_destroy(ip, right);
+}
+
 #define XFS_SEND_NAMESP(mp, ev,b1,r1,b2,r2,n1,n2,mode,rval,fl) \
 	(*(mp)->m_dm_ops->xfs_send_namesp)(ev,NULL,b1,r1,b2,r2,n1,n2,mode,rval,fl)
 
Index: b/fs/xfs/xfs_vnodeops.c
===================================================================
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -1061,9 +1061,8 @@ xfs_inactive(
 
 	mp = ip->i_mount;
 
-	if (ip->i_d.di_nlink == 0 &&
-		    xfs_dmapi_event_enabled(ip, DM_EVENT_DESTROY))
-		XFS_SEND_DESTROY(mp, ip, DM_RIGHT_NULL);
+	if (ip->i_d.di_nlink == 0)
+		(void) xfs_dmapi_send_destroy(ip, DM_RIGHT_NULL);
 
 	error = 0;
 

_______________________________________________
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