Commit 209e101b authored by Dave Kleikamp's avatar Dave Kleikamp

JFS: use print_hex_dump() rather than private dump_mem() function

Signed-off-by: default avatarDave Kleikamp <shaggy@linux.vnet.ibm.com>
parent f720e3ba
......@@ -26,34 +26,6 @@
#include "jfs_filsys.h"
#include "jfs_debug.h"
#ifdef CONFIG_JFS_DEBUG
void dump_mem(char *label, void *data, int length)
{
int i, j;
int *intptr = data;
char *charptr = data;
char buf[10], line[80];
printk("%s: dump of %d bytes of data at 0x%p\n\n", label, length,
data);
for (i = 0; i < length; i += 16) {
line[0] = 0;
for (j = 0; (j < 4) && (i + j * 4 < length); j++) {
sprintf(buf, " %08x", intptr[i / 4 + j]);
strcat(line, buf);
}
buf[0] = ' ';
buf[2] = 0;
for (j = 0; (j < 16) && (i + j < length); j++) {
buf[1] =
isprint(charptr[i + j]) ? charptr[i + j] : '.';
strcat(line, buf);
}
printk("%s\n", line);
}
}
#endif
#ifdef PROC_FS_JFS /* see jfs_debug.h */
static struct proc_dir_entry *base;
......
......@@ -62,7 +62,6 @@ extern void jfs_proc_clean(void);
extern int jfsloglevel;
extern void dump_mem(char *label, void *data, int length);
extern int jfs_txanchor_read(char *, char **, off_t, int, int *, void *);
/* information message: e.g., configuration, major event */
......@@ -94,7 +93,6 @@ extern int jfs_txanchor_read(char *, char **, off_t, int, int *, void *);
* ---------
*/
#else /* CONFIG_JFS_DEBUG */
#define dump_mem(label,data,length) do {} while (0)
#define ASSERT(p) do {} while (0)
#define jfs_info(fmt, arg...) do {} while (0)
#define jfs_debug(fmt, arg...) do {} while (0)
......
......@@ -890,7 +890,8 @@ int diFree(struct inode *ip)
* the map.
*/
if (iagno >= imap->im_nextiag) {
dump_mem("imap", imap, 32);
printk(KERN_ERR "Dump of imap:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS, imap, 32);
jfs_error(ip->i_sb,
"diFree: inum = %d, iagno = %d, nextiag = %d",
(uint) inum, iagno, imap->im_nextiag);
......
......@@ -1622,16 +1622,22 @@ void jfs_flush_journal(struct jfs_log *log, int wait)
if (!list_empty(&log->synclist)) {
struct logsyncblk *lp;
printk(KERN_ERR "jfs_flush_journal: synclist not empty\n");
list_for_each_entry(lp, &log->synclist, synclist) {
if (lp->xflag & COMMIT_PAGE) {
struct metapage *mp = (struct metapage *)lp;
dump_mem("orphan metapage", lp,
sizeof(struct metapage));
dump_mem("page", mp->page, sizeof(struct page));
printk (KERN_ERR "orphan metapage:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS,
lp, sizeof(struct metapage));
printk (KERN_ERR "page:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS,
mp->page, sizeof(struct page));
}
else {
printk (KERN_ERR "orphan tblock:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS,
lp, sizeof(struct tblock));
}
else
dump_mem("orphan tblock", lp,
sizeof(struct tblock));
}
}
#endif
......
......@@ -472,7 +472,8 @@ add_failed:
printk(KERN_ERR "JFS: bio_add_page failed unexpectedly\n");
goto skip;
dump_bio:
dump_mem("bio", bio, sizeof(*bio));
printk(KERN_ERR "JFS: dump of bio:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS, bio, sizeof(*bio));
skip:
bio_put(bio);
unlock_page(page);
......
......@@ -829,12 +829,17 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
/* Only locks on ipimap or ipaimap should reach here */
/* assert(jfs_ip->fileset == AGGREGATE_I); */
if (jfs_ip->fileset != AGGREGATE_I) {
jfs_err("txLock: trying to lock locked page!");
dump_mem("ip", ip, sizeof(struct inode));
dump_mem("mp", mp, sizeof(struct metapage));
dump_mem("Locker's tblk", tid_to_tblock(tid),
sizeof(struct tblock));
dump_mem("Tlock", tlck, sizeof(struct tlock));
printk(KERN_ERR "txLock: trying to lock locked page!");
printk(KERN_ERR "ip:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS, ip, sizeof(*ip));
printk(KERN_ERR "mp:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS, mp, sizeof(*mp));
printk(KERN_ERR "Locker's tblk:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS,
tid_to_tblock(tid), sizeof(struct tblock));
printk(KERN_ERR "Tlock:\n");
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS, tlck,
sizeof(*tlck));
BUG();
}
INCREMENT(stattx.waitlock); /* statistics */
......
......@@ -590,7 +590,8 @@ static int ea_get(struct inode *inode, struct ea_buffer *ea_buf, int min_size)
size_check:
if (EALIST_SIZE(ea_buf->xattr) != ea_size) {
printk(KERN_ERR "ea_get: invalid extended attribute\n");
dump_mem("xattr", ea_buf->xattr, ea_size);
print_hex_dump(KERN_ERR, DUMP_PREFIX_ADDRESS, ea_buf->xattr,
ea_size);
ea_release(inode, ea_buf);
rc = -EIO;
goto clean_up;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment