Hello, I see that you have added multi-queue support for virtio-fs, thanks for this work. >From your patch's commit log, your host is x86-64, dpu is arm64, but there're differences about O_DIRECT and O_DIRECTORY between these two architectures. Test program: #define _GNU_SOURCE #include <stdio.h> #include <fcntl.h> int main(void) { printf("O_DIRECT:%o\n", O_DIRECT); printf("O_DIRECTORY:%o\n", O_DIRECTORY); return 0; } In x86-64, this test program outputs: O_DIRECT:40000 O_DIRECTORY:200000 But in arm64, it outpus: O_DIRECT:200000 O_DIRECTORY:40000 In kernel fuse module, fuse_create_in->flags will used to hold open(2)'s flags, then a O_DIRECT flag from host(x86) would be treated as O_DIRECTORY in dpu(arm64), which seems a serious bug. >From your fio job, you use libaio engine, so it's assumed that direct-io is enabled, so I wonder why you don't get errors. Could you please try below command in your virtio-fs mount point: dd if=/dev/zero of=tst_file bs=4096 count=1 oflag=direct to see whether it occurs any error. Regards, Xiaoguang Wang