Whamcloud - gitweb
tst_extents: Fix 64-bit bugs in do_goto_block()
authorTheodore Ts'o <tytso@mit.edu>
Tue, 20 Jul 2010 15:36:34 +0000 (11:36 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 20 Jul 2010 15:36:34 +0000 (11:36 -0400)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/extent.c

index 030d73a..490dbe8 100644 (file)
@@ -1981,8 +1981,8 @@ void do_goto_block(int argc, char **argv)
        struct ext2fs_extent    extent;
        errcode_t               retval;
        int                     op = EXT2_EXTENT_NEXT_LEAF;
-       blk_t                   blk;
-       int                     level = 0;
+       blk64_t                 blk;
+       int                     level = 0, err;
 
        if (common_extent_args_process(argc, argv, 2, 3, "goto_block",
                                       "block [level]", 0))
@@ -1991,16 +1991,18 @@ void do_goto_block(int argc, char **argv)
        if (strtoblk(argv[0], argv[1], &blk))
                return;
 
-       if (argc == 3)
-               if (strtoblk(argv[0], argv[2], &level))
+       if (argc == 3) {
+               level = parse_ulong(argv[2], argv[0], "level", &err);
+               if (err)
                        return;
+       }
 
        retval = extent_goto(current_handle, level, (blk64_t) blk);
 
        if (retval) {
                com_err(argv[0], retval,
-                       "while trying to go to block %u, level %d",
-                       blk, level);
+                       "while trying to go to block %llu, level %d",
+                       (unsigned long long) blk, level);
                return;
        }