|
|
| version 1.331, 2007/08/24 16:18:10 | version 1.332, 2007/09/11 06:11:49 |
|---|---|
| Line 113 static void xfsidbg_xqm_dqtrace(xfs_dquo | Line 113 static void xfsidbg_xqm_dqtrace(xfs_dquo |
| #ifdef XFS_FILESTREAMS_TRACE | #ifdef XFS_FILESTREAMS_TRACE |
| static void xfsidbg_filestreams_trace(int); | static void xfsidbg_filestreams_trace(int); |
| #endif | #endif |
| #ifdef XFS_VNODE_TRACE | #ifdef XFS_INODE_TRACE |
| /* | /* |
| * Print a vnode trace entry. | * Print a inode trace entry. |
| */ | */ |
| static int vn_trace_pr_entry(ktrace_entry_t *ktep); | static int xfs_itrace_pr_entry(ktrace_entry_t *ktep); |
| #endif | #endif |
| Line 1443 static int kdbm_xfs_xnode( | Line 1443 static int kdbm_xfs_xnode( |
| int nextarg = 1; | int nextarg = 1; |
| long offset = 0; | long offset = 0; |
| int diag; | int diag; |
| #ifdef XFS_VNODE_TRACE | #ifdef XFS_INODE_TRACE |
| ktrace_entry_t *ktep; | ktrace_entry_t *ktep; |
| ktrace_snap_t kts; | ktrace_snap_t kts; |
| #endif | #endif |
| Line 1457 static int kdbm_xfs_xnode( | Line 1457 static int kdbm_xfs_xnode( |
| xfsidbg_xnode(ip); | xfsidbg_xnode(ip); |
| #ifdef XFS_VNODE_TRACE | #ifdef XFS_INODE_TRACE |
| kdb_printf("--> itrace @ 0x%lx/0x%p\n", addr, ip->i_trace); | kdb_printf("--> itrace @ 0x%lx/0x%p\n", addr, ip->i_trace); |
| if (ip->i_trace == NULL) | if (ip->i_trace == NULL) |
| return 0; | return 0; |
| ktep = ktrace_first(ip->i_trace, &kts); | ktep = ktrace_first(ip->i_trace, &kts); |
| while (ktep != NULL) { | while (ktep != NULL) { |
| if (vn_trace_pr_entry(ktep)) | if (xfs_itrace_pr_entry(ktep)) |
| kdb_printf("\n"); | kdb_printf("\n"); |
| ktep = ktrace_next(ip->i_trace, &kts); | ktep = ktrace_next(ip->i_trace, &kts); |
| } | } |
| #endif /* XFS_VNODE_TRACE */ | #endif /* XFS_INODE_TRACE */ |
| return 0; | return 0; |
| } | } |
| Line 1784 static int kdbm_vnode( | Line 1784 static int kdbm_vnode( |
| return 0; | return 0; |
| } | } |
| #ifdef XFS_VNODE_TRACE | #ifdef XFS_INODE_TRACE |
| /* | /* |
| * Print a vnode trace entry. | * Print a inode trace entry. |
| */ | */ |
| static int | static int |
| vn_trace_pr_entry(ktrace_entry_t *ktep) | xfs_itrace_pr_entry(ktrace_entry_t *ktep) |
| { | { |
| char funcname[128]; | char funcname[128]; |
| kdb_symtab_t symtab; | kdb_symtab_t symtab; |
| Line 1812 vn_trace_pr_entry(ktrace_entry_t *ktep) | Line 1812 vn_trace_pr_entry(ktrace_entry_t *ktep) |
| switch ((__psint_t)ktep->val[0]) { | switch ((__psint_t)ktep->val[0]) { |
| case VNODE_KTRACE_ENTRY: | case INODE_KTRACE_ENTRY: |
| kdb_printf("entry to %s i_count = %ld", | kdb_printf("entry to %s i_count = %ld", |
| (char *)ktep->val[1], | (char *)ktep->val[1], |
| (long)ktep->val[3]); | (long)ktep->val[3]); |
| break; | break; |
| case VNODE_KTRACE_EXIT: | case INODE_KTRACE_EXIT: |
| kdb_printf("exit from %s i_count = %lu", | kdb_printf("exit from %s i_count = %lu", |
| (char *)ktep->val[1], | (char *)ktep->val[1], |
| (long)ktep->val[3]); | (long)ktep->val[3]); |
| break; | break; |
| case VNODE_KTRACE_HOLD: | case INODE_KTRACE_HOLD: |
| if ((__psint_t)ktep->val[3] != 1) | if ((__psint_t)ktep->val[3] != 1) |
| kdb_printf("hold @%s:%ld(%s) i_count %ld => %ld ", | kdb_printf("hold @%s:%ld(%s) i_count %ld => %ld ", |
| (char *)ktep->val[1], | (char *)ktep->val[1], |
| Line 1840 vn_trace_pr_entry(ktrace_entry_t *ktep) | Line 1840 vn_trace_pr_entry(ktrace_entry_t *ktep) |
| (long)ktep->val[3]); | (long)ktep->val[3]); |
| break; | break; |
| case VNODE_KTRACE_REF: | case INODE_KTRACE_REF: |
| kdb_printf("ref @%s:%ld(%s) i_count = %ld", | kdb_printf("ref @%s:%ld(%s) i_count = %ld", |
| (char *)ktep->val[1], | (char *)ktep->val[1], |
| (long)ktep->val[2], | (long)ktep->val[2], |
| Line 1848 vn_trace_pr_entry(ktrace_entry_t *ktep) | Line 1848 vn_trace_pr_entry(ktrace_entry_t *ktep) |
| (long)ktep->val[3]); | (long)ktep->val[3]); |
| break; | break; |
| case VNODE_KTRACE_RELE: | case INODE_KTRACE_RELE: |
| if ((__psint_t)ktep->val[3] != 1) | if ((__psint_t)ktep->val[3] != 1) |
| kdb_printf("rele @%s:%ld(%s) i_count %ld => %ld ", | kdb_printf("rele @%s:%ld(%s) i_count %ld => %ld ", |
| (char *)ktep->val[1], | (char *)ktep->val[1], |
| Line 1865 vn_trace_pr_entry(ktrace_entry_t *ktep) | Line 1865 vn_trace_pr_entry(ktrace_entry_t *ktep) |
| break; | break; |
| default: | default: |
| kdb_printf("unknown vntrace record\n"); | kdb_printf("unknown intrace record\n"); |
| return 1; | return 1; |
| } | } |
| Line 1891 vn_trace_pr_entry(ktrace_entry_t *ktep) | Line 1891 vn_trace_pr_entry(ktrace_entry_t *ktep) |
| /* | /* |
| * Print out the trace buffer attached to the given vnode. | * Print out the trace buffer attached to the given inode. |
| */ | */ |
| static int kdbm_vntrace( | static int kdbm_iptrace( |
| int argc, | int argc, |
| const char **argv) | const char **argv) |
| { | { |
| Line 1917 static int kdbm_vntrace( | Line 1917 static int kdbm_vntrace( |
| ip = (xfs_inode_t *)addr; | ip = (xfs_inode_t *)addr; |
| if (ip->i_trace == NULL) { | if (ip->i_trace == NULL) { |
| kdb_printf("The vnode trace buffer is not initialized\n"); | kdb_printf("The inode trace buffer is not initialized\n"); |
| return 0; | return 0; |
| } | } |
| kdb_printf("vntrace ip 0x%p\n", ip); | kdb_printf("iptrace ip 0x%p\n", ip); |
| ktep = ktrace_first(ip->i_trace, &kts); | ktep = ktrace_first(ip->i_trace, &kts); |
| while (ktep != NULL) { | while (ktep != NULL) { |
| if (vn_trace_pr_entry(ktep)) | if (xfs_itrace_pr_entry(ktep)) |
| kdb_printf("\n"); | kdb_printf("\n"); |
| ktep = ktrace_next(ip->i_trace, &kts); | ktep = ktrace_next(ip->i_trace, &kts); |
| Line 1936 static int kdbm_vntrace( | Line 1936 static int kdbm_vntrace( |
| return 0; | return 0; |
| } | } |
| /* | /* |
| * Print out the trace buffer attached to the given vnode. | * Print out the trace buffer attached to the given inode. |
| */ | */ |
| static int kdbm_vntraceaddr( | static int kdbm_iptraceaddr( |
| int argc, | int argc, |
| const char **argv) | const char **argv) |
| { | { |
| Line 1961 static int kdbm_vntraceaddr( | Line 1961 static int kdbm_vntraceaddr( |
| kt = (struct ktrace *)addr; | kt = (struct ktrace *)addr; |
| kdb_printf("vntraceaddr kt 0x%p\n", kt); | kdb_printf("iptraceaddr kt 0x%p\n", kt); |
| ktep = ktrace_first(kt, &kts); | ktep = ktrace_first(kt, &kts); |
| while (ktep != NULL) { | while (ktep != NULL) { |
| if (vn_trace_pr_entry(ktep)) | if (xfs_itrace_pr_entry(ktep)) |
| kdb_printf("\n"); | kdb_printf("\n"); |
| ktep = ktrace_next(kt, &kts); | ktep = ktrace_next(kt, &kts); |
| Line 1974 static int kdbm_vntraceaddr( | Line 1974 static int kdbm_vntraceaddr( |
| return 0; | return 0; |
| } | } |
| #endif /* XFS_VNODE_TRACE */ | #endif /* XFS_INODE_TRACE */ |
| static void printinode(struct inode *ip) | static void printinode(struct inode *ip) |
| Line 2393 struct xif { | Line 2393 struct xif { |
| static struct xif xfsidbg_funcs[] = { | static struct xif xfsidbg_funcs[] = { |
| { "vn", kdbm_vn, "<vnode>", "Dump inode/vnode/trace"}, | { "vn", kdbm_vn, "<vnode>", "Dump inode/vnode/trace"}, |
| { "vnode", kdbm_vnode, "<vnode>", "Dump vnode"}, | { "vnode", kdbm_vnode, "<vnode>", "Dump vnode"}, |
| #ifdef XFS_VNODE_TRACE | #ifdef XFS_INODE_TRACE |
| { "vntrace", kdbm_vntrace, "<vntrace>", "Dump vnode Trace"}, | { "iptrace", kdbm_iptrace, "<iptrace>", "Dump inode Trace"}, |
| { "vntraceaddr", kdbm_vntraceaddr, "<vntrace>", | { "iptraceaddr", kdbm_iptraceaddr, "<iptrace>", |
| "Dump vnode Trace by Address"}, | "Dump inode Trace by Address"}, |
| #endif | #endif |
| { "xagf", kdbm_xfs_xagf, "<agf>", | { "xagf", kdbm_xfs_xagf, "<agf>", |
| "Dump XFS allocation group freespace" }, | "Dump XFS allocation group freespace" }, |
| Line 6603 xfsidbg_xnode(xfs_inode_t *ip) | Line 6603 xfsidbg_xnode(xfs_inode_t *ip) |
| kdb_printf("size %lld\n", | kdb_printf("size %lld\n", |
| ip->i_size); | ip->i_size); |
| #ifdef XFS_VNODE_TRACE | #ifdef XFS_INODE_TRACE |
| qprintf(" trace 0x%p\n", ip->i_trace); | qprintf(" trace 0x%p\n", ip->i_trace); |
| #endif | #endif |
| #ifdef XFS_BMAP_TRACE | #ifdef XFS_BMAP_TRACE |