Whamcloud - gitweb
LU-7850 gnilnd: Fix niov calculation with offset kiov
[fs/lustre-release.git] / lnet / klnds / gnilnd / gnilnd_sysctl.c
index 24fd128..aae29d5 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * Copyright (C) 2012 Cray, Inc.
  *
+ * Copyright (c) 2014, Intel Corporation.
+ *
  *   Author: Nic Henke <nic@cray.com>
  *   Author: James Shimek <jshimek@cray.com>
  *
@@ -40,7 +42,9 @@ static kgn_sysctl_data_t        kgnilnd_sysctl;
 
 static struct ctl_table_header *kgnilnd_table_header = NULL;
 
-static int LL_PROC_PROTO(proc_toggle_thread_pause)
+static int
+proc_toggle_thread_pause(struct ctl_table *table, int write,
+                        void __user *buffer, size_t *lenp, loff_t *ppos)
 {
        int  old_val = kgnilnd_sysctl.ksd_pause_trigger;
        int  rc = 0;
@@ -58,17 +62,19 @@ static int LL_PROC_PROTO(proc_toggle_thread_pause)
        }
 
        if (old_val != kgnilnd_sysctl.ksd_pause_trigger) {
-               down(&kgnilnd_data.kgn_quiesce_sem);
+               mutex_lock(&kgnilnd_data.kgn_quiesce_mutex);
                CDEBUG(D_NET, "setting quiesce_trigger %d\n", old_val);
                kgnilnd_data.kgn_quiesce_trigger = kgnilnd_sysctl.ksd_pause_trigger;
                kgnilnd_quiesce_wait("admin sysctl");
-               up(&kgnilnd_data.kgn_quiesce_sem);
+               mutex_unlock(&kgnilnd_data.kgn_quiesce_mutex);
        }
 
        RETURN(rc);
 }
 
-static int LL_PROC_PROTO(proc_hw_quiesce)
+static int
+proc_hw_quiesce(struct ctl_table *table, int write, void __user *buffer,
+               size_t *lenp, loff_t *ppos)
 {
        int              rc = 0;
        kgn_device_t    *dev;
@@ -97,7 +103,9 @@ static int LL_PROC_PROTO(proc_hw_quiesce)
        RETURN(rc);
 }
 
-int LL_PROC_PROTO(proc_trigger_stack_reset)
+static int
+proc_trigger_stack_reset(struct ctl_table *table, int write,
+                        void __user *buffer, size_t *lenp, loff_t *ppos)
 {
        int              rc = 0;
        int              i = 1;
@@ -123,13 +131,16 @@ int LL_PROC_PROTO(proc_trigger_stack_reset)
                i++;
                LCONSOLE((((i) & (-i)) == i) ? D_WARNING : D_NET,
                                "Waiting for stack reset request to clear\n");
-               cfs_pause(cfs_time_seconds(1 * i));
+               set_current_state(TASK_UNINTERRUPTIBLE);
+               schedule_timeout(cfs_time_seconds(1 * i));
        }
 
        RETURN(rc);
 }
 
-static int LL_PROC_PROTO(proc_toggle_rdmaq_override)
+static int
+proc_toggle_rdmaq_override(struct ctl_table *table, int write,
+                          void __user *buffer, size_t *lenp, loff_t *ppos)
 {
        int  old_val = kgnilnd_sysctl.ksd_rdmaq_override;
        int  rc = 0;
@@ -161,7 +172,9 @@ static int LL_PROC_PROTO(proc_toggle_rdmaq_override)
 /* /proc/sys entry point for injecting up/down nid event
  * <up|down> <nid>
  */
-static int LL_PROC_PROTO(proc_peer_state)
+static int
+proc_peer_state(struct ctl_table *table, int write, void __user *buffer,
+               size_t *lenp, loff_t *ppos)
 {
        int             rc;
        int             nid;