]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/ftrace: Fix eventfs ownership testcase to find mount point
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Wed, 4 Sep 2024 15:30:21 +0000 (00:30 +0900)
committerShuah Khan <skhan@linuxfoundation.org>
Wed, 4 Sep 2024 21:08:18 +0000 (15:08 -0600)
Fix eventfs ownership testcase to find mount point if stat -c "%m" failed.
This can happen on the system based on busybox. In this case, this will
try to use the current working directory, which should be a tracefs top
directory (and eventfs is mounted as a part of tracefs.)
If it does not work, the test is skipped as UNRESOLVED because of
the environmental problem.

Fixes: ee9793be08b1 ("tracing/selftests: Add ownership modification tests for eventfs")
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/ftrace/test.d/00basic/test_ownership.tc

index 71e43a92352ad6473591d586309e7e5bb89d8d3e..094419e190c29ee2c7f716f914d76226a6ca95a3 100644 (file)
@@ -6,6 +6,18 @@ original_group=`stat -c "%g" .`
 original_owner=`stat -c "%u" .`
 
 mount_point=`stat -c '%m' .`
+
+# If stat -c '%m' does not work (e.g. busybox) or failed, try to use the
+# current working directory (which should be a tracefs) as the mount point.
+if [ ! -d "$mount_point" ]; then
+       if mount | grep -qw $PWD ; then
+               mount_point=$PWD
+       else
+               # If PWD doesn't work, that is an environmental problem.
+               exit_unresolved
+       fi
+fi
+
 mount_options=`mount | grep "$mount_point" | sed -e 's/.*(\(.*\)).*/\1/'`
 
 # find another owner and group that is not the original