Finally got around to updating my rw_iter branch, which currently has 471 patches and drops the legacy fops read/write non-iterating handlers. It boots and works here. See https://lwn.net/Articles/972081/ for details. When is the last time you saw a patch series diffstat look like this:

990 files changed, 12302 insertions(+), 12993 deletions(-)

The file_operations structure gets smaller

Kernel developers are encouraged to send their changes in small batches as a way of making life [...]

LWN.net
@axboe random thought: isn't this just moving two pointers out of fops to more code in each driver's .text section?

@Aissen Main motivation here is to avoid having two sets of read or write handlers, as the iter variants fully support everything and the old school ones don't support proper async IO and things like non-blocking IO on a per-IO basis. Eg the latter rely per-file flags rather than per-IO flags.

As an example, on my r7625 test box, my vmlinux shrinks by about 86K in size. Can go down more, as fops helpers get dropped with conversions.

@Aissen Outside of that, it's just classic tech debt removal on a larger scale. Consider why iter variants of the read/write handlers were added in the first place. Arguably the work of converting everything to the new iter style handlers should've been done then, but it was not. And then you're stuck with 2 sets of each.
@axboe very interesting feedback, thanks!