On 2/1/24 7:08 AM, Bernd Schubert wrote: > @@ -1591,10 +1616,10 @@ static ssize_t fuse_direct_write_iter(struct kiocb *iocb, struct iov_iter *from) > else { > inode_lock_shared(inode); > > - /* A race with truncate might have come up as the decision for > - * the lock type was done without holding the lock, check again. > + /* > + * Previous check was without any lock and might have raced. > */ > - if (fuse_direct_write_extending_i_size(iocb, from)) { > + if (fuse_dio_wr_exclusive_lock(iocb, from)) { ^ The overall is good. Maybe fuse_io_past_eof() is better to make it a solely cleanup or refactoring. Actually it's already changed back to fuse_io_past_eof() in patch 3/5. -- Thanks, Jingbo