Gitweb:
http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=c2d36da5...
Commit: c2d36da56dd1ff6ece11121233eb20f757fa5976
Parent: f2d6124acc5b185d2674171df3deb6077a35111b
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Wed Jul 9 08:43:39 2014 -0500
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Fri Jul 11 14:39:33 2014 -0500
fsck.gfs2: time each of the passes
This patch reports how much time was taken in each pass.
rhbz#1038312
---
gfs2/fsck/main.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/gfs2/fsck/main.c b/gfs2/fsck/main.c
index b4b1a03..ad42b0d 100644
--- a/gfs2/fsck/main.c
+++ b/gfs2/fsck/main.c
@@ -11,6 +11,8 @@
#include <signal.h>
#include <libintl.h>
#include <locale.h>
+#include <sys/time.h>
+#include <time.h>
#define _(String) gettext(String)
#include "copyright.cf"
@@ -244,11 +246,15 @@ static const struct fsck_pass passes[] = {
static int fsck_pass(const struct fsck_pass *p, struct gfs2_sbd *sdp)
{
int ret;
+ struct timeval before, after, diff;
+ time_t runtime;
+ struct tm *run_tm;
if (fsck_abort)
return FSCK_CANCELED;
pass = p->name;
log_notice( _("Starting %s\n"), p->name);
+ gettimeofday(&before, 0);
ret = p->f(sdp);
if (ret)
exit(ret);
@@ -257,7 +263,16 @@ static int fsck_pass(const struct fsck_pass *p, struct gfs2_sbd
*sdp)
log_notice( _("%s interrupted \n"), p->name);
return FSCK_CANCELED;
}
- log_notice( _("%s complete \n"), p->name);
+ gettimeofday(&after, 0);
+ timersub(&after, &before, &diff);
+ runtime = (time_t)diff.tv_sec;
+ run_tm = gmtime(&runtime);
+ log_notice( _("%s completed in "), p->name);
+ if (run_tm->tm_hour)
+ log_notice("%dh", run_tm->tm_hour);
+ if (run_tm->tm_min)
+ log_notice("%dm", run_tm->tm_min);
+ log_notice("%d.%03lds \n", run_tm->tm_sec, diff.tv_usec / 1000);
return 0;
}