[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: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
committed by
Steven Whitehouse
parent
2f708649ba
commit
ee32e4f3d3
@@ -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)
|
|||||||
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 @@
|
|||||||
|
|
||||||
#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,
|
|||||||
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)
|
|||||||
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);
|
|||||||
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[] = {
|
|||||||
&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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user