Re: [PATCH v7 5/5] block: enable RWF_DONTCACHE for block devices
Tal Zussman <[email protected]> Sat, 1 Aug 2026 01:55:36 +0200
| Newsgroups | org.ozlabs.lists.linux-erofs,org.kernel.vger.linux-block,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-xfs,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 7/30/26 2:57 AM, Tal Zussman wrote: > Block device buffered reads and writes already pass through > filemap_read() and iomap_file_buffered_write() respectively, both of > which handle IOCB_DONTCACHE. Enable RWF_DONTCACHE for block device files > by setting FOP_DONTCACHE in def_blk_fops. > > For CONFIG_BUFFER_HEAD=y, writeback goes through buffer_head's > __bh_submit() which sets BIO_COMPLETE_IN_TASK on dropbehind folios. For > CONFIG_BUFFER_HEAD=n, writeback goes through iomap which handles it via > BIO_COMPLETE_IN_TASK on the ioend bio. > > This support is useful for databases that operate on raw block devices, > among other userspace applications. > > Reviewed-by: Christoph Hellwig <[email protected]> > Signed-off-by: Tal Zussman <[email protected]> > --- > block/fops.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/fops.c b/block/fops.c > index 15783a6180de..8b39c53b6393 100644 > --- a/block/fops.c > +++ b/block/fops.c > @@ -941,7 +941,7 @@ const struct file_operations def_blk_fops = { > .splice_write = iter_file_splice_write, > .fallocate = blkdev_fallocate, > .uring_cmd = blkdev_uring_cmd, > - .fop_flags = FOP_BUFFER_RASYNC, > + .fop_flags = FOP_BUFFER_RASYNC | FOP_DONTCACHE, > }; > > static __init int blkdev_init(void) > It looks like Sashiko found a couple pre-existing issues in this file [1]. I've reproduced the first and looking into the second. Will send patches once confirmed. (FWIW the other issues Sashiko reported seem overblown.) [1]: https://sashiko.dev/#/patchset/20260730-blk-dontcache-v7-0-3e8e6850068d%40columbia.edu?part=5