Also, let's consider the other effects of this kernel change. For example, the following code from the initramfs that actually exec's init in the first place:
This opens /dev/console to be bound to init's file descriptors, if the console has recently been closed, these shell redirects can now fail with EIO. That means it's not just init that has to be fixed, it's every single possible shell out there, including the shells inside things like busybox?
This is why the kernel can't just push its own lazyness down to userspace like this.
Also, let's consider the other effects of this kernel change. For example, the following code from the initramfs that actually exec's init in the first place:
exec run-init ${rootmnt} ${init} "$@" <${rootmnt} /dev/console >${rootmnt} /dev/console 2>&1
This opens /dev/console to be bound to init's file descriptors, if the console has recently been closed, these shell redirects can now fail with EIO. That means it's not just init that has to be fixed, it's every single possible shell out there, including the shells inside things like busybox?
This is why the kernel can't just push its own lazyness down to userspace like this.