]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blobdiff - misc/dumpe2fs.c
e2fsprogs: modify dumpe2fs to report free block ranges for bigalloc
[thirdparty/e2fsprogs.git] / misc / dumpe2fs.c
index 7c080ed9fa59fb826135aea5d8622d4510b5e27c..d2d57fb0a731d43ac7cc957d357d0d74520c2070 100644 (file)
@@ -84,8 +84,7 @@ static void print_free(unsigned long group, char * bitmap,
                       unsigned long num, unsigned long offset, int ratio)
 {
        int p = 0;
-       unsigned long i;
-       unsigned long j;
+       unsigned long i, j;
 
        offset /= ratio;
        offset += group * num;
@@ -95,13 +94,14 @@ static void print_free(unsigned long group, char * bitmap,
                        if (p)
                                printf (", ");
                        print_number((i + offset) * ratio);
-                       for (j = i; j < num && !in_use (bitmap, j); j++)
+                       for (j = i + 1; j < num && !in_use(bitmap, j); j++)
                                ;
-                       if (--j != i) {
+                       if (j != i + 1 || ratio > 1) {
                                fputc('-', stdout);
-                               print_number((j + offset) * ratio);
-                               i = j;
+                               print_number(((j - 1 + offset) * ratio) +
+                                            ratio - 1);
                        }
+                       i = j;
                        p = 1;
                }
 }