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: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
3e9f88e688
commit
8dc08446d0
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user