On Wed, Jun 01, 2022 at 03:20:29PM +0200, Alexey Gladkov wrote: > +struct ctl_fops { > + int (*open) (struct ctl_context *, struct inode *, struct file *); > + int (*release) (struct ctl_context *, struct inode *, struct file *); > + ssize_t (*read) (struct ctl_context *, struct file *, char *, size_t *, loff_t *); > + ssize_t (*write) (struct ctl_context *, struct file *, char *, size_t *, loff_t *); > +}; Why not pass the iocb in ->read and ->write? We're still regretting not doing that with file_operations.