Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'vfs-6.15.shared.iomap' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs

Bring in iomap changes that xfs relies on.

Signed-off-by: Christian Brauner <brauner@kernel.org>

+14 -1
+5
Documentation/filesystems/iomap/design.rst
··· 356 356 ``IOMAP_NOWAIT`` is often set on behalf of ``IOCB_NOWAIT`` or 357 357 ``RWF_NOWAIT``. 358 358 359 + * ``IOMAP_DONTCACHE`` is set when the caller wishes to perform a 360 + buffered file I/O and would like the kernel to drop the pagecache 361 + after the I/O completes, if it isn't already being used by another 362 + thread. 363 + 359 364 If it is necessary to read existing file contents from a `different 360 365 <https://lore.kernel.org/all/20191008071527.29304-9-hch@lst.de/>`_ 361 366 device or address range on a device, the filesystem should return that
+2
Documentation/filesystems/iomap/operations.rst
··· 131 131 132 132 * ``IOCB_NOWAIT``: Turns on ``IOMAP_NOWAIT``. 133 133 134 + * ``IOCB_DONTCACHE``: Turns on ``IOMAP_DONTCACHE``. 135 + 134 136 Internal per-Folio State 135 137 ------------------------ 136 138
+4
fs/iomap/buffered-io.c
··· 594 594 595 595 if (iter->flags & IOMAP_NOWAIT) 596 596 fgp |= FGP_NOWAIT; 597 + if (iter->flags & IOMAP_DONTCACHE) 598 + fgp |= FGP_DONTCACHE; 597 599 fgp |= fgf_set_order(len); 598 600 599 601 return __filemap_get_folio(iter->inode->i_mapping, pos >> PAGE_SHIFT, ··· 1021 1019 1022 1020 if (iocb->ki_flags & IOCB_NOWAIT) 1023 1021 iter.flags |= IOMAP_NOWAIT; 1022 + if (iocb->ki_flags & IOCB_DONTCACHE) 1023 + iter.flags |= IOMAP_DONTCACHE; 1024 1024 1025 1025 while ((ret = iomap_iter(&iter, ops)) > 0) 1026 1026 iter.status = iomap_write_iter(&iter, i);
+2 -1
fs/xfs/xfs_file.c
··· 1627 1627 .fadvise = xfs_file_fadvise, 1628 1628 .remap_file_range = xfs_file_remap_range, 1629 1629 .fop_flags = FOP_MMAP_SYNC | FOP_BUFFER_RASYNC | 1630 - FOP_BUFFER_WASYNC | FOP_DIO_PARALLEL_WRITE, 1630 + FOP_BUFFER_WASYNC | FOP_DIO_PARALLEL_WRITE | 1631 + FOP_DONTCACHE, 1631 1632 }; 1632 1633 1633 1634 const struct file_operations xfs_dir_file_operations = {
+1
include/linux/iomap.h
··· 190 190 #define IOMAP_DAX 0 191 191 #endif /* CONFIG_FS_DAX */ 192 192 #define IOMAP_ATOMIC (1 << 9) 193 + #define IOMAP_DONTCACHE (1 << 10) 193 194 194 195 struct iomap_ops { 195 196 /*