Just jumping in while travelling with almost time available: I like the idea, but you have to be really, really careful for writes through file systems with this. Deferred errors happening after bio submission are nasty and we tend to get things wrong there too often. So this needs to come with an xfstests to actually hit the alignment errors, including something that is not the first bio submitted. Even with that it will change behavior quite a bit, e.g. for file systems that can do direct I/O write without the exclusive i_rwsem will leak newly allocated space on errors asynchronously reported through bio completions, so you'll need to get fs maintainer buy in for that. Given all that I'm not sure converting the legacy fs/direct-io.c path is such a good idea as the only file systems left using it are those that are more less unmaintained (or at least severely undermaintained).