Whamcloud - gitweb
LU-13449 tgt: fix recovery timer comparisons
[fs/lustre-release.git] / lustre / obdclass / lprocfs_status_server.c
index d4e59e0..9c38196 100644 (file)
@@ -72,11 +72,6 @@ struct dentry *ldebugfs_add_symlink(const char *name, const char *target,
        va_end(ap);
 
        entry = debugfs_create_symlink(name, parent, dest);
-       if (IS_ERR_OR_NULL(entry)) {
-               CERROR("LdebugFS: Could not create symbolic link from %s to %s\n",
-                      name, dest);
-               entry = NULL;
-       }
 
        OBD_FREE(dest, MAX_STRING_SIZE + 1);
 no_entry:
@@ -167,6 +162,7 @@ static int obd_export_flags2str(struct obd_export *exp, struct seq_file *m)
        flag2str(exp, in_recovery);
        flag2str(exp, disconnected);
        flag2str(exp, connecting);
+       flag2str(exp, no_recovery);
 
        return 0;
 }
@@ -720,11 +716,12 @@ int lprocfs_recovery_status_seq_show(struct seq_file *m, void *data)
        if (obd->obd_recovering == 0) {
                seq_printf(m, "COMPLETE\n");
                seq_printf(m, "recovery_start: %lld\n",
-                          (s64)obd->obd_recovery_start);
+                          (s64)ktime_get_real_seconds() -
+                          (ktime_get_seconds() - obd->obd_recovery_start));
                seq_printf(m, "recovery_duration: %lld\n",
                           obd->obd_recovery_end ?
                           obd->obd_recovery_end - obd->obd_recovery_start :
-                          ktime_get_real_seconds() - obd->obd_recovery_start);
+                          ktime_get_seconds() - obd->obd_recovery_start);
                /* Number of clients that have completed recovery */
                seq_printf(m, "completed_clients: %d/%d\n",
                           atomic_read(&obd->obd_max_recoverable_clients) -
@@ -755,9 +752,11 @@ int lprocfs_recovery_status_seq_show(struct seq_file *m, void *data)
                        seq_printf(m, "non-ready MDTs: %s\n",
                                   buf ? buf : "unknown (not enough RAM)");
                        seq_printf(m, "recovery_start: %lld\n",
-                                  (s64)obd->obd_recovery_start);
+                                  (s64)ktime_get_real_seconds() -
+                                  (ktime_get_seconds() -
+                                   obd->obd_recovery_start));
                        seq_printf(m, "time_waited: %lld\n",
-                                  (s64)(ktime_get_real_seconds() -
+                                  (s64)(ktime_get_seconds() -
                                         obd->obd_recovery_start));
                }
 
@@ -775,14 +774,15 @@ int lprocfs_recovery_status_seq_show(struct seq_file *m, void *data)
        }
 
        seq_printf(m, "RECOVERING\n");
-       seq_printf(m, "recovery_start: %lld\n", (s64)obd->obd_recovery_start);
+       seq_printf(m, "recovery_start: %lld\n", (s64)ktime_get_real_seconds() -
+                  (ktime_get_seconds() - obd->obd_recovery_start));
        seq_printf(m, "time_remaining: %lld\n",
-                  ktime_get_real_seconds() >=
+                  ktime_get_seconds() >=
                   obd->obd_recovery_start +
                   obd->obd_recovery_timeout ? 0 :
                   (s64)(obd->obd_recovery_start +
                         obd->obd_recovery_timeout -
-                        ktime_get_real_seconds()));
+                        ktime_get_seconds()));
        seq_printf(m, "connected_clients: %d/%d\n",
                   atomic_read(&obd->obd_connected_clients),
                   atomic_read(&obd->obd_max_recoverable_clients));
@@ -870,7 +870,7 @@ ssize_t recovery_time_soft_show(struct kobject *kobj, struct attribute *attr,
        struct obd_device *obd = container_of(kobj, struct obd_device,
                                              obd_kset.kobj);
 
-       return scnprintf(buf, PAGE_SIZE, "%ld\n", obd->obd_recovery_timeout);
+       return scnprintf(buf, PAGE_SIZE, "%d\n", obd->obd_recovery_timeout);
 }
 EXPORT_SYMBOL(recovery_time_soft_show);
 
@@ -898,7 +898,7 @@ ssize_t recovery_time_hard_show(struct kobject *kobj, struct attribute *attr,
        struct obd_device *obd = container_of(kobj, struct obd_device,
                                              obd_kset.kobj);
 
-       return scnprintf(buf, PAGE_SIZE, "%ld\n", obd->obd_recovery_time_hard);
+       return scnprintf(buf, PAGE_SIZE, "%d\n", obd->obd_recovery_time_hard);
 }
 EXPORT_SYMBOL(recovery_time_hard_show);