summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Schlueter <schlueter.tim@linux.com>2018-11-04 21:00:33 -0800
committerTim Schlueter <schlueter.tim@linux.com>2018-11-04 21:00:33 -0800
commit03c79a9a258669bb18bb54da805353049d4811d0 (patch)
tree5c90579ef10203b49881416d0c3fd3499448ae7d
parentdb8cffeaed01c917863d3f12b0203615a303ab8e (diff)
Added ktime_get_real_seconds() wrapper
Also, changed the last_mount print so it no longer prints out two newlines.
-rw-r--r--include/linux/sched.h9
-rw-r--r--libbcachefs.c12
2 files changed, 20 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index f9bb6a4d..cebaaf8b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -138,6 +138,15 @@ static inline u64 ktime_get_seconds(void)
return ts.tv_sec;
}
+static inline u64 ktime_get_real_seconds(void)
+{
+ struct timespec ts;
+
+ clock_gettime(CLOCK_REALTIME, &ts);
+
+ return ts.tv_sec;
+}
+
static inline struct timespec current_kernel_time(void)
{
struct timespec ts;
diff --git a/libbcachefs.c b/libbcachefs.c
index c8738f40..df27d59d 100644
--- a/libbcachefs.c
+++ b/libbcachefs.c
@@ -403,6 +403,7 @@ static void bch2_sb_print_members(struct bch_sb *sb, struct bch_sb_field *f,
char data_allowed_str[100];
char data_has_str[100];
char group[64];
+ char time_str[64];
if (!bch2_member_exists(m))
continue;
@@ -435,6 +436,15 @@ static void bch2_sb_print_members(struct bch_sb *sb, struct bch_sb_field *f,
if (!data_has_str[0])
strcpy(data_has_str, "(none)");
+ if (last_mount) {
+ struct tm *tm = localtime(&last_mount);
+ size_t err = strftime(time_str, sizeof(time_str), "%c", tm);
+ if (!err)
+ strcpy(time_str, "(formatting error)");
+ } else {
+ strcpy(time_str, "(never)");
+ }
+
printf(" Device %u:\n"
" UUID: %s\n"
" Size: %s\n"
@@ -456,7 +466,7 @@ static void bch2_sb_print_members(struct bch_sb *sb, struct bch_sb_field *f,
pr_units(le16_to_cpu(m->bucket_size), units),
le16_to_cpu(m->first_bucket),
le64_to_cpu(m->nbuckets),
- last_mount ? ctime(&last_mount) : "(never)",
+ time_str,
BCH_MEMBER_STATE(m) < BCH_MEMBER_STATE_NR
? bch2_dev_state[BCH_MEMBER_STATE(m)]