From: Masatake YAMATO Date: Wed, 24 Jan 2024 00:05:47 +0000 (+0900) Subject: lsfd: don't list kernel threads unless --threads is given X-Git-Tag: v2.41-devel~21^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c33da15e1d3fbd03af514b3a58a75e0620e1b8c4;p=thirdparty%2Futil-linux.git lsfd: don't list kernel threads unless --threads is given --- diff --git a/misc-utils/lsfd.1.adoc b/misc-utils/lsfd.1.adoc index 09c181655a..7e7534ef89 100644 --- a/misc-utils/lsfd.1.adoc +++ b/misc-utils/lsfd.1.adoc @@ -653,11 +653,6 @@ List files opened in a QEMU virtual machine: :: # lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)' .... -Hide files associated to kernel threads: :: -.... -# lsfd -Q '!KTHREAD' -.... - List timerfd files expired within 0.5 seconds: :: .... # lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)' diff --git a/misc-utils/lsfd.c b/misc-utils/lsfd.c index 2d04f4c4ab..29e69e1008 100644 --- a/misc-utils/lsfd.c +++ b/misc-utils/lsfd.c @@ -1687,6 +1687,10 @@ static void read_process(struct lsfd_control *ctl, struct path_cxt *pc, proc->kthread = !!(flags & PF_KTHREAD); free(pat); } + if (proc->kthread && !ctl->threads) { + free_proc(proc); + goto out; + } collect_execve_file(pc, proc, ctl->sockets_only); @@ -1735,6 +1739,7 @@ static void read_process(struct lsfd_control *ctl, struct path_cxt *pc, else if (ctl->show_xmode) walk_threads(ctl, pc, pid, proc, parse_proc_syscall); + out: /* Let's be careful with number of open files */ ul_path_close_dirfd(pc); } diff --git a/tests/ts/lsfd/column-kthread b/tests/ts/lsfd/column-kthread index 0b093e96a7..2238ade146 100755 --- a/tests/ts/lsfd/column-kthread +++ b/tests/ts/lsfd/column-kthread @@ -31,7 +31,7 @@ ts_check_prog "ps" ts_cd "$TS_OUTDIR" { - "$TS_CMD_LSFD" -o COMMAND,PID,USER,MODE,TYPE,NAME,KTHREAD \ + "$TS_CMD_LSFD" --threads -o COMMAND,PID,USER,MODE,TYPE,NAME,KTHREAD \ -Q '(PID < 3) and ((ASSOC == "cwd") or (ASSOC == "rtd"))' echo $? } > $TS_OUTPUT 2>&1