]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blobdiff - debugfs/debugfs.c
debugfs: Fix find_free_block to avoid reporting the block more than once
[thirdparty/e2fsprogs.git] / debugfs / debugfs.c
index 818ce530af3931c342ef88c555a786d6b083cf03..a92933d2012fead7dbf0c1297f69062a4994d145 100644 (file)
@@ -1155,7 +1155,7 @@ void do_unlink(int argc, char *argv[])
 
 void do_find_free_block(int argc, char *argv[])
 {
-       blk_t   free_blk, goal;
+       blk_t   free_blk, goal, first_free = 0;
        int             count;
        errcode_t       retval;
        char            *tmp;
@@ -1191,6 +1191,11 @@ void do_find_free_block(int argc, char *argv[])
        while (count-- > 0) {
                retval = ext2fs_new_block(current_fs, free_blk + 1, 0,
                                          &free_blk);
+               if (first_free) {
+                       if (first_free == free_blk)
+                               break;
+               } else
+                       first_free = free_blk;
                if (retval) {
                        com_err("ext2fs_new_block", retval, 0);
                        return;