]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
e2freefrag: use 64-bit rbtree bitmaps
authorTheodore Ts'o <tytso@mit.edu>
Fri, 5 Oct 2012 03:30:23 +0000 (23:30 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 5 Oct 2012 03:30:23 +0000 (23:30 -0400)
Enable the use of 64-bit bitmaps, so e2freefrag will work on file
systems with the 64-bit feature enabled.  In addition, enable the
rbtree-based bitmaps, which significantly saves the amount of memory
required (from 97 megs to 1.7 megs for an empty 3T file system) at the
cost of additional CPU overhead (but we will claw back some of the
additional CPU overhead in the next commit).

Addresses-Google-Bug: 7269948

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
misc/e2freefrag.c

index 30af43e2afeebd1ffb7f4f197c824b435c425423..58f1ff5313d0d027eca96bfa288192fe2a7783bc 100644 (file)
@@ -249,13 +249,14 @@ static void collect_info(ext2_filsys fs, struct chunk_info *chunk_info, FILE *f)
 static void open_device(char *device_name, ext2_filsys *fs)
 {
        int retval;
-       int flag = EXT2_FLAG_FORCE;
+       int flag = EXT2_FLAG_FORCE | EXT2_FLAG_64BITS;
 
        retval = ext2fs_open(device_name, flag, 0, 0, unix_io_manager, fs);
        if (retval) {
                com_err(device_name, retval, "while opening filesystem");
                exit(1);
        }
+       (*fs)->default_bitmap_type = EXT2FS_BMAP64_RBTREE;
 }
 #endif