Commit 0f53c823 authored by Oleg Drokin's avatar Oleg Drokin Committed by Greg Kroah-Hartman

staging/lustre/ldlm: move cancel_unused_locks_before_replay to sysfs

/proc/fs/lustre/ldlm/cancel_unused_locks_before_replay is
moved to /sys/fs/lustre/ldlm/cancel_unused_locks_before_replay
Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 18fd8850
...@@ -1006,8 +1006,35 @@ void ldlm_destroy_export(struct obd_export *exp) ...@@ -1006,8 +1006,35 @@ void ldlm_destroy_export(struct obd_export *exp)
} }
EXPORT_SYMBOL(ldlm_destroy_export); EXPORT_SYMBOL(ldlm_destroy_export);
extern unsigned int ldlm_cancel_unused_locks_before_replay;
static ssize_t cancel_unused_locks_before_replay_show(struct kobject *kobj,
struct attribute *attr,
char *buf)
{
return sprintf(buf, "%d\n", ldlm_cancel_unused_locks_before_replay);
}
static ssize_t cancel_unused_locks_before_replay_store(struct kobject *kobj,
struct attribute *attr,
const char *buffer,
size_t count)
{
int rc;
unsigned long val;
rc = kstrtoul(buffer, 10, &val);
if (rc)
return rc;
ldlm_cancel_unused_locks_before_replay = val;
return count;
}
LUSTRE_RW_ATTR(cancel_unused_locks_before_replay);
/* These are for root of /sys/fs/lustre/ldlm */ /* These are for root of /sys/fs/lustre/ldlm */
struct attribute *ldlm_attrs[] = { static struct attribute *ldlm_attrs[] = {
&lustre_attr_cancel_unused_locks_before_replay.attr,
NULL, NULL,
}; };
......
...@@ -65,8 +65,6 @@ struct proc_dir_entry *ldlm_type_proc_dir = NULL; ...@@ -65,8 +65,6 @@ struct proc_dir_entry *ldlm_type_proc_dir = NULL;
static struct proc_dir_entry *ldlm_ns_proc_dir = NULL; static struct proc_dir_entry *ldlm_ns_proc_dir = NULL;
struct proc_dir_entry *ldlm_svc_proc_dir = NULL; struct proc_dir_entry *ldlm_svc_proc_dir = NULL;
extern unsigned int ldlm_cancel_unused_locks_before_replay;
/* during debug dump certain amount of granted locks for one resource to avoid /* during debug dump certain amount of granted locks for one resource to avoid
* DDOS. */ * DDOS. */
unsigned int ldlm_dump_granted_max = 256; unsigned int ldlm_dump_granted_max = 256;
...@@ -91,8 +89,6 @@ int ldlm_proc_setup(void) ...@@ -91,8 +89,6 @@ int ldlm_proc_setup(void)
{ "dump_namespaces", &ldlm_dump_ns_fops, NULL, 0222 }, { "dump_namespaces", &ldlm_dump_ns_fops, NULL, 0222 },
{ "dump_granted_max", &ldlm_rw_uint_fops, { "dump_granted_max", &ldlm_rw_uint_fops,
&ldlm_dump_granted_max }, &ldlm_dump_granted_max },
{ "cancel_unused_locks_before_replay", &ldlm_rw_uint_fops,
&ldlm_cancel_unused_locks_before_replay },
{ NULL } }; { NULL } };
LASSERT(ldlm_ns_proc_dir == NULL); LASSERT(ldlm_ns_proc_dir == NULL);
......
...@@ -190,3 +190,13 @@ Contact: "Oleg Drokin" <oleg.drokin@intel.com> ...@@ -190,3 +190,13 @@ Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description: Description:
Controls extended attributes client-side cache. Controls extended attributes client-side cache.
1 to enable, 0 to disable. 1 to enable, 0 to disable.
What: /sys/fs/lustre/ldlm/cancel_unused_locks_before_replay
Date: May 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description:
Controls if client should replay unused locks during recovery
If a client tends to have a lot of unused locks in LRU,
recovery times might become prolonged.
1 - just locally cancel unused locks (default)
0 - replay unused locks.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment