btrfs-progs: scrub: more friendly duration format in status

scrub status for d4dc0da9-e8cc-4bfe-9b6f-2dcf8e0754f5
	scrub started at Sat Jan  1 00:00:01 UTC 2000 and finished after 00:43:05
	total bytes scrubbed: 111.17GiB with 0 errors

Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
David Sterba 2015-06-04 16:49:00 +02:00
parent 4f43aaf4aa
commit 65cc6883c0
1 changed files with 12 additions and 7 deletions

View File

@ -229,6 +229,8 @@ static void _print_scrub_ss(struct scrub_stats *ss)
{
char t[4096];
struct tm tm;
time_t seconds;
unsigned hours;
if (!ss || !ss->t_start) {
printf("\tno stats available\n");
@ -245,18 +247,21 @@ static void _print_scrub_ss(struct scrub_stats *ss)
t[sizeof(t) - 1] = '\0';
printf("\tscrub started at %s", t);
}
seconds = ss->duration;
hours = ss->duration / (60 * 60);
gmtime_r(&seconds, &tm);
strftime(t, sizeof(t), "%M:%S", &tm);
if (ss->finished && !ss->canceled) {
printf(" and finished after %llu seconds\n",
ss->duration);
printf(" and finished after %02u:%s\n", hours, t);
} else if (ss->canceled) {
printf(" and was aborted after %llu seconds\n",
ss->duration);
printf(" and was aborted after %02u:%s\n", hours, t);
} else {
if (ss->in_progress)
printf(", running for %llu seconds\n", ss->duration);
printf(", running for %02u:%s\n", hours, t);
else
printf(", interrupted after %llu seconds, not running\n",
ss->duration);
printf(", interrupted after %02u:%s, not running\n",
hours, t);
}
}