Commit 8dc08446 authored by Oleg Drokin's avatar Oleg Drokin Committed by Greg Kroah-Hartman

staging/lustre/libcfs: get rid of debugfs/lnet/debug_mb

It's just a fancy libcfs_debug_mb module parameter wrapper,
so just add debug buffer size check and resizing and the same
functionality now would be accessible via
/sys/module/libcfs/parameters/libcfs_debug_mb

Also add a symlink for backwards compatibility.
Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3e9f88e6
......@@ -57,8 +57,42 @@ module_param(libcfs_debug, int, 0644);
MODULE_PARM_DESC(libcfs_debug, "Lustre kernel debug mask");
EXPORT_SYMBOL(libcfs_debug);
static int libcfs_param_debug_mb_set(const char *val,
const struct kernel_param *kp)
{
int rc;
unsigned num;
rc = kstrtouint(val, 0, &num);
if (rc < 0)
return rc;
if (!*((unsigned int *)kp->arg)) {
*((unsigned int *)kp->arg) = num;
return 0;
}
rc = cfs_trace_set_debug_mb(num);
if (!rc)
*((unsigned int *)kp->arg) = cfs_trace_get_debug_mb();
return rc;
}
/* While debug_mb setting look like unsigned int, in fact
* it needs quite a bunch of extra processing, so we define special
* debugmb parameter type with corresponding methods to handle this case */
static struct kernel_param_ops param_ops_debugmb = {
.set = libcfs_param_debug_mb_set,
.get = param_get_uint,
};
#define param_check_debugmb(name, p) \
__param_check(name, p, unsigned int)
static unsigned int libcfs_debug_mb;
module_param(libcfs_debug_mb, uint, 0644);
module_param(libcfs_debug_mb, debugmb, 0644);
MODULE_PARM_DESC(libcfs_debug_mb, "Total debug buffer size.");
EXPORT_SYMBOL(libcfs_debug_mb);
......@@ -437,8 +471,10 @@ int libcfs_debug_init(unsigned long bufsize)
}
rc = cfs_tracefile_init(max);
if (rc == 0)
if (rc == 0) {
libcfs_register_panic_notifier();
libcfs_debug_mb = cfs_trace_get_debug_mb();
}
return rc;
}
......
......@@ -550,31 +550,6 @@ static int proc_daemon_file(struct ctl_table *table, int write,
__proc_daemon_file);
}
static int __proc_debug_mb(void *data, int write,
loff_t pos, void __user *buffer, int nob)
{
if (!write) {
char tmpstr[32];
int len = snprintf(tmpstr, sizeof(tmpstr), "%d",
cfs_trace_get_debug_mb());
if (pos >= len)
return 0;
return cfs_trace_copyout_string(buffer, nob, tmpstr + pos,
"\n");
}
return cfs_trace_set_debug_mb_usrstr(buffer, nob);
}
static int proc_debug_mb(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)
{
return proc_call_handler(table->data, write, ppos, buffer, lenp,
__proc_debug_mb);
}
static int proc_console_max_delay_cs(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp,
loff_t *ppos)
......@@ -789,11 +764,6 @@ static struct ctl_table lnet_table[] = {
.maxlen = 256,
.proc_handler = &proc_daemon_file,
},
{
.procname = "debug_mb",
.mode = 0644,
.proc_handler = &proc_debug_mb,
},
{
.procname = "force_lbug",
.data = NULL,
......@@ -833,6 +803,8 @@ struct lnet_debugfs_symlink_def lnet_debugfs_symlinks[] = {
"/sys/module/libcfs/parameters/libcfs_panic_on_lbug"},
{ "libcfs_console_backoff",
"/sys/module/libcfs/parameters/libcfs_console_backoff"},
{ "debug_mb",
"/sys/module/libcfs/parameters/libcfs_debug_mb"},
{},
};
......
......@@ -937,18 +937,6 @@ int cfs_trace_set_debug_mb(int mb)
return 0;
}
int cfs_trace_set_debug_mb_usrstr(void __user *usr_str, int usr_str_nob)
{
char str[32];
int rc;
rc = cfs_trace_copyin_string(str, sizeof(str), usr_str, usr_str_nob);
if (rc < 0)
return rc;
return cfs_trace_set_debug_mb(simple_strtoul(str, NULL, 0));
}
int cfs_trace_get_debug_mb(void)
{
int i;
......
......@@ -77,7 +77,6 @@ int cfs_trace_dump_debug_buffer_usrstr(void __user *usr_str, int usr_str_nob);
int cfs_trace_daemon_command(char *str);
int cfs_trace_daemon_command_usrstr(void __user *usr_str, int usr_str_nob);
int cfs_trace_set_debug_mb(int mb);
int cfs_trace_set_debug_mb_usrstr(void __user *usr_str, int usr_str_nob);
int cfs_trace_get_debug_mb(void);
extern void libcfs_debug_dumplog_internal(void *arg);
......
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