Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf441eeb authored by Lachlan McIlroy's avatar Lachlan McIlroy
Browse files

[XFS] clean up vnode/inode tracing



Simplify vnode tracing calls by embedding function name & return addr in
the calling macro.

Also do a lot of vnode->inode renaming for consistency, while we're at it.

SGI-PV: 970335
SGI-Modid: xfs-linux-melb:xfs-kern:29650a

Signed-off-by: default avatarEric Sandeen <sandeen@sandeen.net>
Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
parent 44866d39
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1525,8 +1525,7 @@ xfs_vm_bmap(
	struct inode		*inode = (struct inode *)mapping->host;
	struct xfs_inode	*ip = XFS_I(inode);

	vn_trace_entry(XFS_I(inode), __FUNCTION__,
			(inst_t *)__return_address);
	xfs_itrace_entry(XFS_I(inode));
	xfs_rwlock(ip, VRWLOCK_READ);
	xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF);
	xfs_rwunlock(ip, VRWLOCK_READ);
+1 −2
Original line number Diff line number Diff line
@@ -739,8 +739,7 @@ xfs_ioctl(
	xfs_mount_t		*mp = ip->i_mount;
	int			error;

	vn_trace_entry(XFS_I(inode), "xfs_ioctl", (inst_t *)__return_address);

	xfs_itrace_entry(XFS_I(inode));
	switch (cmd) {

	case XFS_IOC_ALLOCSP:
+3 −6
Original line number Diff line number Diff line
@@ -410,8 +410,7 @@ xfs_fs_write_inode(
{
	int			error = 0, flags = FLUSH_INODE;

	vn_trace_entry(XFS_I(inode), __FUNCTION__,
			(inst_t *)__return_address);
	xfs_itrace_entry(XFS_I(inode));
	if (sync) {
		filemap_fdatawait(inode->i_mapping);
		flags |= FLUSH_SYNC;
@@ -438,8 +437,7 @@ xfs_fs_clear_inode(
	 * find an inode with di_mode == 0 but without IGET_CREATE set.
	 */
	if (ip) {
		vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);

		xfs_itrace_entry(ip);
		XFS_STATS_INC(vn_rele);
		XFS_STATS_INC(vn_remove);
		XFS_STATS_INC(vn_reclaim);
@@ -841,8 +839,7 @@ xfs_fs_fill_super(
		goto fail_vnrele;
	}

	vn_trace_exit(XFS_I(sb->s_root->d_inode), __FUNCTION__,
			(inst_t *)__return_address);
	xfs_itrace_exit(XFS_I(sb->s_root->d_inode));

	kmem_free(args, sizeof(*args));
	return 0;
+13 −13
Original line number Diff line number Diff line
@@ -143,7 +143,7 @@ __vn_revalidate(
{
	int		error;

	vn_trace_entry(xfs_vtoi(vp), __FUNCTION__, (inst_t *)__return_address);
	xfs_itrace_entry(xfs_vtoi(vp));
	vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS;
	error = xfs_getattr(xfs_vtoi(vp), vattr, 0);
	if (likely(!error)) {
@@ -179,7 +179,7 @@ vn_hold(
	return vp;
}

#ifdef	XFS_VNODE_TRACE
#ifdef	XFS_INODE_TRACE

/*
 * Reference count of Linux inode if present, -1 if the xfs_inode
@@ -211,32 +211,32 @@ static inline int xfs_icount(struct xfs_inode *ip)
 * Vnode tracing code.
 */
void
vn_trace_entry(xfs_inode_t *ip, const char *func, inst_t *ra)
_xfs_itrace_entry(xfs_inode_t *ip, const char *func, inst_t *ra)
{
	KTRACE_ENTER(ip, VNODE_KTRACE_ENTRY, func, 0, ra);
	KTRACE_ENTER(ip, INODE_KTRACE_ENTRY, func, 0, ra);
}

void
vn_trace_exit(xfs_inode_t *ip, const char *func, inst_t *ra)
_xfs_itrace_exit(xfs_inode_t *ip, const char *func, inst_t *ra)
{
	KTRACE_ENTER(ip, VNODE_KTRACE_EXIT, func, 0, ra);
	KTRACE_ENTER(ip, INODE_KTRACE_EXIT, func, 0, ra);
}

void
vn_trace_hold(xfs_inode_t *ip, char *file, int line, inst_t *ra)
xfs_itrace_hold(xfs_inode_t *ip, char *file, int line, inst_t *ra)
{
	KTRACE_ENTER(ip, VNODE_KTRACE_HOLD, file, line, ra);
	KTRACE_ENTER(ip, INODE_KTRACE_HOLD, file, line, ra);
}

void
vn_trace_ref(xfs_inode_t *ip, char *file, int line, inst_t *ra)
_xfs_itrace_ref(xfs_inode_t *ip, char *file, int line, inst_t *ra)
{
	KTRACE_ENTER(ip, VNODE_KTRACE_REF, file, line, ra);
	KTRACE_ENTER(ip, INODE_KTRACE_REF, file, line, ra);
}

void
vn_trace_rele(xfs_inode_t *ip, char *file, int line, inst_t *ra)
xfs_itrace_rele(xfs_inode_t *ip, char *file, int line, inst_t *ra)
{
	KTRACE_ENTER(ip, VNODE_KTRACE_RELE, file, line, ra);
	KTRACE_ENTER(ip, INODE_KTRACE_RELE, file, line, ra);
}
#endif	/* XFS_VNODE_TRACE */
#endif	/* XFS_INODE_TRACE */
+29 −22
Original line number Diff line number Diff line
@@ -210,12 +210,12 @@ static inline int vn_count(bhv_vnode_t *vp)
 */
extern bhv_vnode_t	*vn_hold(bhv_vnode_t *);

#if defined(XFS_VNODE_TRACE)
#if defined(XFS_INODE_TRACE)
#define VN_HOLD(vp)		\
	((void)vn_hold(vp),	\
	  vn_trace_hold(xfs_vtoi(vp), __FILE__, __LINE__, (inst_t *)__return_address))
	  xfs_itrace_hold(xfs_vtoi(vp), __FILE__, __LINE__, (inst_t *)__return_address))
#define VN_RELE(vp)		\
	  (vn_trace_rele(xfs_vtoi(vp), __FILE__, __LINE__, (inst_t *)__return_address), \
	  (xfs_itrace_rele(xfs_vtoi(vp), __FILE__, __LINE__, (inst_t *)__return_address), \
	   iput(vn_to_inode(vp)))
#else
#define VN_HOLD(vp)		((void)vn_hold(vp))
@@ -296,26 +296,33 @@ static inline void vn_atime_to_time_t(bhv_vnode_t *vp, time_t *tt)
/*
 * Tracking vnode activity.
 */
#if defined(XFS_VNODE_TRACE)

#define	VNODE_TRACE_SIZE	16		/* number of trace entries */
#define	VNODE_KTRACE_ENTRY	1
#define	VNODE_KTRACE_EXIT	2
#define	VNODE_KTRACE_HOLD	3
#define	VNODE_KTRACE_REF	4
#define	VNODE_KTRACE_RELE	5

extern void vn_trace_entry(struct xfs_inode *, const char *, inst_t *);
extern void vn_trace_exit(struct xfs_inode *, const char *, inst_t *);
extern void vn_trace_hold(struct xfs_inode *, char *, int, inst_t *);
extern void vn_trace_ref(struct xfs_inode *, char *, int, inst_t *);
extern void vn_trace_rele(struct xfs_inode *, char *, int, inst_t *);
#if defined(XFS_INODE_TRACE)

#define	INODE_TRACE_SIZE	16		/* number of trace entries */
#define	INODE_KTRACE_ENTRY	1
#define	INODE_KTRACE_EXIT	2
#define	INODE_KTRACE_HOLD	3
#define	INODE_KTRACE_REF	4
#define	INODE_KTRACE_RELE	5

extern void _xfs_itrace_entry(struct xfs_inode *, const char *, inst_t *);
extern void _xfs_itrace_exit(struct xfs_inode *, const char *, inst_t *);
extern void xfs_itrace_hold(struct xfs_inode *, char *, int, inst_t *);
extern void _xfs_itrace_ref(struct xfs_inode *, char *, int, inst_t *);
extern void xfs_itrace_rele(struct xfs_inode *, char *, int, inst_t *);
#define xfs_itrace_entry(ip)	\
	_xfs_itrace_entry(ip, __FUNCTION__, (inst_t *)__return_address)
#define xfs_itrace_exit(ip)	\
	_xfs_itrace_exit(ip, __FUNCTION__, (inst_t *)__return_address)
#define xfs_itrace_ref(ip)	\
	_xfs_itrace_ref(ip, __FILE__, __LINE__, (inst_t *)__return_address)

#else
#define	vn_trace_entry(a,b,c)
#define	vn_trace_exit(a,b,c)
#define	vn_trace_hold(a,b,c,d)
#define	vn_trace_ref(a,b,c,d)
#define	vn_trace_rele(a,b,c,d)
#define	xfs_itrace_entry(a)
#define	xfs_itrace_exit(a)
#define	xfs_itrace_hold(a, b, c, d)
#define	xfs_itrace_ref(a)
#define	xfs_itrace_rele(a, b, c, d)
#endif

#endif	/* __XFS_VNODE_H__ */
Loading