Whamcloud - gitweb
LU-14352 various: only use wake_up_all() on exclusive waitqs
[fs/lustre-release.git] / lustre / ptlrpc / gss / lproc_gss.c
index 8bfdc49..6a319bf 100644 (file)
@@ -155,7 +155,29 @@ ssize_t sptlrpc_krb5_allow_old_client_csum_seq_write(struct file *file,
 }
 LPROC_SEQ_FOPS(sptlrpc_krb5_allow_old_client_csum);
 
-static struct lprocfs_vars gss_debugfs_vars[] = {
+int sptlrpc_gss_check_upcall_ns_seq_show(struct seq_file *m, void *data)
+{
+       seq_printf(m, "%u\n", gss_check_upcall_ns);
+       return 0;
+}
+
+ssize_t sptlrpc_gss_check_upcall_ns_seq_write(struct file *file,
+                                             const char __user *buffer,
+                                             size_t count, loff_t *off)
+{
+       bool val;
+       int rc;
+
+       rc = kstrtobool_from_user(buffer, count, &val);
+       if (rc)
+               return rc;
+
+       gss_check_upcall_ns = val;
+       return count;
+}
+LPROC_SEQ_FOPS(sptlrpc_gss_check_upcall_ns);
+
+static struct ldebugfs_vars gss_debugfs_vars[] = {
        { .name =       "replays",
          .fops =       &gss_proc_oos_fops      },
        { .name =       "init_channel",
@@ -167,6 +189,8 @@ static struct lprocfs_vars gss_debugfs_vars[] = {
 static struct lprocfs_vars gss_lprocfs_vars[] = {
        { .name =       "krb5_allow_old_client_csum",
          .fops =       &sptlrpc_krb5_allow_old_client_csum_fops },
+       { .name =       "gss_check_upcall_ns",
+         .fops =       &sptlrpc_gss_check_upcall_ns_fops },
        { NULL }
 };
 
@@ -203,7 +227,7 @@ gss_lk_proc_dl_seq_write(struct file *file, const char __user *buffer,
 }
 LDEBUGFS_SEQ_FOPS(gss_lk_proc_dl);
 
-static struct lprocfs_vars gss_lk_debugfs_vars[] = {
+static struct ldebugfs_vars gss_lk_debugfs_vars[] = {
        { .name =       "debug_level",
          .fops =       &gss_lk_proc_dl_fops    },
        { NULL }
@@ -211,11 +235,11 @@ static struct lprocfs_vars gss_lk_debugfs_vars[] = {
 
 void gss_exit_tunables(void)
 {
-       if (!IS_ERR_OR_NULL(gss_debugfs_dir_lk))
-               ldebugfs_remove(&gss_debugfs_dir_lk);
+       debugfs_remove_recursive(gss_debugfs_dir_lk);
+       gss_debugfs_dir_lk = NULL;
 
-       if (!IS_ERR_OR_NULL(gss_debugfs_dir))
-               ldebugfs_remove(&gss_debugfs_dir);
+       debugfs_remove_recursive(gss_debugfs_dir);
+       gss_debugfs_dir = NULL;
 
        if (!IS_ERR_OR_NULL(gss_lprocfs_dir))
                lprocfs_remove(&gss_lprocfs_dir);
@@ -227,22 +251,12 @@ int gss_init_tunables(void)
 
        spin_lock_init(&gss_stat_oos.oos_lock);
 
-       gss_debugfs_dir = ldebugfs_register("gss", sptlrpc_debugfs_dir,
-                                           gss_debugfs_vars, NULL);
-       if (IS_ERR_OR_NULL(gss_debugfs_dir)) {
-               rc = gss_debugfs_dir ? PTR_ERR(gss_debugfs_dir) : -ENOMEM;
-               gss_debugfs_dir = NULL;
-               GOTO(out, rc);
-       }
+       gss_debugfs_dir = debugfs_create_dir("gss", sptlrpc_debugfs_dir);
+       ldebugfs_add_vars(gss_debugfs_dir, gss_debugfs_vars, NULL);
 
-       gss_debugfs_dir_lk = ldebugfs_register("lgss_keyring", gss_debugfs_dir,
-                                              gss_lk_debugfs_vars, NULL);
-       if (IS_ERR(gss_debugfs_dir_lk)) {
-               rc = gss_debugfs_dir_lk ? PTR_ERR(gss_debugfs_dir_lk)
-                                         : -ENOMEM;
-               gss_debugfs_dir_lk = NULL;
-               GOTO(out, rc);
-       }
+       gss_debugfs_dir_lk = debugfs_create_dir("lgss_keyring",
+                                               gss_debugfs_dir);
+       ldebugfs_add_vars(gss_debugfs_dir_lk, gss_lk_debugfs_vars, NULL);
 
        gss_lprocfs_dir = lprocfs_register("gss", sptlrpc_lprocfs_dir,
                                           gss_lprocfs_vars, NULL);