ext4: log a resize update to the console every 10 seconds
authorTheodore Ts'o <tytso@mit.edu>
Thu, 13 Sep 2012 14:24:21 +0000 (10:24 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 13 Sep 2012 14:24:21 +0000 (10:24 -0400)
For very long online resizes, a periodic update to the console log is
helpful for debugging and for progress reporting.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/resize.c

index 5932ab5ca53f4c2f70d027be8e361f6dc1fd01a3..3c9367b9bebdadcab66b7b17eb46300a357c2949 100644 (file)
@@ -1869,6 +1869,7 @@ int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count)
        ext4_group_t n_group;
        ext4_fsblk_t o_blocks_count;
        ext4_fsblk_t n_blocks_count_retry = 0;
+       unsigned long last_update_time = 0;
        int err = 0, flexbg_size = 1 << sbi->s_log_groups_per_flex;
        int meta_bg;
 
@@ -1977,6 +1978,13 @@ retry:
         */
        while (ext4_setup_next_flex_gd(sb, flex_gd, n_blocks_count,
                                              flexbg_size)) {
+               if (jiffies - last_update_time > HZ * 10) {
+                       if (last_update_time)
+                               ext4_msg(sb, KERN_INFO,
+                                        "resized to %llu blocks",
+                                        ext4_blocks_count(es));
+                       last_update_time = jiffies;
+               }
                if (ext4_alloc_group_tables(sb, flex_gd, flexbg_size) != 0)
                        break;
                err = ext4_flex_group_add(sb, resize_inode, flex_gd);