]> www.infradead.org Git - users/jedix/linux-maple.git/commit
xfs: simplify buffer I/O submission
authorChristoph Hellwig <hch@lst.de>
Mon, 13 Jan 2025 14:12:13 +0000 (15:12 +0100)
committerCarlos Maiolino <cem@kernel.org>
Tue, 14 Jan 2025 10:38:15 +0000 (11:38 +0100)
commitfac69ec8cd743f509129deb5feae9e3f9ebc2cc8
treeec4d37727a6e88715b95bca502f1745b1d0db353
parent8db65d312b5757fd70591382a800336dcbf091af
xfs: simplify buffer I/O submission

The code in _xfs_buf_ioapply is unnecessarily complicated because it
doesn't take advantage of modern bio features.

Simplify it by making use of bio splitting and chaining, that is build
a single bio for the pages in the buffer using a simple loop, and then
split that bio on the map boundaries for discontiguous multi-FSB buffers
and chain the split bios to the main one so that there is only a single
I/O completion.

This not only simplifies the code to build the buffer, but also removes
the need for the b_io_remaining field as buffer ownership is granted
to the bio on submit of the final bio with no chance for a completion
before that as well as the b_io_error field that is now superfluous
because there always is exactly one completion.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Acked-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/xfs_buf.c
fs/xfs/xfs_buf.h