static
progress_rpt_t progress_rpt_reports[] = {
-{FMT1, N_("scanning filesystem freespace"), /* 0 */
+{FMT1, N_("zeroing log"), /* 0 */
+ &rpt_fmts[FMT1], &rpt_types[TYPE_BLOCK]},
+{FMT1, N_("scanning filesystem freespace"), /* 1 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT1, N_("scanning agi unlinked lists"), /* 1 */
+{FMT1, N_("scanning agi unlinked lists"), /* 2 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT2, N_("check uncertain AG inodes"), /* 2 */
+{FMT2, N_("check uncertain AG inodes"), /* 3 */
&rpt_fmts[FMT2], &rpt_types[TYPE_AGI_BUCKET]},
-{FMT1, N_("process known inodes and inode discovery"), /* 3 */
+{FMT1, N_("process known inodes and inode discovery"), /* 4 */
&rpt_fmts[FMT1], &rpt_types[TYPE_INODE]},
-{FMT1, N_("process newly discovered inodes"), /* 4 */
+{FMT1, N_("process newly discovered inodes"), /* 5 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT1, N_("setting up duplicate extent list"), /* 5 */
+{FMT1, N_("setting up duplicate extent list"), /* 6 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT1, N_("initialize realtime bitmap"), /* 6 */
+{FMT1, N_("initialize realtime bitmap"), /* 7 */
&rpt_fmts[FMT1], &rpt_types[TYPE_BLOCK]},
-{FMT1, N_("reset realtime bitmaps"), /* 7 */
+{FMT1, N_("reset realtime bitmaps"), /* 8 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT1, N_("check for inodes claiming duplicate blocks"), /* 8 */
+{FMT1, N_("check for inodes claiming duplicate blocks"), /* 9 */
&rpt_fmts[FMT1], &rpt_types[TYPE_INODE]},
-{FMT1, N_("rebuild AG headers and trees"), /* 9 */
+{FMT1, N_("rebuild AG headers and trees"), /* 10 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT1, N_("traversing filesystem"), /* 10 */
+{FMT1, N_("traversing filesystem"), /* 12 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT2, N_("traversing all unattached subtrees"), /* 11 */
+{FMT2, N_("traversing all unattached subtrees"), /* 12 */
&rpt_fmts[FMT2], &rpt_types[TYPE_DIR]},
-{FMT2, N_("moving disconnected inodes to lost+found"), /* 12 */
+{FMT2, N_("moving disconnected inodes to lost+found"), /* 13 */
&rpt_fmts[FMT2], &rpt_types[TYPE_INODE]},
-{FMT1, N_("verify and correct link counts"), /* 13 */
+{FMT1, N_("verify and correct link counts"), /* 14 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]},
-{FMT1, N_("verify link counts"), /* 14 */
+{FMT1, N_("verify link counts"), /* 15 */
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]}
};
*/
pthread_mutex_init(&global_msgs.mutex, NULL);
- global_msgs.format = NULL;
+ /* Make sure the format is set to the first phase and not NULL */
+ global_msgs.format = &progress_rpt_reports[PROG_FMT_ZERO_LOG];
global_msgs.count = glob_agcount;
global_msgs.interval = report_interval;
global_msgs.done = prog_rpt_done;
#define PHASE_END 1
-#define PROG_FMT_SCAN_AG 0 /* Phase 2 */
+#define PROG_FMT_ZERO_LOG 0 /* Phase 2 */
+#define PROG_FMT_SCAN_AG 1
-#define PROG_FMT_AGI_UNLINKED 1 /* Phase 3 */
-#define PROG_FMT_UNCERTAIN 2
-#define PROG_FMT_PROCESS_INO 3
-#define PROG_FMT_NEW_INODES 4
+#define PROG_FMT_AGI_UNLINKED 2 /* Phase 3 */
+#define PROG_FMT_UNCERTAIN 3
+#define PROG_FMT_PROCESS_INO 4
+#define PROG_FMT_NEW_INODES 5
-#define PROG_FMT_DUP_EXTENT 5 /* Phase 4 */
-#define PROG_FMT_INIT_RTEXT 6
-#define PROG_FMT_RESET_RTBM 7
-#define PROG_FMT_DUP_BLOCKS 8
+#define PROG_FMT_DUP_EXTENT 6 /* Phase 4 */
+#define PROG_FMT_INIT_RTEXT 7
+#define PROG_FMT_RESET_RTBM 8
+#define PROG_FMT_DUP_BLOCKS 9
-#define PROG_FMT_REBUILD_AG 9 /* Phase 5 */
+#define PROG_FMT_REBUILD_AG 10 /* Phase 5 */
-#define PROG_FMT_TRAVERSAL 10 /* Phase 6 */
-#define PROG_FMT_TRAVERSSUB 11
-#define PROG_FMT_DISCONINODE 12
+#define PROG_FMT_TRAVERSAL 11 /* Phase 6 */
+#define PROG_FMT_TRAVERSSUB 12
+#define PROG_FMT_DISCONINODE 13
-#define PROGRESS_FMT_CORR_LINK 13 /* Phase 7 */
-#define PROGRESS_FMT_VRFY_LINK 14
+#define PROGRESS_FMT_CORR_LINK 14 /* Phase 7 */
+#define PROGRESS_FMT_VRFY_LINK 15
#define DURATION_BUF_SIZE 512