summaryrefslogtreecommitdiffstats
path: root/kernel/pid.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2022-06-08 16:22:55 +0200
committerAndreas Gruenbacher <agruenba@redhat.com>2022-06-29 13:07:16 +0200
commit4480c27ca3eaaaae134633a594fba5601da13b4a (patch)
treeaca11ce2bab69d33f063fc50fc3664f3a8da4634 /kernel/pid.c
parent03c765b0e3b4cb5063276b086c76f7a612856a9a (diff)
downloadlinux-4480c27ca3eaaaae134633a594fba5601da13b4a.tar.gz
linux-4480c27ca3eaaaae134633a594fba5601da13b4a.tar.bz2
linux-4480c27ca3eaaaae134633a594fba5601da13b4a.zip
gfs2: Add glockfd debugfs file
When a process has a gfs2 file open, the file is keeping a reference on the underlying gfs2 inode, and the inode is keeping the inode's iopen glock held in shared mode. In other words, the process depends on the iopen glock of each open gfs2 file. Expose those dependencies in a new "glockfd" debugfs file. The new debugfs file contains one line for each gfs2 file descriptor, specifying the tgid, file descriptor number, and glock name, e.g., 1601 6 5/816d This list is compiled by iterating all tasks on the system using find_ge_pid(), and all file descriptors of each task using task_lookup_next_fd_rcu(). To make that work from gfs2, export those two functions. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'kernel/pid.c')
-rw-r--r--kernel/pid.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/pid.c b/kernel/pid.c
index 2fc0a16ec77b..3fbc5e46b721 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -519,6 +519,7 @@ struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
{
return idr_get_next(&ns->idr, &nr);
}
+EXPORT_SYMBOL_GPL(find_ge_pid);
struct pid *pidfd_get_pid(unsigned int fd, unsigned int *flags)
{