I found the non-existing file looked up by _fuse_atomic_open() function will not set negative dentry properly. This issue came to light when I was benchmarking the performance of the second open operation on a non-existing file. Using _fuse_atomic_open() resulted in a 10x performance regression compared to the original fuse_create_open() function. With the previous fuse_create_open() function, when a negative dentry is returned by fuse server. kernel will set the dentry timeout and return with finish_no_open(). The _fuse_atomic_open() function will return ENOENT error instead. Yuan Yao (1): fuse: Fix atomic_open not using negative d_entry fs/fuse/dir.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) -- 2.43.0.429.g432eaa2c6b-goog