Support print type '%pd/%pD' for print dentry's or file's name.

Signed-off-by: Ye Bin <yebi...@huawei.com>
---
 kernel/trace/trace_fprobe.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/kernel/trace/trace_fprobe.c b/kernel/trace/trace_fprobe.c
index 7d2ddbcfa377..988d68e906ad 100644
--- a/kernel/trace/trace_fprobe.c
+++ b/kernel/trace/trace_fprobe.c
@@ -976,6 +976,7 @@ static int __trace_fprobe_create(int argc, const char 
*argv[])
        char gbuf[MAX_EVENT_NAME_LEN];
        char sbuf[KSYM_NAME_LEN];
        char abuf[MAX_BTF_ARGS_LEN];
+       char *dbuf = NULL;
        bool is_tracepoint = false;
        struct tracepoint *tpoint = NULL;
        struct traceprobe_parse_context ctx = {
@@ -1086,6 +1087,10 @@ static int __trace_fprobe_create(int argc, const char 
*argv[])
                argv = new_argv;
        }
 
+       ret = traceprobe_expand_dentry_args(argc, argv, &dbuf);
+       if (ret)
+               goto out;
+
        /* setup a probe */
        tf = alloc_trace_fprobe(group, event, symbol, tpoint, maxactive,
                                argc, is_return);
@@ -1131,6 +1136,7 @@ static int __trace_fprobe_create(int argc, const char 
*argv[])
        trace_probe_log_clear();
        kfree(new_argv);
        kfree(symbol);
+       kfree(dbuf);
        return ret;
 
 parse_error:
-- 
2.31.1


Reply via email to