On Wed, Jun 1, 2022 at 12:19 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > Why not pass the iocb in ->read and ->write? We're still regretting not > doing that with file_operations. No, all the actual "io" is done by the caller. There is no way in hell I want the sysctl callbacks to actually possibly do user space accesses etc. They get a kernel buffer that has already been set up. There is no iocb or iovec left for them. (That also means that they can take whatever locks they need, including spinlocks, because there's not going to be any random user accesses or complex pipe buffer lookups or whatever). Linus