[PATCH v4 13/15] fs/fuse: warn if fuse_access is called when idmapped mounts are allowed

Alexander Mikhalitsyn
2024-09-03T15:17:23Z

It is not possible with the current fuse code, but let's protect ourselves
from regressions in the future.

Cc: Christian Brauner <brauner@kernel.org>
Cc: Seth Forshee <sforshee@kernel.org>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Amir Goldstein <amir73il@gmail.com>
Cc: Bernd Schubert <bschubert@ddn.com>
Cc: <linux-fsdevel@vger.kernel.org>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
---
v4:
- this commit added
---
fs/fuse/dir.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index d316223bd00b..dd967402bf12 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1473,6 +1473,14 @@ static int fuse_access(struct inode *inode, int mask)

BUG_ON(mask & MAY_NOT_BLOCK);

+ /*
+ * We should not send FUSE_ACCESS to the userspace
+ * when idmapped mounts are enabled as for this case
+ * we have fc->default_permissions = 1 and access
+ * permission checks are done on the kernel side.
+ */
+ WARN_ON_ONCE(!(fm->sb->s_iflags & SB_I_NOIDMAP));
+
if (fm->fc->no_access)
return 0;

--
2.34.1