commit f6d68366654176541487a8916c3b61c5b1207736 Author: William Cohen Date: Mon Nov 19 14:23:15 2018 -0500 Adjust the vfs_open to provide cred variable with 4.18 kernels The kernel's git commit ae2bb293a3e8adbc54d08cede5afc22929030c03 removed the cred argument from the vfs_open. Thus, there is no $cred target variable available. This missing target variable lives on as a field in the $file target variable. The patch makes the tapset use that field if the $cred target variable is not available. Fixing this allows the slowvfs.stp example to work with newer linux 4.18 kernels. diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp index 1fe71ae..7505dfa 100644 --- a/tapset/linux/vfs.stp +++ b/tapset/linux/vfs.stp @@ -1296,7 +1296,7 @@ probe vfs.open = kernel.function("vfs_open") ? { name = "vfs.open" path = $path - cred = $cred + cred = @defined($cred) ? $cred : $file->f_cred pathname = fullpath_struct_path($path) argstr = sprintf("%s, %p", pathname, $cred) } @@ -1311,6 +1311,6 @@ probe vfs.open.return = kernel.function("vfs_open").return ? error_str = error ? errno_str(error) : "" path = @entry($path) - cred = @entry($cred) + cred = @entry(@defined($cred) ? $cred : $file->f_cred) pathname = fullpath_struct_path(@entry($path)) }