Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee32e4f3 authored by David Teigland's avatar David Teigland Committed by Steven Whitehouse
Browse files

[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: default avatarDavid Teigland <teigland@redhat.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 2f708649
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -11,9 +11,6 @@

#include "lock_dlm.h"

extern int gdlm_drop_count;
extern int gdlm_drop_period;

extern struct lm_lockops gdlm_ops;

static int __init init_lock_dlm(void)
@@ -40,9 +37,6 @@ static int __init init_lock_dlm(void)
		return error;
	}

	gdlm_drop_count = GDLM_DROP_COUNT;
	gdlm_drop_period = GDLM_DROP_PERIOD;

	printk(KERN_INFO
	       "Lock_DLM (built %s %s) installed\n", __DATE__, __TIME__);
	return 0;
+2 −4
Original line number Diff line number Diff line
@@ -9,8 +9,6 @@

#include "lock_dlm.h"

int gdlm_drop_count;
int gdlm_drop_period;
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)
		return NULL;

	ls->drop_locks_count = gdlm_drop_count;
	ls->drop_locks_period = gdlm_drop_period;
	ls->drop_locks_count = GDLM_DROP_COUNT;
	ls->drop_locks_period = GDLM_DROP_PERIOD;
	ls->fscb = cb;
	ls->sdp = sdp;
	ls->fsflags = flags;
+13 −0
Original line number Diff line number Diff line
@@ -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);
}

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 attribute attr;
	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_done,   0444, recover_done_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[] = {
	&gdlm_attr_proto_name.attr,
@@ -147,6 +159,7 @@ static struct attribute *gdlm_attrs[] = {
	&gdlm_attr_recover.attr,
	&gdlm_attr_recover_done.attr,
	&gdlm_attr_recover_status.attr,
	&gdlm_attr_drop_count.attr,
	NULL,
};