Whamcloud - gitweb
Merge branch 'maint' into next
[tools/e2fsprogs.git] / debugfs / logdump.c
index 9a7108a..3034736 100644 (file)
@@ -9,6 +9,7 @@
  * License.
  */
 
+#include "config.h"
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -36,12 +37,12 @@ extern char *optarg;
 
 enum journal_location {JOURNAL_IS_INTERNAL, JOURNAL_IS_EXTERNAL};
 
-#define ANY_BLOCK ((blk_t) -1)
+#define ANY_BLOCK ((blk64_t) -1)
 
-int            dump_all, dump_contents, dump_descriptors;
-blk_t          block_to_dump, bitmap_to_dump, inode_block_to_dump;
-unsigned int   group_to_dump, inode_offset_to_dump;
-ext2_ino_t     inode_to_dump;
+static int             dump_all, dump_contents, dump_descriptors;
+static blk64_t         block_to_dump, bitmap_to_dump, inode_block_to_dump;
+static unsigned int    group_to_dump, inode_offset_to_dump;
+static ext2_ino_t      inode_to_dump;
 
 struct journal_source
 {
@@ -157,11 +158,11 @@ void do_logdump(int argc, char **argv)
                                    / sizeof(struct ext2_inode));
 
                inode_block_to_dump =
-                       current_fs->group_desc[inode_group].bg_inode_table +
+                       ext2fs_inode_table_loc(current_fs, inode_group) +
                        (group_offset / inodes_per_block);
                inode_offset_to_dump = ((group_offset % inodes_per_block)
                                        * sizeof(struct ext2_inode));
-               printf("Inode %u is at group %u, block %u, offset %u\n",
+               printf("Inode %u is at group %u, block %llu, offset %u\n",
                       inode_to_dump, inode_group,
                       inode_block_to_dump, inode_offset_to_dump);
        }
@@ -182,7 +183,7 @@ void do_logdump(int argc, char **argv)
                group_to_dump = ((block_to_dump -
                                  es->s_first_data_block)
                                 / es->s_blocks_per_group);
-               bitmap_to_dump = current_fs->group_desc[group_to_dump].bg_block_bitmap;
+               bitmap_to_dump = ext2fs_block_bitmap_loc(current_fs, group_to_dump);
        }
 
        if (!journal_fn && check_fs_open(argv[0]))
@@ -209,6 +210,7 @@ void do_logdump(int argc, char **argv)
                        memset(&journal_inode, 0, sizeof(struct ext2_inode));
                        memcpy(&journal_inode.i_block[0], es->s_jnl_blocks,
                               EXT2_N_BLOCKS*4);
+                       journal_inode.i_size_high = es->s_jnl_blocks[15];
                        journal_inode.i_size = es->s_jnl_blocks[16];
                        journal_inode.i_links_count = 1;
                        journal_inode.i_mode = LINUX_S_IFREG | 0600;
@@ -368,7 +370,7 @@ static void dump_journal(char *cmdname, FILE *out_file,
                        fprintf(out_file, "\tuuid=%s\n", jsb_buffer);
                        fprintf(out_file, "\tblocksize=%d\n", blocksize);
                        fprintf(out_file, "\tjournal data size %lu\n",
-                               (unsigned long) sb->s_blocks_count);
+                               (unsigned long) ext2fs_blocks_count(sb));
                }
        }
 
@@ -499,7 +501,7 @@ static void dump_descriptor_block(FILE *out_file,
                        break;
 
                tag_block = be32_to_cpu(tag->t_blocknr);
-               tag_flags = be32_to_cpu(tag->t_flags);
+               tag_flags = be16_to_cpu(tag->t_flags);
 
                if (!(tag_flags & JFS_FLAG_SAME_UUID))
                        offset += 16;
@@ -619,10 +621,10 @@ static void dump_metadata_block(FILE *out_file, struct journal_source *source,
                int offset;
 
                super = current_fs->super;
-               offset = ((fs_blocknr - super->s_first_data_block) %
+               offset = ((block_to_dump - super->s_first_data_block) %
                          super->s_blocks_per_group);
 
-               fprintf(out_file, "    (block bitmap for block %u: "
+               fprintf(out_file, "    (block bitmap for block %llu: "
                        "block is %s)\n",
                        block_to_dump,
                        ext2fs_test_bit(offset, buf) ? "SET" : "CLEAR");