summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYouling Tang <tangyouling@kylinos.cn>2024-06-20 11:23:33 +0800
committerChristian Brauner <brauner@kernel.org>2024-06-25 11:15:48 +0200
commit9b6a14f08b4875aa22ea0b5bc35042e2580b311b (patch)
tree3156ae785134354ca3c82002a6e3da6249f7b745
parent5e362bd5eecdd7ccafc9611a108a53423ccd5065 (diff)
fs: Export in_group_or_capable()
Export in_group_or_capable() as a VFS helper function. Signed-off-by: Youling Tang <tangyouling@kylinos.cn> Link: https://lore.kernel.org/r/20240620032335.147136-1-youling.tang@linux.dev Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/attr.c2
-rw-r--r--fs/inode.c1
-rw-r--r--include/linux/fs.h2
3 files changed, 3 insertions, 2 deletions
diff --git a/fs/attr.c b/fs/attr.c
index 960a310581eb..825007d5cda4 100644
--- a/fs/attr.c
+++ b/fs/attr.c
@@ -17,8 +17,6 @@
#include <linux/filelock.h>
#include <linux/security.h>
-#include "internal.h"
-
/**
* setattr_should_drop_sgid - determine whether the setgid bit needs to be
* removed
diff --git a/fs/inode.c b/fs/inode.c
index 3a41f83a4ba5..e0815acc5abb 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -2538,6 +2538,7 @@ bool in_group_or_capable(struct mnt_idmap *idmap,
return true;
return false;
}
+EXPORT_SYMBOL(in_group_or_capable);
/**
* mode_strip_sgid - handle the sgid bit for non-directories
diff --git a/include/linux/fs.h b/include/linux/fs.h
index bfc1e6407bf6..942cb11dba96 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1942,6 +1942,8 @@ void inode_init_owner(struct mnt_idmap *idmap, struct inode *inode,
extern bool may_open_dev(const struct path *path);
umode_t mode_strip_sgid(struct mnt_idmap *idmap,
const struct inode *dir, umode_t mode);
+bool in_group_or_capable(struct mnt_idmap *idmap,
+ const struct inode *inode, vfsgid_t vfsgid);
/*
* This is the "filldir" function type, used by readdir() to let