From: Fan Yong Date: Sun, 23 Mar 2014 00:10:59 +0000 (+0800) Subject: LU-4917 lfsck: dump layout lfsck correctly X-Git-Tag: 2.5.58~12 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=ac5cd8fb8a08bb76f64bcf3e48e0251612dfb120;p=fs%2Flustre-release.git LU-4917 lfsck: dump layout lfsck correctly We used the phase1 statistics by wrong for the phase2 status. Signed-off-by: Fan Yong Change-Id: I61565c22218728f3e8507f8850a2ed7970146046 Reviewed-on: http://review.whamcloud.com/9984 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin --- diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c index de96726..c808808 100644 --- a/lustre/lfsck/lfsck_layout.c +++ b/lustre/lfsck/lfsck_layout.c @@ -4891,7 +4891,8 @@ static int lfsck_layout_dump(const struct lu_env *env, const struct dt_it_ops *iops; cfs_duration_t duration = cfs_time_current() - lfsck->li_time_last_checkpoint; - __u64 checked = lo->ll_objs_checked_phase1 + com->lc_new_checked; + __u64 checked = lo->ll_objs_checked_phase1 + + com->lc_new_checked; __u64 speed = checked; __u64 new_checked = com->lc_new_checked * HZ; __u32 rtime = lo->ll_run_time_phase1 + @@ -4942,31 +4943,36 @@ static int lfsck_layout_dump(const struct lu_env *env, } else if (lo->ll_status == LS_SCANNING_PHASE2) { cfs_duration_t duration = cfs_time_current() - lfsck->li_time_last_checkpoint; - __u64 checked = lo->ll_objs_checked_phase1 + com->lc_new_checked; - __u64 speed = checked; + __u64 checked = lo->ll_objs_checked_phase2 + + com->lc_new_checked; + __u64 speed1 = lo->ll_objs_checked_phase1; + __u64 speed2 = checked; __u64 new_checked = com->lc_new_checked * HZ; - __u32 rtime = lo->ll_run_time_phase1 + + __u32 rtime = lo->ll_run_time_phase2 + cfs_duration_sec(duration + HALF_SEC); if (duration != 0) do_div(new_checked, duration); + if (lo->ll_run_time_phase1 != 0) + do_div(speed1, lo->ll_run_time_phase1); if (rtime != 0) - do_div(speed, rtime); + do_div(speed2, rtime); rc = snprintf(buf, len, "checked_phase1: "LPU64"\n" "checked_phase2: "LPU64"\n" "run_time_phase1: %u seconds\n" "run_time_phase2: %u seconds\n" "average_speed_phase1: "LPU64" items/sec\n" - "average_speed_phase2: N/A\n" - "real-time_speed_phase1: "LPU64" items/sec\n" - "real-time_speed_phase2: N/A\n" + "average_speed_phase2: "LPU64" items/sec\n" + "real-time_speed_phase1: N/A\n" + "real-time_speed_phase2: "LPU64" items/sec\n" "current_position: "DFID"\n", + lo->ll_objs_checked_phase1, checked, - lo->ll_objs_checked_phase2, + lo->ll_run_time_phase1, rtime, - lo->ll_run_time_phase2, - speed, + speed1, + speed2, new_checked, PFID(&com->lc_fid_latest_scanned_phase2)); if (rc <= 0)