diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 6f289fa9cc62..99f9948bf68b 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -1474,6 +1474,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;