提交 ee32e4f3 编写于 作者: D David Teigland 提交者: Steven Whitehouse

[GFS2] make lock_dlm drop_count tunable in sysfs

We want to be able to change or disable the default drop_count (number at
which the dlm asks gfs to limit the the number of locks it's holding).
Add it to the collection of sysfs tunables for an fs.
Signed-off-by: NDavid Teigland <teigland@redhat.com>
Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
上级 2f708649
...@@ -11,9 +11,6 @@ ...@@ -11,9 +11,6 @@
#include "lock_dlm.h" #include "lock_dlm.h"
extern int gdlm_drop_count;
extern int gdlm_drop_period;
extern struct lm_lockops gdlm_ops; extern struct lm_lockops gdlm_ops;
static int __init init_lock_dlm(void) static int __init init_lock_dlm(void)
...@@ -40,9 +37,6 @@ static int __init init_lock_dlm(void) ...@@ -40,9 +37,6 @@ static int __init init_lock_dlm(void)
return error; return error;
} }
gdlm_drop_count = GDLM_DROP_COUNT;
gdlm_drop_period = GDLM_DROP_PERIOD;
printk(KERN_INFO printk(KERN_INFO
"Lock_DLM (built %s %s) installed\n", __DATE__, __TIME__); "Lock_DLM (built %s %s) installed\n", __DATE__, __TIME__);
return 0; return 0;
......
...@@ -9,8 +9,6 @@ ...@@ -9,8 +9,6 @@
#include "lock_dlm.h" #include "lock_dlm.h"
int gdlm_drop_count;
int gdlm_drop_period;
const struct lm_lockops gdlm_ops; const struct lm_lockops gdlm_ops;
...@@ -24,8 +22,8 @@ static struct gdlm_ls *init_gdlm(lm_callback_t cb, struct gfs2_sbd *sdp, ...@@ -24,8 +22,8 @@ static struct gdlm_ls *init_gdlm(lm_callback_t cb, struct gfs2_sbd *sdp,
if (!ls) if (!ls)
return NULL; return NULL;
ls->drop_locks_count = gdlm_drop_count; ls->drop_locks_count = GDLM_DROP_COUNT;
ls->drop_locks_period = gdlm_drop_period; ls->drop_locks_period = GDLM_DROP_PERIOD;
ls->fscb = cb; ls->fscb = cb;
ls->sdp = sdp; ls->sdp = sdp;
ls->fsflags = flags; ls->fsflags = flags;
......
...@@ -116,6 +116,17 @@ static ssize_t recover_status_show(struct gdlm_ls *ls, char *buf) ...@@ -116,6 +116,17 @@ static ssize_t recover_status_show(struct gdlm_ls *ls, char *buf)
return sprintf(buf, "%d\n", ls->recover_jid_status); return sprintf(buf, "%d\n", ls->recover_jid_status);
} }
static ssize_t drop_count_show(struct gdlm_ls *ls, char *buf)
{
return sprintf(buf, "%d\n", ls->drop_locks_count);
}
static ssize_t drop_count_store(struct gdlm_ls *ls, const char *buf, size_t len)
{
ls->drop_locks_count = simple_strtol(buf, NULL, 0);
return len;
}
struct gdlm_attr { struct gdlm_attr {
struct attribute attr; struct attribute attr;
ssize_t (*show)(struct gdlm_ls *, char *); ssize_t (*show)(struct gdlm_ls *, char *);
...@@ -135,6 +146,7 @@ GDLM_ATTR(first_done, 0444, first_done_show, NULL); ...@@ -135,6 +146,7 @@ GDLM_ATTR(first_done, 0444, first_done_show, NULL);
GDLM_ATTR(recover, 0644, recover_show, recover_store); GDLM_ATTR(recover, 0644, recover_show, recover_store);
GDLM_ATTR(recover_done, 0444, recover_done_show, NULL); GDLM_ATTR(recover_done, 0444, recover_done_show, NULL);
GDLM_ATTR(recover_status, 0444, recover_status_show, NULL); GDLM_ATTR(recover_status, 0444, recover_status_show, NULL);
GDLM_ATTR(drop_count, 0644, drop_count_show, drop_count_store);
static struct attribute *gdlm_attrs[] = { static struct attribute *gdlm_attrs[] = {
&gdlm_attr_proto_name.attr, &gdlm_attr_proto_name.attr,
...@@ -147,6 +159,7 @@ static struct attribute *gdlm_attrs[] = { ...@@ -147,6 +159,7 @@ static struct attribute *gdlm_attrs[] = {
&gdlm_attr_recover.attr, &gdlm_attr_recover.attr,
&gdlm_attr_recover_done.attr, &gdlm_attr_recover_done.attr,
&gdlm_attr_recover_status.attr, &gdlm_attr_recover_status.attr,
&gdlm_attr_drop_count.attr,
NULL, NULL,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册