Whamcloud - gitweb
e2fsck: do not forget to discard last block group
authorLukas Czerner <lczerner@redhat.com>
Mon, 5 Mar 2012 07:49:34 +0000 (08:49 +0100)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 11 Mar 2012 19:38:23 +0000 (15:38 -0400)
Previously when running e2fsck with '-E discard' argument the end of
the last group has not been discarded. This patch fixes it so we
always discard the end of the last group if needed.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e2fsck/pass5.c

index ca438cb..e25f080 100644 (file)
@@ -387,6 +387,15 @@ redo_counts:
                if ((blocks == fs->super->s_clusters_per_group) ||
                    (EXT2FS_B2C(fs, i) ==
                     EXT2FS_B2C(fs, ext2fs_blocks_count(fs->super)-1))) {
+                       /*
+                        * If the last block of this group is free, then we can
+                        * discard it as well.
+                        */
+                       if (!bitmap && i >= first_free)
+                               e2fsck_discard_blocks(ctx, first_free,
+                                                     (i - first_free) + 1);
+                       first_free = ext2fs_blocks_count(fs->super);
+
                        free_array[group] = group_free;
                        group ++;
                        blocks = 0;