Whamcloud - gitweb
LU-5275 lprocfs: reduce scope of params_tree.h
[fs/lustre-release.git] / lustre / ptlrpc / lproc_ptlrpc.c
index ce9f1df..c937066 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2011, 2013, Intel Corporation.
+ * Copyright (c) 2011, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -35,9 +35,6 @@
  */
 #define DEBUG_SUBSYSTEM S_CLASS
 
-#ifndef __KERNEL__
-# include <liblustre.h>
-#endif
 
 #include <obd_support.h>
 #include <obd.h>
@@ -48,7 +45,7 @@
 #include "ptlrpc_internal.h"
 
 
-struct ll_rpc_opcode {
+static struct ll_rpc_opcode {
      __u32       opcode;
      const char *opname;
 } ll_rpc_opcode_table[LUSTRE_MAX_OPCODES] = {
@@ -142,7 +139,7 @@ struct ll_rpc_opcode {
        { LFSCK_QUERY,      "lfsck_query" },
 };
 
-struct ll_eopcode {
+static struct ll_eopcode {
      __u32       opcode;
      const char *opname;
 } ll_eopcode_table[EXTRA_LAST_OPC] = {
@@ -181,13 +178,14 @@ const char *ll_opcode2str(__u32 opcode)
         return ll_rpc_opcode_table[offset].opname;
 }
 
-const char* ll_eopcode2str(__u32 opcode)
+static const char *ll_eopcode2str(__u32 opcode)
 {
         LASSERT(ll_eopcode_table[opcode].opcode == opcode);
         return ll_eopcode_table[opcode].opname;
 }
+
 #ifdef LPROCFS
-void ptlrpc_lprocfs_register(struct proc_dir_entry *root, char *dir,
+static void ptlrpc_lprocfs_register(struct proc_dir_entry *root, char *dir,
                              char *name, struct proc_dir_entry **procroot_ret,
                              struct lprocfs_stats **stats_ret)
 {
@@ -289,7 +287,8 @@ ptlrpc_lprocfs_req_history_max_seq_show(struct seq_file *m, void *n)
 }
 
 static ssize_t
-ptlrpc_lprocfs_req_history_max_seq_write(struct file *file, const char *buffer,
+ptlrpc_lprocfs_req_history_max_seq_write(struct file *file,
+                                        const char __user *buffer,
                                         size_t count, loff_t *off)
 {
        struct seq_file         *m = file->private_data;
@@ -336,8 +335,9 @@ ptlrpc_lprocfs_threads_min_seq_show(struct seq_file *m, void *n)
 }
 
 static ssize_t
-ptlrpc_lprocfs_threads_min_seq_write(struct file *file, const char *buffer,
-                                       size_t count, loff_t *off)
+ptlrpc_lprocfs_threads_min_seq_write(struct file *file,
+                                    const char __user *buffer,
+                                    size_t count, loff_t *off)
 {
        struct seq_file         *m = file->private_data;
        struct ptlrpc_service   *svc = m->private;
@@ -389,7 +389,8 @@ ptlrpc_lprocfs_threads_max_seq_show(struct seq_file *m, void *n)
 }
 
 static ssize_t
-ptlrpc_lprocfs_threads_max_seq_write(struct file *file, const char *buffer,
+ptlrpc_lprocfs_threads_max_seq_write(struct file *file,
+                                    const char __user *buffer,
                                     size_t count, loff_t *off)
 {
        struct seq_file         *m = file->private_data;
@@ -418,12 +419,6 @@ ptlrpc_lprocfs_threads_max_seq_write(struct file *file, const char *buffer,
 LPROC_SEQ_FOPS(ptlrpc_lprocfs_threads_max);
 
 /**
- * \addtogoup nrs
- * @{
- */
-extern struct nrs_core nrs_core;
-
-/**
  * Translates \e ptlrpc_nrs_pol_state values to human-readable strings.
  *
  * \param[in] state The policy state
@@ -643,7 +638,7 @@ out:
  * regular and high-priority (if the service has one) NRS head.
  */
 static ssize_t
-ptlrpc_lprocfs_nrs_seq_write(struct file *file, const char *buffer,
+ptlrpc_lprocfs_nrs_seq_write(struct file *file, const char __user *buffer,
                             size_t count, loff_t *off)
 {
        struct seq_file                *m = file->private_data;
@@ -732,7 +727,7 @@ struct ptlrpc_srh_iterator {
        struct ptlrpc_request   *srhi_req;
 };
 
-int
+static int
 ptlrpc_lprocfs_svc_req_history_seek(struct ptlrpc_service_part *svcpt,
                                    struct ptlrpc_srh_iterator *srhi,
                                    __u64 seq)
@@ -985,7 +980,10 @@ ptlrpc_lprocfs_svc_req_history_open(struct inode *inode, struct file *file)
        struct seq_file *seqf;
        int             rc;
 
-       LPROCFS_ENTRY_CHECK(PDE(inode));
+       rc = LPROCFS_ENTRY_CHECK(inode);
+       if (rc < 0)
+               return rc;
+
        rc = seq_open(file, &sops);
        if (rc)
                return rc;
@@ -1036,7 +1034,7 @@ static int ptlrpc_lprocfs_hp_ratio_seq_show(struct seq_file *m, void *v)
 }
 
 static ssize_t
-ptlrpc_lprocfs_hp_ratio_seq_write(struct file *file, const char *buffer,
+ptlrpc_lprocfs_hp_ratio_seq_write(struct file *file, const char __user *buffer,
                                  size_t count, loff_t *off)
 {
        struct seq_file         *m = file->private_data;
@@ -1182,137 +1180,6 @@ void ptlrpc_lprocfs_unregister_obd(struct obd_device *obd)
 }
 EXPORT_SYMBOL(ptlrpc_lprocfs_unregister_obd);
 
-#ifndef HAVE_ONLY_PROCFS_SEQ
-int lprocfs_wr_ping(struct file *file, const char *buffer,
-                    unsigned long count, void *data)
-{
-        struct obd_device     *obd = data;
-        struct ptlrpc_request *req;
-        int                    rc;
-        ENTRY;
-
-        LPROCFS_CLIMP_CHECK(obd);
-        req = ptlrpc_prep_ping(obd->u.cli.cl_import);
-        LPROCFS_CLIMP_EXIT(obd);
-        if (req == NULL)
-                RETURN(-ENOMEM);
-
-        req->rq_send_state = LUSTRE_IMP_FULL;
-
-        rc = ptlrpc_queue_wait(req);
-
-        ptlrpc_req_finished(req);
-        if (rc >= 0)
-                RETURN(count);
-        RETURN(rc);
-}
-EXPORT_SYMBOL(lprocfs_wr_ping);
-
-int lprocfs_wr_import(struct file *file, const char *buffer,
-                      unsigned long count, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_import *imp = obd->u.cli.cl_import;
-        char *kbuf = NULL;
-        char *uuid;
-        char *ptr;
-        int do_reconn = 1;
-        const char prefix[] = "connection=";
-        const int prefix_len = sizeof(prefix) - 1;
-
-       if (count > PAGE_CACHE_SIZE - 1 || count <= prefix_len)
-                return -EINVAL;
-
-        OBD_ALLOC(kbuf, count + 1);
-        if (kbuf == NULL)
-                return -ENOMEM;
-
-       if (copy_from_user(kbuf, buffer, count))
-                GOTO(out, count = -EFAULT);
-
-        kbuf[count] = 0;
-
-        /* only support connection=uuid::instance now */
-        if (strncmp(prefix, kbuf, prefix_len) != 0)
-                GOTO(out, count = -EINVAL);
-
-        uuid = kbuf + prefix_len;
-        ptr = strstr(uuid, "::");
-        if (ptr) {
-                __u32 inst;
-                char *endptr;
-
-                *ptr = 0;
-                do_reconn = 0;
-                ptr += strlen("::");
-                inst = simple_strtol(ptr, &endptr, 10);
-                if (*endptr) {
-                        CERROR("config: wrong instance # %s\n", ptr);
-                } else if (inst != imp->imp_connect_data.ocd_instance) {
-                        CDEBUG(D_INFO, "IR: %s is connecting to an obsoleted "
-                               "target(%u/%u), reconnecting...\n",
-                               imp->imp_obd->obd_name,
-                               imp->imp_connect_data.ocd_instance, inst);
-                        do_reconn = 1;
-                } else {
-                        CDEBUG(D_INFO, "IR: %s has already been connecting to "
-                               "new target(%u)\n",
-                               imp->imp_obd->obd_name, inst);
-                }
-        }
-
-        if (do_reconn)
-                ptlrpc_recover_import(imp, uuid, 1);
-
-out:
-        OBD_FREE(kbuf, count + 1);
-        return count;
-}
-EXPORT_SYMBOL(lprocfs_wr_import);
-
-int lprocfs_rd_pinger_recov(char *page, char **start, off_t off,
-                            int count, int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_import *imp = obd->u.cli.cl_import;
-        int rc;
-
-        LPROCFS_CLIMP_CHECK(obd);
-        rc = snprintf(page, count, "%d\n", !imp->imp_no_pinger_recover);
-        LPROCFS_CLIMP_EXIT(obd);
-
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_pinger_recov);
-
-int lprocfs_wr_pinger_recov(struct file *file, const char *buffer,
-                      unsigned long count, void *data)
-{
-        struct obd_device *obd = data;
-        struct client_obd *cli = &obd->u.cli;
-        struct obd_import *imp = cli->cl_import;
-        int rc, val;
-
-        rc = lprocfs_write_helper(buffer, count, &val);
-        if (rc < 0)
-                return rc;
-
-        if (val != 0 && val != 1)
-                return -ERANGE;
-
-        LPROCFS_CLIMP_CHECK(obd);
-       spin_lock(&imp->imp_lock);
-       imp->imp_no_pinger_recover = !val;
-       spin_unlock(&imp->imp_lock);
-       LPROCFS_CLIMP_EXIT(obd);
-
-       return count;
-
-}
-EXPORT_SYMBOL(lprocfs_wr_pinger_recov);
-
-#endif /* HAVE_ONLY_PROCFS_SEQ */
-
 ssize_t
 lprocfs_ping_seq_write(struct file *file, const char *buffer,
                       size_t count, loff_t *off)
@@ -1345,8 +1212,8 @@ EXPORT_SYMBOL(lprocfs_ping_seq_write);
  * "echo connection=192.168.0.1@tcp0::instance > .../import".
  */
 ssize_t
-lprocfs_import_seq_write(struct file *file, const char *buffer, size_t count,
-                        loff_t *off)
+lprocfs_import_seq_write(struct file *file, const char __user *buffer,
+                        size_t count, loff_t *off)
 {
        struct seq_file   *m    = file->private_data;
        struct obd_device *obd  = m->private;