operações de arquivo aio_read alteradas no kernel 4.1

1

Eu tenho um driver que eu mantenho, eu preciso compilá-lo com cabeçalhos Linux 4.1.21 mas Eu recebo erros de compilação para aio_read , aio_write , eles estão faltando em struct file_operations , suponho que eles foram substituídos.
Como faço para descobrir quais são as substituições?

fs.h no kernel 4.0 tem:

struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
...  

fs.h no kernel 4.1 tem:

struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
int (*iterate) (struct file *, struct dir_context *);
    
por ilansch 20.11.2016 / 09:30

1 resposta

3

Se você está fazendo o trabalho do kernel, você deve ter uma assinatura do Linux Weekly News .

Uma pesquisa muito rápida apareceu este artigo , que menciona que aio_read e aio_write estão sendo gerenciados pela read_iter e write_iter .

Você também pode encontrar uma breve declaração com esse objetivo em Documentation/filesystems/porting .

    
por 20.11.2016 / 10:40