Whamcloud - gitweb
Fix compile error and warnings for old gcc versions
[tools/e2fsprogs.git] / debugfs / unused.c
index a3de6c8..4cb1191 100644 (file)
@@ -1,10 +1,11 @@
 /*
  * unused.c --- quick and dirty unused space dumper
- * 
+ *
  * Copyright (C) 1997 Theodore Ts'o.  This file may be redistributed
  * under the terms of the GNU Public License.
  */
 
+#include "config.h"
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -17,7 +18,7 @@
 #include <sys/types.h>
 #ifdef HAVE_GETOPT_H
 #include <getopt.h>
-#else 
+#else
 extern int optind;
 extern char *optarg;
 #endif
@@ -26,16 +27,20 @@ extern char *optarg;
 
 void do_dump_unused(int argc EXT2FS_ATTR((unused)), char **argv)
 {
-       unsigned long   blk;
-       unsigned char buf[32768];
+       blk64_t         blk;
+       unsigned char   buf[EXT2_MAX_BLOCK_SIZE];
        unsigned int    i;
        errcode_t       retval;
 
+       if (common_args_process(argc, argv, 1, 1,
+                               "dump_unused", "", 0))
+               return;
+
        for (blk=current_fs->super->s_first_data_block;
-            blk < current_fs->super->s_blocks_count; blk++) {
-               if (ext2fs_test_block_bitmap(current_fs->block_map,blk))
+            blk < ext2fs_blocks_count(current_fs->super); blk++) {
+               if (ext2fs_test_block_bitmap2(current_fs->block_map,blk))
                        continue;
-               retval = io_channel_read_blk(current_fs->io, blk, 1, buf);
+               retval = io_channel_read_blk64(current_fs->io, blk, 1, buf);
                if (retval) {
                        com_err(argv[0], retval, "While reading block\n");
                        return;
@@ -45,7 +50,7 @@ void do_dump_unused(int argc EXT2FS_ATTR((unused)), char **argv)
                                break;
                if (i >= current_fs->blocksize)
                        continue;
-               printf("\nUnused block %lu contains non-zero data:\n\n",
+               printf("\nUnused block %llu contains non-zero data:\n\n",
                       blk);
                for (i=0; i < current_fs->blocksize; i++)
                        fputc(buf[i], stdout);