On Thu, Aug 29, 2019 at 08:32:18AM +1000, Dave Chinner wrote: > On Wed, Aug 28, 2019 at 10:26:19PM +0200, Jan Kara wrote: > > On Mon 12-08-19 22:53:26, Matthew Bobrowski wrote: > > > @@ -235,6 +244,34 @@ static ssize_t ext4_write_checks(struct kiocb *iocb, struct iov_iter *from) > > > return iov_iter_count(from); > > > } > > > > > > +static ssize_t ext4_buffered_write_iter(struct kiocb *iocb, > > > + struct iov_iter *from) > > > +{ > > > + ssize_t ret; > > > + struct inode *inode = file_inode(iocb->ki_filp); > > > + > > > + if (!inode_trylock(inode)) { > > > + if (iocb->ki_flags & IOCB_NOWAIT) > > > + return -EOPNOTSUPP; > > > + inode_lock(inode); > > > + } > > > > Currently there's no support for IOCB_NOWAIT for buffered IO so you can > > replace this with "inode_lock(inode)". > > IOCB_NOWAIT is supported for buffered reads. It is not supported on > buffered writes (as yet), so this should return EOPNOTSUPP if > IOCB_NOWAIT is set, regardless of whether the lock can be grabbed or > not. Noted! Thank you Dave. ;-) --M