- struct fs_db *fsdb = data;
- struct mgs_nidtbl *tbl = &fsdb->fsdb_nidtbl;
- const char *ir_strings[] = IR_STRINGS;
- struct timeval tv_max;
- struct timeval tv;
-
- /* mgs_live_seq_show() already holds fsdb_mutex. */
- ir_state_graduate(fsdb);
-
- seq_printf(seq, "\nimperative_recovery_state:\n");
- seq_printf(seq,
- " state: %s\n"
- " nonir_clients: %d\n"
- " nidtbl_version: %lld\n",
- ir_strings[fsdb->fsdb_ir_state], fsdb->fsdb_nonir_clients,
- tbl->mn_version);
-
- cfs_duration_usec(fsdb->fsdb_notify_total, &tv);
- cfs_duration_usec(fsdb->fsdb_notify_max, &tv_max);
-
- seq_printf(seq, " notify_duration_total: %lu.%06lu\n"
- " notify_duation_max: %lu.%06lu\n"
- " notify_count: %u\n",
- tv.tv_sec, tv.tv_usec,
- tv_max.tv_sec, tv_max.tv_usec,
- fsdb->fsdb_notify_count);
-
- return 0;
+ struct fs_db *fsdb = data;
+ struct mgs_nidtbl *tbl = &fsdb->fsdb_nidtbl;
+ const char *ir_strings[] = IR_STRINGS;
+ struct timespec64 ts_max;
+ struct timespec64 ts;
+
+ /* mgs_live_seq_show() already holds fsdb_mutex. */
+ ir_state_graduate(fsdb);
+
+ seq_printf(seq, "\nimperative_recovery_state:\n");
+ seq_printf(seq,
+ " state: %s\n"
+ " nonir_clients: %d\n"
+ " nidtbl_version: %lld\n",
+ ir_strings[fsdb->fsdb_ir_state], fsdb->fsdb_nonir_clients,
+ tbl->mn_version);
+
+ ts = ktime_to_timespec64(fsdb->fsdb_notify_total);
+ ts_max = ktime_to_timespec64(fsdb->fsdb_notify_max);
+
+ seq_printf(seq, " notify_duration_total: %lld.%09ld\n"
+ " notify_duation_max: %lld.%09ld\n"
+ " notify_count: %u\n",
+ (s64)ts.tv_sec, ts.tv_nsec,
+ (s64)ts_max.tv_sec, ts_max.tv_nsec,
+ fsdb->fsdb_notify_count);
+
+ return 0;