move inode tracing out of xfs_vnode.
Move the inode tracing into xfs_iget.c / xfs_inode.h and kill xfs_vnode.c now that it's empty. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com> Signed-off-by: Niv Sardi <xaiki@sgi.com>
This commit is contained in:
parent
25e41b3d52
commit
5a8d0f3c7a
|
@ -107,7 +107,6 @@ xfs-y += $(addprefix $(XFS_LINUX)/, \
|
||||||
xfs_lrw.o \
|
xfs_lrw.o \
|
||||||
xfs_super.o \
|
xfs_super.o \
|
||||||
xfs_sync.o \
|
xfs_sync.o \
|
||||||
xfs_vnode.o \
|
|
||||||
xfs_xattr.o)
|
xfs_xattr.o)
|
||||||
|
|
||||||
# Objects in support/
|
# Objects in support/
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2000-2003,2005 Silicon Graphics, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it would be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write the Free Software Foundation,
|
|
||||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
#include "xfs.h"
|
|
||||||
#include "xfs_vnodeops.h"
|
|
||||||
#include "xfs_bmap_btree.h"
|
|
||||||
#include "xfs_inode.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* And this gunk is needed for xfs_mount.h"
|
|
||||||
*/
|
|
||||||
#include "xfs_log.h"
|
|
||||||
#include "xfs_trans.h"
|
|
||||||
#include "xfs_sb.h"
|
|
||||||
#include "xfs_dmapi.h"
|
|
||||||
#include "xfs_inum.h"
|
|
||||||
#include "xfs_ag.h"
|
|
||||||
#include "xfs_mount.h"
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef XFS_INODE_TRACE
|
|
||||||
|
|
||||||
#define KTRACE_ENTER(ip, vk, s, line, ra) \
|
|
||||||
ktrace_enter( (ip)->i_trace, \
|
|
||||||
/* 0 */ (void *)(__psint_t)(vk), \
|
|
||||||
/* 1 */ (void *)(s), \
|
|
||||||
/* 2 */ (void *)(__psint_t) line, \
|
|
||||||
/* 3 */ (void *)(__psint_t)atomic_read(&VFS_I(ip)->i_count), \
|
|
||||||
/* 4 */ (void *)(ra), \
|
|
||||||
/* 5 */ NULL, \
|
|
||||||
/* 6 */ (void *)(__psint_t)current_cpu(), \
|
|
||||||
/* 7 */ (void *)(__psint_t)current_pid(), \
|
|
||||||
/* 8 */ (void *)__return_address, \
|
|
||||||
/* 9 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Vnode tracing code.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
_xfs_itrace_entry(xfs_inode_t *ip, const char *func, inst_t *ra)
|
|
||||||
{
|
|
||||||
KTRACE_ENTER(ip, INODE_KTRACE_ENTRY, func, 0, ra);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_xfs_itrace_exit(xfs_inode_t *ip, const char *func, inst_t *ra)
|
|
||||||
{
|
|
||||||
KTRACE_ENTER(ip, INODE_KTRACE_EXIT, func, 0, ra);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
xfs_itrace_hold(xfs_inode_t *ip, char *file, int line, inst_t *ra)
|
|
||||||
{
|
|
||||||
KTRACE_ENTER(ip, INODE_KTRACE_HOLD, file, line, ra);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_xfs_itrace_ref(xfs_inode_t *ip, char *file, int line, inst_t *ra)
|
|
||||||
{
|
|
||||||
KTRACE_ENTER(ip, INODE_KTRACE_REF, file, line, ra);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
xfs_itrace_rele(xfs_inode_t *ip, char *file, int line, inst_t *ra)
|
|
||||||
{
|
|
||||||
KTRACE_ENTER(ip, INODE_KTRACE_RELE, file, line, ra);
|
|
||||||
}
|
|
||||||
#endif /* XFS_INODE_TRACE */
|
|
|
@ -54,19 +54,6 @@ struct attrlist_cursor_kern;
|
||||||
Prevent VM access to the pages until
|
Prevent VM access to the pages until
|
||||||
the operation completes. */
|
the operation completes. */
|
||||||
|
|
||||||
#define IHOLD(ip) \
|
|
||||||
do { \
|
|
||||||
ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \
|
|
||||||
atomic_inc(&(VFS_I(ip)->i_count)); \
|
|
||||||
xfs_itrace_hold((ip), __FILE__, __LINE__, (inst_t *)__return_address); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define IRELE(ip) \
|
|
||||||
do { \
|
|
||||||
xfs_itrace_rele((ip), __FILE__, __LINE__, (inst_t *)__return_address); \
|
|
||||||
iput(VFS_I(ip)); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dealing with bad inodes
|
* Dealing with bad inodes
|
||||||
*/
|
*/
|
||||||
|
@ -103,39 +90,4 @@ static inline void vn_atime_to_time_t(struct inode *vp, time_t *tt)
|
||||||
PAGECACHE_TAG_DIRTY)
|
PAGECACHE_TAG_DIRTY)
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Tracking vnode activity.
|
|
||||||
*/
|
|
||||||
#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, __func__, (inst_t *)__return_address)
|
|
||||||
#define xfs_itrace_exit(ip) \
|
|
||||||
_xfs_itrace_exit(ip, __func__, (inst_t *)__return_address)
|
|
||||||
#define xfs_itrace_exit_tag(ip, tag) \
|
|
||||||
_xfs_itrace_exit(ip, tag, (inst_t *)__return_address)
|
|
||||||
#define xfs_itrace_ref(ip) \
|
|
||||||
_xfs_itrace_ref(ip, __FILE__, __LINE__, (inst_t *)__return_address)
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define xfs_itrace_entry(a)
|
|
||||||
#define xfs_itrace_exit(a)
|
|
||||||
#define xfs_itrace_exit_tag(a, b)
|
|
||||||
#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__ */
|
#endif /* __XFS_VNODE_H__ */
|
||||||
|
|
|
@ -805,3 +805,51 @@ xfs_isilocked(
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef XFS_INODE_TRACE
|
||||||
|
|
||||||
|
#define KTRACE_ENTER(ip, vk, s, line, ra) \
|
||||||
|
ktrace_enter((ip)->i_trace, \
|
||||||
|
/* 0 */ (void *)(__psint_t)(vk), \
|
||||||
|
/* 1 */ (void *)(s), \
|
||||||
|
/* 2 */ (void *)(__psint_t) line, \
|
||||||
|
/* 3 */ (void *)(__psint_t)atomic_read(&VFS_I(ip)->i_count), \
|
||||||
|
/* 4 */ (void *)(ra), \
|
||||||
|
/* 5 */ NULL, \
|
||||||
|
/* 6 */ (void *)(__psint_t)current_cpu(), \
|
||||||
|
/* 7 */ (void *)(__psint_t)current_pid(), \
|
||||||
|
/* 8 */ (void *)__return_address, \
|
||||||
|
/* 9 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vnode tracing code.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
_xfs_itrace_entry(xfs_inode_t *ip, const char *func, inst_t *ra)
|
||||||
|
{
|
||||||
|
KTRACE_ENTER(ip, INODE_KTRACE_ENTRY, func, 0, ra);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_xfs_itrace_exit(xfs_inode_t *ip, const char *func, inst_t *ra)
|
||||||
|
{
|
||||||
|
KTRACE_ENTER(ip, INODE_KTRACE_EXIT, func, 0, ra);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
xfs_itrace_hold(xfs_inode_t *ip, char *file, int line, inst_t *ra)
|
||||||
|
{
|
||||||
|
KTRACE_ENTER(ip, INODE_KTRACE_HOLD, file, line, ra);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_xfs_itrace_ref(xfs_inode_t *ip, char *file, int line, inst_t *ra)
|
||||||
|
{
|
||||||
|
KTRACE_ENTER(ip, INODE_KTRACE_REF, file, line, ra);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
xfs_itrace_rele(xfs_inode_t *ip, char *file, int line, inst_t *ra)
|
||||||
|
{
|
||||||
|
KTRACE_ENTER(ip, INODE_KTRACE_RELE, file, line, ra);
|
||||||
|
}
|
||||||
|
#endif /* XFS_INODE_TRACE */
|
||||||
|
|
|
@ -536,6 +536,51 @@ void xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint);
|
||||||
void xfs_synchronize_atime(xfs_inode_t *);
|
void xfs_synchronize_atime(xfs_inode_t *);
|
||||||
void xfs_mark_inode_dirty_sync(xfs_inode_t *);
|
void xfs_mark_inode_dirty_sync(xfs_inode_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, __func__, (inst_t *)__return_address)
|
||||||
|
#define xfs_itrace_exit(ip) \
|
||||||
|
_xfs_itrace_exit(ip, __func__, (inst_t *)__return_address)
|
||||||
|
#define xfs_itrace_exit_tag(ip, tag) \
|
||||||
|
_xfs_itrace_exit(ip, tag, (inst_t *)__return_address)
|
||||||
|
#define xfs_itrace_ref(ip) \
|
||||||
|
_xfs_itrace_ref(ip, __FILE__, __LINE__, (inst_t *)__return_address)
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define xfs_itrace_entry(a)
|
||||||
|
#define xfs_itrace_exit(a)
|
||||||
|
#define xfs_itrace_exit_tag(a, b)
|
||||||
|
#define xfs_itrace_hold(a, b, c, d)
|
||||||
|
#define xfs_itrace_ref(a)
|
||||||
|
#define xfs_itrace_rele(a, b, c, d)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IHOLD(ip) \
|
||||||
|
do { \
|
||||||
|
ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \
|
||||||
|
atomic_inc(&(VFS_I(ip)->i_count)); \
|
||||||
|
xfs_itrace_hold((ip), __FILE__, __LINE__, (inst_t *)__return_address); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define IRELE(ip) \
|
||||||
|
do { \
|
||||||
|
xfs_itrace_rele((ip), __FILE__, __LINE__, (inst_t *)__return_address); \
|
||||||
|
iput(VFS_I(ip)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
int xfs_inotobp(struct xfs_mount *, struct xfs_trans *,
|
int xfs_inotobp(struct xfs_mount *, struct xfs_trans *,
|
||||||
|
|
Loading…
Reference in New Issue