On Fri, Aug 02, 2019 at 05:00:39PM -0500, Goldwyn Rodrigues wrote: > From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> > > Introduce a new btrfs_iomap structure which contains information > about the filesystem between the iomap_begin() and iomap_end() calls. > This contains information about reservations and extent locking. > > This one is a long patch. Most of the code is "inspired" by > fs/btrfs/file.c. To keep the size small, all removals are in > following patches. I can't comment on the btrfs code but this: > +size_t btrfs_buffered_iomap_write(struct kiocb *iocb, struct iov_iter *from) > +{ > + ssize_t written; > + struct inode *inode = file_inode(iocb->ki_filp); > + written = iomap_file_buffered_write(iocb, from, &btrfs_buffered_iomap_ops); > + if (written > 0) > + iocb->ki_pos += written; > + if (iocb->ki_pos > i_size_read(inode)) > + i_size_write(inode, iocb->ki_pos); > + return written; Looks like it fails to handle O_[D]SYNC writes. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx