aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-08-28 21:46:47 -0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-10-15 21:39:25 -0400
commit1543d79c45a374f934f95ca34d87e2eeeb2039b4 (patch)
treeabe537e7c241f2a764687c54d805ebfdb5147e3c
parentb677c210cec0d6755335ffc01691982c417dd39e (diff)
[XFS] move v_trace from bhv_vnode to xfs_inode
struct bhv_vnode is on it's way out, so move the trace buffer to the XFS inode. Note that this makes the tracing macros rather misnamed, but this kind of fallout will be fixed up incrementally later on. SGI-PV: 969608 SGI-Modid: xfs-linux-melb:xfs-kern:29498a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_ioctl.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c40
-rw-r--r--fs/xfs/linux-2.6/xfs_vnode.c46
-rw-r--r--fs/xfs/linux-2.6/xfs_vnode.h21
-rw-r--r--fs/xfs/xfs_dir2.c2
-rw-r--r--fs/xfs/xfs_iget.c10
-rw-r--r--fs/xfs/xfs_inode.c7
-rw-r--r--fs/xfs/xfs_inode.h3
-rw-r--r--fs/xfs/xfs_rename.c4
-rw-r--r--fs/xfs/xfs_utils.c2
-rw-r--r--fs/xfs/xfs_utils.h2
-rw-r--r--fs/xfs/xfs_vnodeops.c42
13 files changed, 94 insertions, 89 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index 1dd198ec2890..f766c7f74dc0 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -1526,7 +1526,7 @@ xfs_vm_bmap(
1526 struct inode *inode = (struct inode *)mapping->host; 1526 struct inode *inode = (struct inode *)mapping->host;
1527 struct xfs_inode *ip = XFS_I(inode); 1527 struct xfs_inode *ip = XFS_I(inode);
1528 1528
1529 vn_trace_entry(vn_from_inode(inode), __FUNCTION__, 1529 vn_trace_entry(XFS_I(inode), __FUNCTION__,
1530 (inst_t *)__return_address); 1530 (inst_t *)__return_address);
1531 xfs_rwlock(ip, VRWLOCK_READ); 1531 xfs_rwlock(ip, VRWLOCK_READ);
1532 xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF); 1532 xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF);
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c
index 8ff465db909b..4c38e27ed184 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl.c
@@ -733,7 +733,7 @@ xfs_ioctl(
733 xfs_mount_t *mp = ip->i_mount; 733 xfs_mount_t *mp = ip->i_mount;
734 int error; 734 int error;
735 735
736 vn_trace_entry(vp, "xfs_ioctl", (inst_t *)__return_address); 736 vn_trace_entry(XFS_I(inode), "xfs_ioctl", (inst_t *)__return_address);
737 737
738 switch (cmd) { 738 switch (cmd) {
739 739
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 47bca4e4696b..bb0c4a932fd7 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -403,7 +403,7 @@ xfs_fs_write_inode(
403{ 403{
404 int error = 0, flags = FLUSH_INODE; 404 int error = 0, flags = FLUSH_INODE;
405 405
406 vn_trace_entry(vn_from_inode(inode), __FUNCTION__, 406 vn_trace_entry(XFS_I(inode), __FUNCTION__,
407 (inst_t *)__return_address); 407 (inst_t *)__return_address);
408 if (sync) { 408 if (sync) {
409 filemap_fdatawait(inode->i_mapping); 409 filemap_fdatawait(inode->i_mapping);
@@ -425,34 +425,27 @@ STATIC void
425xfs_fs_clear_inode( 425xfs_fs_clear_inode(
426 struct inode *inode) 426 struct inode *inode)
427{ 427{
428 bhv_vnode_t *vp = vn_from_inode(inode); 428 xfs_inode_t *ip = XFS_I(inode);
429
430 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address);
431
432 XFS_STATS_INC(vn_rele);
433 XFS_STATS_INC(vn_remove);
434 XFS_STATS_INC(vn_reclaim);
435 XFS_STATS_DEC(vn_active);
436 429
437 /* 430 /*
438 * This can happen because xfs_iget_core calls xfs_idestroy if we 431 * ip can be null when xfs_iget_core calls xfs_idestroy if we
439 * find an inode with di_mode == 0 but without IGET_CREATE set. 432 * find an inode with di_mode == 0 but without IGET_CREATE set.
440 */ 433 */
441 if (XFS_I(inode)) 434 if (ip) {
442 xfs_inactive(XFS_I(inode)); 435 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
443 436
444 437 XFS_STATS_INC(vn_rele);
445 if (XFS_I(inode)) { 438 XFS_STATS_INC(vn_remove);
446 xfs_iflags_clear(XFS_I(inode), XFS_IMODIFIED); 439 XFS_STATS_INC(vn_reclaim);
447 if (xfs_reclaim(XFS_I(inode))) 440 XFS_STATS_DEC(vn_active);
448 panic("%s: cannot reclaim 0x%p\n", __FUNCTION__, vp); 441
442 xfs_inactive(ip);
443 xfs_iflags_clear(ip, XFS_IMODIFIED);
444 if (xfs_reclaim(ip))
445 panic("%s: cannot reclaim 0x%p\n", __FUNCTION__, inode);
449 } 446 }
450 447
451 ASSERT(XFS_I(inode) == NULL); 448 ASSERT(XFS_I(inode) == NULL);
452
453#ifdef XFS_VNODE_TRACE
454 ktrace_free(vp->v_trace);
455#endif
456} 449}
457 450
458/* 451/*
@@ -840,7 +833,8 @@ xfs_fs_fill_super(
840 } 833 }
841 if ((error = xfs_fs_start_syncd(vfsp))) 834 if ((error = xfs_fs_start_syncd(vfsp)))
842 goto fail_vnrele; 835 goto fail_vnrele;
843 vn_trace_exit(rootvp, __FUNCTION__, (inst_t *)__return_address); 836 vn_trace_exit(XFS_I(sb->s_root->d_inode), __FUNCTION__,
837 (inst_t *)__return_address);
844 838
845 kmem_free(args, sizeof(*args)); 839 kmem_free(args, sizeof(*args));
846 return 0; 840 return 0;
diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c
index bde8d2e7f559..9d9464cf8de4 100644
--- a/fs/xfs/linux-2.6/xfs_vnode.c
+++ b/fs/xfs/linux-2.6/xfs_vnode.c
@@ -103,11 +103,6 @@ vn_initialize(
103 103
104 ASSERT(VN_CACHED(vp) == 0); 104 ASSERT(VN_CACHED(vp) == 0);
105 105
106#ifdef XFS_VNODE_TRACE
107 vp->v_trace = ktrace_alloc(VNODE_TRACE_SIZE, KM_SLEEP);
108#endif /* XFS_VNODE_TRACE */
109
110 vn_trace_exit(vp, __FUNCTION__, (inst_t *)__return_address);
111 return vp; 106 return vp;
112} 107}
113 108
@@ -158,7 +153,7 @@ __vn_revalidate(
158{ 153{
159 int error; 154 int error;
160 155
161 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); 156 vn_trace_entry(xfs_vtoi(vp), __FUNCTION__, (inst_t *)__return_address);
162 vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS; 157 vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS;
163 error = xfs_getattr(xfs_vtoi(vp), vattr, 0); 158 error = xfs_getattr(xfs_vtoi(vp), vattr, 0);
164 if (likely(!error)) { 159 if (likely(!error)) {
@@ -196,12 +191,25 @@ vn_hold(
196 191
197#ifdef XFS_VNODE_TRACE 192#ifdef XFS_VNODE_TRACE
198 193
199#define KTRACE_ENTER(vp, vk, s, line, ra) \ 194/*
200 ktrace_enter( (vp)->v_trace, \ 195 * Reference count of Linux inode if present, -1 if the xfs_inode
196 * has no associated Linux inode.
197 */
198static inline int xfs_icount(struct xfs_inode *ip)
199{
200 bhv_vnode_t *vp = XFS_ITOV_NULL(ip);
201
202 if (vp)
203 return vn_count(vp);
204 return -1;
205}
206
207#define KTRACE_ENTER(ip, vk, s, line, ra) \
208 ktrace_enter( (ip)->i_trace, \
201/* 0 */ (void *)(__psint_t)(vk), \ 209/* 0 */ (void *)(__psint_t)(vk), \
202/* 1 */ (void *)(s), \ 210/* 1 */ (void *)(s), \
203/* 2 */ (void *)(__psint_t) line, \ 211/* 2 */ (void *)(__psint_t) line, \
204/* 3 */ (void *)(__psint_t)(vn_count(vp)), \ 212/* 3 */ (void *)(__psint_t)xfs_icount(ip), \
205/* 4 */ (void *)(ra), \ 213/* 4 */ (void *)(ra), \
206/* 5 */ NULL, \ 214/* 5 */ NULL, \
207/* 6 */ (void *)(__psint_t)current_cpu(), \ 215/* 6 */ (void *)(__psint_t)current_cpu(), \
@@ -213,32 +221,32 @@ vn_hold(
213 * Vnode tracing code. 221 * Vnode tracing code.
214 */ 222 */
215void 223void
216vn_trace_entry(bhv_vnode_t *vp, const char *func, inst_t *ra) 224vn_trace_entry(xfs_inode_t *ip, const char *func, inst_t *ra)
217{ 225{
218 KTRACE_ENTER(vp, VNODE_KTRACE_ENTRY, func, 0, ra); 226 KTRACE_ENTER(ip, VNODE_KTRACE_ENTRY, func, 0, ra);
219} 227}
220 228
221void 229void
222vn_trace_exit(bhv_vnode_t *vp, const char *func, inst_t *ra) 230vn_trace_exit(xfs_inode_t *ip, const char *func, inst_t *ra)
223{ 231{
224 KTRACE_ENTER(vp, VNODE_KTRACE_EXIT, func, 0, ra); 232 KTRACE_ENTER(ip, VNODE_KTRACE_EXIT, func, 0, ra);
225} 233}
226 234
227void 235void
228vn_trace_hold(bhv_vnode_t *vp, char *file, int line, inst_t *ra) 236vn_trace_hold(xfs_inode_t *ip, char *file, int line, inst_t *ra)
229{ 237{
230 KTRACE_ENTER(vp, VNODE_KTRACE_HOLD, file, line, ra); 238 KTRACE_ENTER(ip, VNODE_KTRACE_HOLD, file, line, ra);
231} 239}
232 240
233void 241void
234vn_trace_ref(bhv_vnode_t *vp, char *file, int line, inst_t *ra) 242vn_trace_ref(xfs_inode_t *ip, char *file, int line, inst_t *ra)
235{ 243{
236 KTRACE_ENTER(vp, VNODE_KTRACE_REF, file, line, ra); 244 KTRACE_ENTER(ip, VNODE_KTRACE_REF, file, line, ra);
237} 245}
238 246
239void 247void
240vn_trace_rele(bhv_vnode_t *vp, char *file, int line, inst_t *ra) 248vn_trace_rele(xfs_inode_t *ip, char *file, int line, inst_t *ra)
241{ 249{
242 KTRACE_ENTER(vp, VNODE_KTRACE_RELE, file, line, ra); 250 KTRACE_ENTER(ip, VNODE_KTRACE_RELE, file, line, ra);
243} 251}
244#endif /* XFS_VNODE_TRACE */ 252#endif /* XFS_VNODE_TRACE */
diff --git a/fs/xfs/linux-2.6/xfs_vnode.h b/fs/xfs/linux-2.6/xfs_vnode.h
index 321346d95267..2b161361c1a0 100644
--- a/fs/xfs/linux-2.6/xfs_vnode.h
+++ b/fs/xfs/linux-2.6/xfs_vnode.h
@@ -29,9 +29,6 @@ typedef __u64 bhv_vnumber_t;
29 29
30typedef struct bhv_vnode { 30typedef struct bhv_vnode {
31 bhv_vnumber_t v_number; /* in-core vnode number */ 31 bhv_vnumber_t v_number; /* in-core vnode number */
32#ifdef XFS_VNODE_TRACE
33 struct ktrace *v_trace; /* trace header structure */
34#endif
35 struct inode v_inode; /* Linux inode */ 32 struct inode v_inode; /* Linux inode */
36 /* inode MUST be last */ 33 /* inode MUST be last */
37} bhv_vnode_t; 34} bhv_vnode_t;
@@ -222,9 +219,9 @@ extern bhv_vnode_t *vn_hold(struct bhv_vnode *);
222#if defined(XFS_VNODE_TRACE) 219#if defined(XFS_VNODE_TRACE)
223#define VN_HOLD(vp) \ 220#define VN_HOLD(vp) \
224 ((void)vn_hold(vp), \ 221 ((void)vn_hold(vp), \
225 vn_trace_hold(vp, __FILE__, __LINE__, (inst_t *)__return_address)) 222 vn_trace_hold(xfs_vtoi(vp), __FILE__, __LINE__, (inst_t *)__return_address))
226#define VN_RELE(vp) \ 223#define VN_RELE(vp) \
227 (vn_trace_rele(vp, __FILE__, __LINE__, (inst_t *)__return_address), \ 224 (vn_trace_rele(xfs_vtoi(vp), __FILE__, __LINE__, (inst_t *)__return_address), \
228 iput(vn_to_inode(vp))) 225 iput(vn_to_inode(vp)))
229#else 226#else
230#define VN_HOLD(vp) ((void)vn_hold(vp)) 227#define VN_HOLD(vp) ((void)vn_hold(vp))
@@ -314,21 +311,17 @@ static inline void vn_atime_to_time_t(bhv_vnode_t *vp, time_t *tt)
314#define VNODE_KTRACE_REF 4 311#define VNODE_KTRACE_REF 4
315#define VNODE_KTRACE_RELE 5 312#define VNODE_KTRACE_RELE 5
316 313
317extern void vn_trace_entry(struct bhv_vnode *, const char *, inst_t *); 314extern void vn_trace_entry(struct xfs_inode *, const char *, inst_t *);
318extern void vn_trace_exit(struct bhv_vnode *, const char *, inst_t *); 315extern void vn_trace_exit(struct xfs_inode *, const char *, inst_t *);
319extern void vn_trace_hold(struct bhv_vnode *, char *, int, inst_t *); 316extern void vn_trace_hold(struct xfs_inode *, char *, int, inst_t *);
320extern void vn_trace_ref(struct bhv_vnode *, char *, int, inst_t *); 317extern void vn_trace_ref(struct xfs_inode *, char *, int, inst_t *);
321extern void vn_trace_rele(struct bhv_vnode *, char *, int, inst_t *); 318extern void vn_trace_rele(struct xfs_inode *, char *, int, inst_t *);
322
323#define VN_TRACE(vp) \
324 vn_trace_ref(vp, __FILE__, __LINE__, (inst_t *)__return_address)
325#else 319#else
326#define vn_trace_entry(a,b,c) 320#define vn_trace_entry(a,b,c)
327#define vn_trace_exit(a,b,c) 321#define vn_trace_exit(a,b,c)
328#define vn_trace_hold(a,b,c,d) 322#define vn_trace_hold(a,b,c,d)
329#define vn_trace_ref(a,b,c,d) 323#define vn_trace_ref(a,b,c,d)
330#define vn_trace_rele(a,b,c,d) 324#define vn_trace_rele(a,b,c,d)
331#define VN_TRACE(vp)
332#endif 325#endif
333 326
334#endif /* __XFS_VNODE_H__ */ 327#endif /* __XFS_VNODE_H__ */
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index 12001bf0d0cb..b0f1ee8fcb90 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -301,7 +301,7 @@ xfs_readdir(
301 int rval; /* return value */ 301 int rval; /* return value */
302 int v; /* type-checking value */ 302 int v; /* type-checking value */
303 303
304 vn_trace_entry(XFS_ITOV(dp), __FUNCTION__, (inst_t *)__return_address); 304 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
305 305
306 if (XFS_FORCED_SHUTDOWN(dp->i_mount)) 306 if (XFS_FORCED_SHUTDOWN(dp->i_mount))
307 return XFS_ERROR(EIO); 307 return XFS_ERROR(EIO);
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c
index ee13d6d708c8..001cec705e28 100644
--- a/fs/xfs/xfs_iget.c
+++ b/fs/xfs/xfs_iget.c
@@ -157,7 +157,7 @@ again:
157 goto again; 157 goto again;
158 } 158 }
159 159
160 vn_trace_exit(vp, "xfs_iget.alloc", 160 vn_trace_exit(ip, "xfs_iget.alloc",
161 (inst_t *)__return_address); 161 (inst_t *)__return_address);
162 162
163 XFS_STATS_INC(xs_ig_found); 163 XFS_STATS_INC(xs_ig_found);
@@ -212,7 +212,7 @@ finish_inode:
212 xfs_ilock(ip, lock_flags); 212 xfs_ilock(ip, lock_flags);
213 213
214 xfs_iflags_clear(ip, XFS_ISTALE); 214 xfs_iflags_clear(ip, XFS_ISTALE);
215 vn_trace_exit(vp, "xfs_iget.found", 215 vn_trace_exit(ip, "xfs_iget.found",
216 (inst_t *)__return_address); 216 (inst_t *)__return_address);
217 goto return_ip; 217 goto return_ip;
218 } 218 }
@@ -234,7 +234,7 @@ finish_inode:
234 return error; 234 return error;
235 } 235 }
236 236
237 vn_trace_exit(vp, "xfs_iget.alloc", (inst_t *)__return_address); 237 vn_trace_exit(ip, "xfs_iget.alloc", (inst_t *)__return_address);
238 238
239 xfs_inode_lock_init(ip, vp); 239 xfs_inode_lock_init(ip, vp);
240 xfs_iocore_inode_init(ip); 240 xfs_iocore_inode_init(ip);
@@ -467,7 +467,7 @@ xfs_iput(xfs_inode_t *ip,
467{ 467{
468 bhv_vnode_t *vp = XFS_ITOV(ip); 468 bhv_vnode_t *vp = XFS_ITOV(ip);
469 469
470 vn_trace_entry(vp, "xfs_iput", (inst_t *)__return_address); 470 vn_trace_entry(ip, "xfs_iput", (inst_t *)__return_address);
471 xfs_iunlock(ip, lock_flags); 471 xfs_iunlock(ip, lock_flags);
472 VN_RELE(vp); 472 VN_RELE(vp);
473} 473}
@@ -482,7 +482,7 @@ xfs_iput_new(xfs_inode_t *ip,
482 bhv_vnode_t *vp = XFS_ITOV(ip); 482 bhv_vnode_t *vp = XFS_ITOV(ip);
483 struct inode *inode = vn_to_inode(vp); 483 struct inode *inode = vn_to_inode(vp);
484 484
485 vn_trace_entry(vp, "xfs_iput_new", (inst_t *)__return_address); 485 vn_trace_entry(ip, "xfs_iput_new", (inst_t *)__return_address);
486 486
487 if ((ip->i_d.di_mode == 0)) { 487 if ((ip->i_d.di_mode == 0)) {
488 ASSERT(!xfs_iflags_test(ip, XFS_IRECLAIMABLE)); 488 ASSERT(!xfs_iflags_test(ip, XFS_IRECLAIMABLE));
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 0349e714dc30..b82f4e43ef3e 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -884,6 +884,9 @@ xfs_iread(
884 * Initialize inode's trace buffers. 884 * Initialize inode's trace buffers.
885 * Do this before xfs_iformat in case it adds entries. 885 * Do this before xfs_iformat in case it adds entries.
886 */ 886 */
887#ifdef XFS_VNODE_TRACE
888 ip->i_trace = ktrace_alloc(VNODE_TRACE_SIZE, KM_SLEEP);
889#endif
887#ifdef XFS_BMAP_TRACE 890#ifdef XFS_BMAP_TRACE
888 ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_SLEEP); 891 ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_SLEEP);
889#endif 892#endif
@@ -2729,6 +2732,10 @@ xfs_idestroy(
2729 mrfree(&ip->i_lock); 2732 mrfree(&ip->i_lock);
2730 mrfree(&ip->i_iolock); 2733 mrfree(&ip->i_iolock);
2731 freesema(&ip->i_flock); 2734 freesema(&ip->i_flock);
2735
2736#ifdef XFS_VNODE_TRACE
2737 ktrace_free(ip->i_trace);
2738#endif
2732#ifdef XFS_BMAP_TRACE 2739#ifdef XFS_BMAP_TRACE
2733 ktrace_free(ip->i_xtrace); 2740 ktrace_free(ip->i_xtrace);
2734#endif 2741#endif
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
index c8bb1a818a52..8a1457280f18 100644
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -301,6 +301,9 @@ typedef struct xfs_inode {
301 xfs_fsize_t i_size; /* in-memory size */ 301 xfs_fsize_t i_size; /* in-memory size */
302 atomic_t i_iocount; /* outstanding I/O count */ 302 atomic_t i_iocount; /* outstanding I/O count */
303 /* Trace buffers per inode. */ 303 /* Trace buffers per inode. */
304#ifdef XFS_VNODE_TRACE
305 struct ktrace *i_trace; /* general inode trace */
306#endif
304#ifdef XFS_BMAP_TRACE 307#ifdef XFS_BMAP_TRACE
305 struct ktrace *i_xtrace; /* inode extent list trace */ 308 struct ktrace *i_xtrace; /* inode extent list trace */
306#endif 309#endif
diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c
index 2f5c8740b25c..44ea0ba36476 100644
--- a/fs/xfs/xfs_rename.c
+++ b/fs/xfs/xfs_rename.c
@@ -247,8 +247,8 @@ xfs_rename(
247 int src_namelen = VNAMELEN(src_vname); 247 int src_namelen = VNAMELEN(src_vname);
248 int target_namelen = VNAMELEN(target_vname); 248 int target_namelen = VNAMELEN(target_vname);
249 249
250 vn_trace_entry(src_dir_vp, "xfs_rename", (inst_t *)__return_address); 250 vn_trace_entry(src_dp, "xfs_rename", (inst_t *)__return_address);
251 vn_trace_entry(target_dir_vp, "xfs_rename", (inst_t *)__return_address); 251 vn_trace_entry(xfs_vtoi(target_dir_vp), "xfs_rename", (inst_t *)__return_address);
252 252
253 /* 253 /*
254 * Find the XFS behavior descriptor for the target directory 254 * Find the XFS behavior descriptor for the target directory
diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c
index 4a7208ef7faa..673b405eaa31 100644
--- a/fs/xfs/xfs_utils.c
+++ b/fs/xfs/xfs_utils.c
@@ -73,7 +73,7 @@ xfs_dir_lookup_int(
73{ 73{
74 int error; 74 int error;
75 75
76 vn_trace_entry(XFS_ITOV(dp), __FUNCTION__, (inst_t *)__return_address); 76 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
77 77
78 error = xfs_dir_lookup(NULL, dp, VNAME(dentry), VNAMELEN(dentry), inum); 78 error = xfs_dir_lookup(NULL, dp, VNAME(dentry), VNAMELEN(dentry), inum);
79 if (!error) { 79 if (!error) {
diff --git a/fs/xfs/xfs_utils.h b/fs/xfs/xfs_utils.h
index 35c7a99f50ac..a00b26d8840e 100644
--- a/fs/xfs/xfs_utils.h
+++ b/fs/xfs/xfs_utils.h
@@ -20,7 +20,7 @@
20 20
21#define IRELE(ip) VN_RELE(XFS_ITOV(ip)) 21#define IRELE(ip) VN_RELE(XFS_ITOV(ip))
22#define IHOLD(ip) VN_HOLD(XFS_ITOV(ip)) 22#define IHOLD(ip) VN_HOLD(XFS_ITOV(ip))
23#define ITRACE(ip) vn_trace_ref(XFS_ITOV(ip), __FILE__, __LINE__, \ 23#define ITRACE(ip) vn_trace_ref(ip, __FILE__, __LINE__, \
24 (inst_t *)__return_address) 24 (inst_t *)__return_address)
25 25
26extern int xfs_get_dir_entry (bhv_vname_t *, xfs_inode_t **); 26extern int xfs_get_dir_entry (bhv_vname_t *, xfs_inode_t **);
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index e7ef78fb4da3..98653793b34a 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -88,7 +88,7 @@ xfs_getattr(
88 bhv_vnode_t *vp = XFS_ITOV(ip); 88 bhv_vnode_t *vp = XFS_ITOV(ip);
89 xfs_mount_t *mp = ip->i_mount; 89 xfs_mount_t *mp = ip->i_mount;
90 90
91 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); 91 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
92 92
93 if (XFS_FORCED_SHUTDOWN(mp)) 93 if (XFS_FORCED_SHUTDOWN(mp))
94 return XFS_ERROR(EIO); 94 return XFS_ERROR(EIO);
@@ -228,7 +228,7 @@ xfs_setattr(
228 int file_owner; 228 int file_owner;
229 int need_iolock = 1; 229 int need_iolock = 1;
230 230
231 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); 231 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
232 232
233 if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY) 233 if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
234 return XFS_ERROR(EROFS); 234 return XFS_ERROR(EROFS);
@@ -915,7 +915,7 @@ xfs_access(
915{ 915{
916 int error; 916 int error;
917 917
918 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 918 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
919 919
920 xfs_ilock(ip, XFS_ILOCK_SHARED); 920 xfs_ilock(ip, XFS_ILOCK_SHARED);
921 error = xfs_iaccess(ip, mode, credp); 921 error = xfs_iaccess(ip, mode, credp);
@@ -987,7 +987,7 @@ xfs_readlink(
987 int pathlen; 987 int pathlen;
988 int error = 0; 988 int error = 0;
989 989
990 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 990 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
991 991
992 if (XFS_FORCED_SHUTDOWN(mp)) 992 if (XFS_FORCED_SHUTDOWN(mp))
993 return XFS_ERROR(EIO); 993 return XFS_ERROR(EIO);
@@ -1033,7 +1033,7 @@ xfs_fsync(
1033 int error; 1033 int error;
1034 int log_flushed = 0, changed = 1; 1034 int log_flushed = 0, changed = 1;
1035 1035
1036 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 1036 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
1037 1037
1038 ASSERT(start >= 0 && stop >= -1); 1038 ASSERT(start >= 0 && stop >= -1);
1039 1039
@@ -1592,7 +1592,7 @@ xfs_inactive(
1592 int error; 1592 int error;
1593 int truncate; 1593 int truncate;
1594 1594
1595 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); 1595 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
1596 1596
1597 /* 1597 /*
1598 * If the inode is already free, then there can be nothing 1598 * If the inode is already free, then there can be nothing
@@ -1805,7 +1805,7 @@ xfs_lookup(
1805 int error; 1805 int error;
1806 uint lock_mode; 1806 uint lock_mode;
1807 1807
1808 vn_trace_entry(XFS_ITOV(dp), __FUNCTION__, (inst_t *)__return_address); 1808 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
1809 1809
1810 if (XFS_FORCED_SHUTDOWN(dp->i_mount)) 1810 if (XFS_FORCED_SHUTDOWN(dp->i_mount))
1811 return XFS_ERROR(EIO); 1811 return XFS_ERROR(EIO);
@@ -1849,7 +1849,7 @@ xfs_create(
1849 int namelen; 1849 int namelen;
1850 1850
1851 ASSERT(!*vpp); 1851 ASSERT(!*vpp);
1852 vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); 1852 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
1853 1853
1854 dm_di_mode = vap->va_mode; 1854 dm_di_mode = vap->va_mode;
1855 namelen = VNAMELEN(dentry); 1855 namelen = VNAMELEN(dentry);
@@ -2326,7 +2326,7 @@ xfs_remove(
2326 uint resblks; 2326 uint resblks;
2327 int namelen; 2327 int namelen;
2328 2328
2329 vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); 2329 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
2330 2330
2331 if (XFS_FORCED_SHUTDOWN(mp)) 2331 if (XFS_FORCED_SHUTDOWN(mp))
2332 return XFS_ERROR(EIO); 2332 return XFS_ERROR(EIO);
@@ -2369,7 +2369,7 @@ xfs_remove(
2369 2369
2370 dm_di_mode = ip->i_d.di_mode; 2370 dm_di_mode = ip->i_d.di_mode;
2371 2371
2372 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 2372 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
2373 2373
2374 ITRACE(ip); 2374 ITRACE(ip);
2375 2375
@@ -2503,7 +2503,7 @@ xfs_remove(
2503 if (link_zero && xfs_inode_is_filestream(ip)) 2503 if (link_zero && xfs_inode_is_filestream(ip))
2504 xfs_filestream_deassociate(ip); 2504 xfs_filestream_deassociate(ip);
2505 2505
2506 vn_trace_exit(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 2506 vn_trace_exit(ip, __FUNCTION__, (inst_t *)__return_address);
2507 2507
2508 IRELE(ip); 2508 IRELE(ip);
2509 2509
@@ -2567,8 +2567,8 @@ xfs_link(
2567 char *target_name = VNAME(dentry); 2567 char *target_name = VNAME(dentry);
2568 int target_namelen; 2568 int target_namelen;
2569 2569
2570 vn_trace_entry(target_dir_vp, __FUNCTION__, (inst_t *)__return_address); 2570 vn_trace_entry(tdp, __FUNCTION__, (inst_t *)__return_address);
2571 vn_trace_entry(src_vp, __FUNCTION__, (inst_t *)__return_address); 2571 vn_trace_entry(xfs_vtoi(src_vp), __FUNCTION__, (inst_t *)__return_address);
2572 2572
2573 target_namelen = VNAMELEN(dentry); 2573 target_namelen = VNAMELEN(dentry);
2574 ASSERT(!VN_ISDIR(src_vp)); 2574 ASSERT(!VN_ISDIR(src_vp));
@@ -2751,7 +2751,7 @@ xfs_mkdir(
2751 2751
2752 /* Return through std_return after this point. */ 2752 /* Return through std_return after this point. */
2753 2753
2754 vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); 2754 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
2755 2755
2756 mp = dp->i_mount; 2756 mp = dp->i_mount;
2757 udqp = gdqp = NULL; 2757 udqp = gdqp = NULL;
@@ -2945,7 +2945,7 @@ xfs_rmdir(
2945 int last_cdp_link; 2945 int last_cdp_link;
2946 uint resblks; 2946 uint resblks;
2947 2947
2948 vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); 2948 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
2949 2949
2950 if (XFS_FORCED_SHUTDOWN(mp)) 2950 if (XFS_FORCED_SHUTDOWN(mp))
2951 return XFS_ERROR(EIO); 2951 return XFS_ERROR(EIO);
@@ -3198,7 +3198,7 @@ xfs_symlink(
3198 ip = NULL; 3198 ip = NULL;
3199 tp = NULL; 3199 tp = NULL;
3200 3200
3201 vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); 3201 vn_trace_entry(dp, __FUNCTION__, (inst_t *)__return_address);
3202 3202
3203 3203
3204 if (XFS_FORCED_SHUTDOWN(mp)) 3204 if (XFS_FORCED_SHUTDOWN(mp))
@@ -3490,7 +3490,7 @@ xfs_fid2(
3490{ 3490{
3491 xfs_fid2_t *xfid = (xfs_fid2_t *)fidp; 3491 xfs_fid2_t *xfid = (xfs_fid2_t *)fidp;
3492 3492
3493 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 3493 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
3494 ASSERT(sizeof(fid_t) >= sizeof(xfs_fid2_t)); 3494 ASSERT(sizeof(fid_t) >= sizeof(xfs_fid2_t));
3495 3495
3496 xfid->fid_len = sizeof(xfs_fid2_t) - sizeof(xfid->fid_len); 3496 xfid->fid_len = sizeof(xfs_fid2_t) - sizeof(xfid->fid_len);
@@ -3673,7 +3673,7 @@ xfs_reclaim(
3673{ 3673{
3674 bhv_vnode_t *vp = XFS_ITOV(ip); 3674 bhv_vnode_t *vp = XFS_ITOV(ip);
3675 3675
3676 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); 3676 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
3677 3677
3678 ASSERT(!VN_MAPPED(vp)); 3678 ASSERT(!VN_MAPPED(vp));
3679 3679
@@ -3891,7 +3891,7 @@ xfs_alloc_file_space(
3891 int committed; 3891 int committed;
3892 int error; 3892 int error;
3893 3893
3894 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 3894 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
3895 3895
3896 if (XFS_FORCED_SHUTDOWN(mp)) 3896 if (XFS_FORCED_SHUTDOWN(mp))
3897 return XFS_ERROR(EIO); 3897 return XFS_ERROR(EIO);
@@ -4161,7 +4161,7 @@ xfs_free_file_space(
4161 vp = XFS_ITOV(ip); 4161 vp = XFS_ITOV(ip);
4162 mp = ip->i_mount; 4162 mp = ip->i_mount;
4163 4163
4164 vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); 4164 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
4165 4165
4166 if ((error = XFS_QM_DQATTACH(mp, ip, 0))) 4166 if ((error = XFS_QM_DQATTACH(mp, ip, 0)))
4167 return error; 4167 return error;
@@ -4367,7 +4367,7 @@ xfs_change_file_space(
4367 xfs_trans_t *tp; 4367 xfs_trans_t *tp;
4368 bhv_vattr_t va; 4368 bhv_vattr_t va;
4369 4369
4370 vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address); 4370 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
4371 4371
4372 /* 4372 /*
4373 * must be a regular file and have write permission 4373 * must be a regular file and have write permission