#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;
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 */
* ---------
*/
#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)
* 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);
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
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);
/* 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 */
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;