aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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