diff options
Diffstat (limited to 'debugfs/debugfs.c')
| -rw-r--r-- | debugfs/debugfs.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c index b0a7ef3f..c4da2a20 100644 --- a/debugfs/debugfs.c +++ b/debugfs/debugfs.c @@ -1152,7 +1152,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; @@ -1188,6 +1188,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; |
