diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 13f8bdec5110d1a7db12b2a262bb5e2ecb0e4f82..982288a1c6ab1b84c59aeb306a7e57a832061292 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2972,6 +2972,9 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
 	bool lock_inode = !(mode & FALLOC_FL_KEEP_SIZE) ||
 			   (mode & FALLOC_FL_PUNCH_HOLE);
 
+	if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
+		return -EOPNOTSUPP;
+
 	if (fc->no_fallocate)
 		return -EOPNOTSUPP;