提交 4ec941d6 编写于 作者: A Alexander Zarochentsev 提交者: Greg Kroah-Hartman

staging: lustre: libcfs: remove lnet upcall code

Removing lnet upcall infrastructure completely
as nobody uses it anymore. The upcall causes a delay
before calling BUG() and might even cause a hang
making getting a crash dump unreliable or containing
outdated info.
Signed-off-by: NAlexander Zarochentsev <alexander.zarochentsev@seagate.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8418
Seagate-bug-id: MRP-2939
Reviewed-on: http://review.whamcloud.com/21440Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com>
Reviewed-by: NJames Simmons <uja.ornl@yahoo.com>
Reviewed-by: NOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: NJames Simmons <jsimmons@infradead.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 989a0d7d
......@@ -125,7 +125,6 @@ extern struct miscdevice libcfs_dev;
/**
* The path of debug log dump upcall script.
*/
extern char lnet_upcall[1024];
extern char lnet_debug_log_upcall[1024];
extern struct cfs_wi_sched *cfs_sched_rehash;
......
......@@ -169,8 +169,6 @@ do { \
#define ntohs(x) ___ntohs(x)
#endif
void libcfs_run_upcall(char **argv);
void libcfs_run_lbug_upcall(struct libcfs_debug_msg_data *msg);
void libcfs_debug_dumplog(void);
int libcfs_debug_init(unsigned long bufsize);
int libcfs_debug_cleanup(void);
......
......@@ -57,7 +57,6 @@
#include <linux/kallsyms.h>
char lnet_upcall[1024] = "/usr/lib/lustre/lnet_upcall";
char lnet_debug_log_upcall[1024] = "/usr/lib/lustre/lnet_debug_log_upcall";
/**
......@@ -92,58 +91,6 @@ void libcfs_run_debug_log_upcall(char *file)
}
}
void libcfs_run_upcall(char **argv)
{
int rc;
int argc;
static const char * const envp[] = {
"HOME=/",
"PATH=/sbin:/bin:/usr/sbin:/usr/bin",
NULL
};
argv[0] = lnet_upcall;
argc = 1;
while (argv[argc])
argc++;
LASSERT(argc >= 2);
rc = call_usermodehelper(argv[0], argv, (char **)envp, 1);
if (rc < 0 && rc != -ENOENT) {
CERROR("Error %d invoking LNET upcall %s %s%s%s%s%s%s%s%s; check /sys/kernel/debug/lnet/upcall\n",
rc, argv[0], argv[1],
argc < 3 ? "" : ",", argc < 3 ? "" : argv[2],
argc < 4 ? "" : ",", argc < 4 ? "" : argv[3],
argc < 5 ? "" : ",", argc < 5 ? "" : argv[4],
argc < 6 ? "" : ",...");
} else {
CDEBUG(D_HA, "Invoked LNET upcall %s %s%s%s%s%s%s%s%s\n",
argv[0], argv[1],
argc < 3 ? "" : ",", argc < 3 ? "" : argv[2],
argc < 4 ? "" : ",", argc < 4 ? "" : argv[3],
argc < 5 ? "" : ",", argc < 5 ? "" : argv[4],
argc < 6 ? "" : ",...");
}
}
void libcfs_run_lbug_upcall(struct libcfs_debug_msg_data *msgdata)
{
char *argv[6];
char buf[32];
snprintf(buf, sizeof(buf), "%d", msgdata->msg_line);
argv[1] = "LBUG";
argv[2] = (char *)msgdata->msg_file;
argv[3] = (char *)msgdata->msg_fn;
argv[4] = buf;
argv[5] = NULL;
libcfs_run_upcall(argv);
}
EXPORT_SYMBOL(libcfs_run_lbug_upcall);
/* coverity[+kill] */
void __noreturn lbug_with_loc(struct libcfs_debug_msg_data *msgdata)
{
......@@ -158,7 +105,6 @@ void __noreturn lbug_with_loc(struct libcfs_debug_msg_data *msgdata)
dump_stack();
if (!libcfs_panic_on_lbug)
libcfs_debug_dumplog();
libcfs_run_lbug_upcall(msgdata);
if (libcfs_panic_on_lbug)
panic("LBUG");
set_task_state(current, TASK_UNINTERRUPTIBLE);
......
......@@ -365,14 +365,6 @@ static struct ctl_table lnet_table[] = {
.mode = 0444,
.proc_handler = &proc_cpt_table,
},
{
.procname = "upcall",
.data = lnet_upcall,
.maxlen = sizeof(lnet_upcall),
.mode = 0644,
.proc_handler = &proc_dostring,
},
{
.procname = "debug_log_upcall",
.data = lnet_debug_log_upcall,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册