In late 2019, a redesign of the Linux kernel pipe code saw some of its logic reworked to only wake readers up when needed and avoid a possible thundering herd problem. But it turns out that some Android libraries have abused the feature, leading to broken Android apps when upgrading to recent kernels. Although the user space software is wrong, the kernel sticks to its policy of not breaking user space and as such Linus Torvalds has changed the behavior of the code for Linux 5.14 and needs to be backported to previous stable nuclei.
Rather than waking up drives only when needed, the Linux kernel merged change on Friday will cause pipe writes to always wake up drives. Due to the abuse of the EPOLL interface by some Android libraries like Realm, the pipe change in late 2019 ended up breaking some Android apps.
This broke “many Android applications” since Linux 5.5, but given the long period between kernel versions shipped by Android, this only recently became an issue with the transition from Android to Linux 5.10 LTS. Realm’s behavior has since been fixed, but it will be some time before any apps using the library (and any other problematic libraries) are updated and rebuilt, so for now the broken Android apps are still there.
While user space was misusing an interface and “all applications using this library have stopped working”, the Linux kernel enforces a policy that if applications break with the new kernel behavior / change, it is regression. So, on Friday Linus Torvalds drafted and merged this change to make the scriptures always wake readers, even if they are strangers, to better adjust to the old behavior.
See this commit for those interested in all the technical details of the issue and its resolution.