OSDN Git Service

mke2fs: don't zero inode table blocks that are already zeroed
authorDarrick J. Wong <darrick.wong@oracle.com>
Sun, 14 Dec 2014 03:01:15 +0000 (22:01 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 14 Dec 2014 03:01:15 +0000 (22:01 -0500)
At mke2fs time, if we discard the device and discard zeroes data,
don't bother zeroing the inode table blocks a second time.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/mke2fs.c

index 0a0d2b3..aeb852f 100644 (file)
@@ -421,12 +421,14 @@ static void write_inode_tables(ext2_filsys fs, int lazy_flag, int itable_zeroed)
                        ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_ZEROED);
                        ext2fs_group_desc_csum_set(fs, i);
                }
-               retval = ext2fs_zero_blocks2(fs, blk, num, &blk, &num);
-               if (retval) {
-                       fprintf(stderr, _("\nCould not write %d "
-                                 "blocks in inode table starting at %llu: %s\n"),
-                               num, blk, error_message(retval));
-                       exit(1);
+               if (!itable_zeroed) {
+                       retval = ext2fs_zero_blocks2(fs, blk, num, &blk, &num);
+                       if (retval) {
+                               fprintf(stderr, _("\nCould not write %d "
+                                         "blocks in inode table starting at %llu: %s\n"),
+                                       num, blk, error_message(retval));
+                               exit(1);
+                       }
                }
                if (sync_kludge) {
                        if (sync_kludge == 1)