dax: pass NOWAIT flag to iomap_apply
[ Upstream commit 96222d5384
]
fstests generic/471 reports a failure when run with MOUNT_OPTIONS="-o
dax". The reason is that the initial pwrite to an empty file with the
RWF_NOWAIT flag set does not return -EAGAIN. It turns out that
dax_iomap_rw doesn't pass that flag through to iomap_apply.
With this patch applied, generic/471 passes for me.
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/x49r1z86e1d.fsf@segfault.boston.devel.redhat.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
36b5fcc140
commit
bb232821fa
3
fs/dax.c
3
fs/dax.c
|
@ -1207,6 +1207,9 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter,
|
||||||
lockdep_assert_held(&inode->i_rwsem);
|
lockdep_assert_held(&inode->i_rwsem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (iocb->ki_flags & IOCB_NOWAIT)
|
||||||
|
flags |= IOMAP_NOWAIT;
|
||||||
|
|
||||||
while (iov_iter_count(iter)) {
|
while (iov_iter_count(iter)) {
|
||||||
ret = iomap_apply(inode, pos, iov_iter_count(iter), flags, ops,
|
ret = iomap_apply(inode, pos, iov_iter_count(iter), flags, ops,
|
||||||
iter, dax_iomap_actor);
|
iter, dax_iomap_actor);
|
||||||
|
|
Loading…
Reference in New Issue