fs: Introduce IOMAP_NOWAIT
IOCB_NOWAIT translates to IOMAP_NOWAIT for iomaps. This is used by XFS in the XFS patch. Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
6be96d3ad3
commit
a38d124370
|
@ -881,6 +881,14 @@ iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter,
|
|||
flags |= IOMAP_WRITE;
|
||||
}
|
||||
|
||||
if (iocb->ki_flags & IOCB_NOWAIT) {
|
||||
if (filemap_range_has_page(mapping, start, end)) {
|
||||
ret = -EAGAIN;
|
||||
goto out_free_dio;
|
||||
}
|
||||
flags |= IOMAP_NOWAIT;
|
||||
}
|
||||
|
||||
ret = filemap_write_and_wait_range(mapping, start, end);
|
||||
if (ret)
|
||||
goto out_free_dio;
|
||||
|
|
|
@ -52,6 +52,7 @@ struct iomap {
|
|||
#define IOMAP_REPORT (1 << 2) /* report extent status, e.g. FIEMAP */
|
||||
#define IOMAP_FAULT (1 << 3) /* mapping for page fault */
|
||||
#define IOMAP_DIRECT (1 << 4) /* direct I/O */
|
||||
#define IOMAP_NOWAIT (1 << 5) /* Don't wait for writeback */
|
||||
|
||||
struct iomap_ops {
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue