}
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",
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 }
};
}
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 }
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);
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);