···356356 ``IOMAP_NOWAIT`` is often set on behalf of ``IOCB_NOWAIT`` or357357 ``RWF_NOWAIT``.358358359359+ * ``IOMAP_DONTCACHE`` is set when the caller wishes to perform a360360+ buffered file I/O and would like the kernel to drop the pagecache361361+ after the I/O completes, if it isn't already being used by another362362+ thread.363363+359364If it is necessary to read existing file contents from a `different360365<https://lore.kernel.org/all/20191008071527.29304-9-hch@lst.de/>`_361366device or address range on a device, the filesystem should return that
+2
Documentation/filesystems/iomap/operations.rst
···131131132132 * ``IOCB_NOWAIT``: Turns on ``IOMAP_NOWAIT``.133133134134+ * ``IOCB_DONTCACHE``: Turns on ``IOMAP_DONTCACHE``.135135+134136Internal per-Folio State135137------------------------136138
+4
fs/iomap/buffered-io.c
···594594595595 if (iter->flags & IOMAP_NOWAIT)596596 fgp |= FGP_NOWAIT;597597+ if (iter->flags & IOMAP_DONTCACHE)598598+ fgp |= FGP_DONTCACHE;597599 fgp |= fgf_set_order(len);598600599601 return __filemap_get_folio(iter->inode->i_mapping, pos >> PAGE_SHIFT,···1021101910221020 if (iocb->ki_flags & IOCB_NOWAIT)10231021 iter.flags |= IOMAP_NOWAIT;10221022+ if (iocb->ki_flags & IOCB_DONTCACHE)10231023+ iter.flags |= IOMAP_DONTCACHE;1024102410251025 while ((ret = iomap_iter(&iter, ops)) > 0)10261026 iter.status = iomap_write_iter(&iter, i);