Whamcloud - gitweb
LU-9679 ptlrpc: use OBD_ALLOC_PTR_ARRAY() and FREE
[fs/lustre-release.git] / lustre / ptlrpc / lproc_ptlrpc.c
index 33824a7..ee5e8c3 100644 (file)
@@ -202,10 +202,10 @@ ptlrpc_ldebugfs_register(struct dentry *root, char *dir, char *name,
                         struct lprocfs_stats **stats_ret)
 {
        struct dentry *svc_debugfs_entry;
-        struct lprocfs_stats *svc_stats;
-        int i, rc;
-        unsigned int svc_counter_config = LPROCFS_CNTR_AVGMINMAX |
-                                          LPROCFS_CNTR_STDDEV;
+       struct lprocfs_stats *svc_stats;
+       int i;
+       unsigned int svc_counter_config = LPROCFS_CNTR_AVGMINMAX |
+                                         LPROCFS_CNTR_STDDEV;
 
        LASSERT(!*debugfs_root_ret);
        LASSERT(!*stats_ret);
@@ -215,15 +215,10 @@ ptlrpc_ldebugfs_register(struct dentry *root, char *dir, char *name,
        if (!svc_stats)
                 return;
 
-        if (dir) {
-               svc_debugfs_entry = ldebugfs_register(dir, root, NULL, NULL);
-               if (IS_ERR(svc_debugfs_entry)) {
-                        lprocfs_free_stats(&svc_stats);
-                        return;
-                }
-        } else {
+       if (dir)
+               svc_debugfs_entry = debugfs_create_dir(dir, root);
+       else
                svc_debugfs_entry = root;
-        }
 
         lprocfs_counter_init(svc_stats, PTLRPC_REQWAIT_CNTR,
                              svc_counter_config, "req_waittime", "usec");
@@ -258,16 +253,12 @@ ptlrpc_ldebugfs_register(struct dentry *root, char *dir, char *name,
                                      ll_opcode2str(opcode), "usec");
         }
 
-       rc = ldebugfs_register_stats(svc_debugfs_entry, name, svc_stats);
-       if (rc < 0) {
-               if (dir)
-                       debugfs_remove_recursive(svc_debugfs_entry);
-               lprocfs_free_stats(&svc_stats);
-       } else {
-               if (dir)
-                       *debugfs_root_ret = svc_debugfs_entry;
-               *stats_ret = svc_stats;
-       }
+       debugfs_create_file(name, 0644, svc_debugfs_entry, svc_stats,
+                           &lprocfs_stats_seq_fops);
+
+       if (dir)
+               *debugfs_root_ret = svc_debugfs_entry;
+       *stats_ret = svc_stats;
 }
 
 static int
@@ -568,7 +559,7 @@ static int ptlrpc_lprocfs_nrs_seq_show(struct seq_file *m, void *n)
        num_pols = svc->srv_parts[0]->scp_nrs_reg.nrs_num_pols;
        spin_unlock(&nrs->nrs_lock);
 
-       OBD_ALLOC(infos, num_pols * sizeof(*infos));
+       OBD_ALLOC_PTR_ARRAY(infos, num_pols);
        if (infos == NULL)
                GOTO(out, rc = -ENOMEM);
 again:
@@ -690,7 +681,7 @@ again:
 
 out:
        if (infos)
-               OBD_FREE(infos, num_pols * sizeof(*infos));
+               OBD_FREE_PTR_ARRAY(infos, num_pols);
 
        mutex_unlock(&nrs_core.nrs_mutex);
 
@@ -1081,10 +1072,6 @@ ptlrpc_lprocfs_svc_req_history_open(struct inode *inode, struct file *file)
        struct seq_file *seqf;
        int             rc;
 
-       rc = LPROCFS_ENTRY_CHECK(inode);
-       if (rc < 0)
-               return rc;
-
        rc = seq_open(file, &sops);
        if (rc)
                return rc;
@@ -1097,12 +1084,12 @@ ptlrpc_lprocfs_svc_req_history_open(struct inode *inode, struct file *file)
 /* See also lprocfs_rd_timeouts */
 static int ptlrpc_lprocfs_timeouts_seq_show(struct seq_file *m, void *n)
 {
-       struct ptlrpc_service           *svc = m->private;
-       struct ptlrpc_service_part      *svcpt;
-       time64_t worstt;
-       unsigned int                    cur;
-       unsigned int                    worst;
-       int                             i;
+       struct ptlrpc_service *svc = m->private;
+       struct ptlrpc_service_part *svcpt;
+       time64_t worst_timestamp;
+       timeout_t cur_timeout;
+       timeout_t worst_timeout;
+       int i;
 
        if (AT_OFF) {
                seq_printf(m, "adaptive timeouts off, using obd_timeout %u\n",
@@ -1111,13 +1098,14 @@ static int ptlrpc_lprocfs_timeouts_seq_show(struct seq_file *m, void *n)
        }
 
        ptlrpc_service_for_each_part(svcpt, i, svc) {
-               cur     = at_get(&svcpt->scp_at_estimate);
-               worst   = svcpt->scp_at_estimate.at_worst_ever;
-               worstt  = svcpt->scp_at_estimate.at_worst_time;
+               cur_timeout = at_get(&svcpt->scp_at_estimate);
+               worst_timeout = svcpt->scp_at_estimate.at_worst_timeout_ever;
+               worst_timestamp = svcpt->scp_at_estimate.at_worst_timestamp;
 
                seq_printf(m, "%10s : cur %3u  worst %3u (at %lld, %llds ago) ",
-                          "service", cur, worst, (s64)worstt,
-                          (s64)(ktime_get_real_seconds() - worstt));
+                          "service", cur_timeout, worst_timeout,
+                          worst_timestamp,
+                          ktime_get_real_seconds() - worst_timestamp);
 
                lprocfs_at_hist_helper(m, &svcpt->scp_at_estimate);
        }
@@ -1228,8 +1216,6 @@ void ptlrpc_ldebugfs_register_service(struct dentry *entry,
                 .release     = lprocfs_seq_release,
         };
 
-        int rc;
-
        ptlrpc_ldebugfs_register(entry, svc->srv_name, "stats",
                                 &svc->srv_debugfs_entry, &svc->srv_stats);
        if (!svc->srv_debugfs_entry)
@@ -1237,17 +1223,15 @@ void ptlrpc_ldebugfs_register_service(struct dentry *entry,
 
        ldebugfs_add_vars(svc->srv_debugfs_entry, lproc_vars, NULL);
 
-       rc = ldebugfs_seq_create(svc->srv_debugfs_entry, "req_history",
-                                0400, &req_history_fops, svc);
-       if (rc)
-               CWARN("Error adding the req_history file\n");
+       debugfs_create_file("req_history", 0400, svc->srv_debugfs_entry, svc,
+                           &req_history_fops);
 }
 
-void ptlrpc_lprocfs_register_obd(struct obd_device *obddev)
+void ptlrpc_lprocfs_register_obd(struct obd_device *obd)
 {
-       ptlrpc_ldebugfs_register(obddev->obd_debugfs_entry, NULL, "stats",
-                                &obddev->obd_svc_debugfs_entry,
-                                &obddev->obd_svc_stats);
+       ptlrpc_ldebugfs_register(obd->obd_debugfs_entry, NULL, "stats",
+                                &obd->obd_svc_debugfs_entry,
+                                &obd->obd_svc_stats);
 }
 EXPORT_SYMBOL(ptlrpc_lprocfs_register_obd);
 
@@ -1346,7 +1330,9 @@ EXPORT_SYMBOL(ping_show);
 ssize_t ping_store(struct kobject *kobj, struct attribute *attr,
                   const char *buffer, size_t count)
 {
-       return ping_show(kobj, attr, (char *)buffer);
+       int rc = ping_show(kobj, attr, (char *)buffer);
+
+       return (rc < 0) ? rc : count;
 }
 EXPORT_SYMBOL(ping_store);