On Mon, Dec 12, 2022 at 11:13:47PM +0100, David Sterba wrote: > > There is one significant behavior change here: If repair fails or > > is impossible to start with, the whole bio will be failed to the > > upper layer. This is the behavior that all I/O submitters execept > > for buffered I/O already emulated in their end_io handler. For > > buffered I/O this now means that a large readahead request can > > fail due to a single bad sector, but as readahead errors are igored > > the following readpage if the sector is actually accessed will > > still be able to read. This also matches the I/O failure handling > > in other file systems. > > This patch is apparently doing several things at once, please split it. > Thanks. We went through this last time: yes, it apparently does multiple things, but they are so deeply interconnected that they can't be logically split. Josef asked to maybe look into opting in, but that would require a temporary flag in the btrfs_bio and not significantly reduce the patch side, but just add a few more patches for the switchover of direct, buffered and compressed I/O.