#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;