From 4d328377868e2f8fc2027c2492c3cd53615dffdc Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Graber?= Date: Tue, 19 Dec 2017 15:55:07 -0500 Subject: [PATCH] Add a new /dev/lttng-logger interface MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This is identical to /proc/lttng-logger but has the advantage of working from within containers when the path is made accessible to them. Fixes: #1145 Signed-off-by: Stéphane Graber Signed-off-by: Mathieu Desnoyers --- probes/lttng.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/probes/lttng.c b/probes/lttng.c index 09045fac..449d8a5c 100644 --- a/probes/lttng.c +++ b/probes/lttng.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -105,19 +106,37 @@ static const struct file_operations lttng_logger_operations = { .write = lttng_logger_write, }; +static struct miscdevice logger_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = "lttng-logger", + .mode = 0666, + .fops = <tng_logger_operations +}; + int __init lttng_logger_init(void) { int ret = 0; wrapper_vmalloc_sync_all(); + + /* /dev/lttng-logger */ + ret = misc_register(&logger_dev); + if (ret) { + printk(KERN_ERR "Error creating LTTng logger device\n"); + goto error; + } + + /* /proc/lttng-logger */ lttng_logger_dentry = proc_create_data(LTTNG_LOGGER_FILE, S_IRUGO | S_IWUGO, NULL, <tng_logger_operations, NULL); if (!lttng_logger_dentry) { - printk(KERN_ERR "Error creating LTTng logger file\n"); + printk(KERN_ERR "Error creating LTTng logger proc file\n"); ret = -ENOMEM; - goto error; + goto error_proc; } + + /* Init */ ret = __lttng_events_init__lttng(); if (ret) goto error_events; @@ -125,6 +144,8 @@ int __init lttng_logger_init(void) error_events: remove_proc_entry("lttng-logger", NULL); +error_proc: + misc_deregister(&logger_dev); error: return ret; } @@ -134,4 +155,5 @@ void lttng_logger_exit(void) __lttng_events_exit__lttng(); if (lttng_logger_dentry) remove_proc_entry("lttng-logger", NULL); + misc_deregister(&logger_dev); } -- 2.34.1