File io 在字符设备驱动程序中手动调用flush

File io 在字符设备驱动程序中手动调用flush,file-io,linux-device-driver,File Io,Linux Device Driver,我想要一个字符设备在写入时刷新。如何调用file_操作的flush方法 以下是一些相关代码: struct file_operations ent_fops = { .owner = THIS_MODULE, .read = ent_read, .write = ent_write, }; 我自己也不知道 ssize_t ent_write(struct file *filp, const char __user *buf, size

我想要一个字符设备在写入时刷新。如何调用file_操作的flush方法

以下是一些相关代码:

struct file_operations ent_fops = {
          .owner = THIS_MODULE,
          .read = ent_read,
          .write = ent_write,
};
我自己也不知道

ssize_t ent_write(struct file *filp, const char __user *buf, size_t count,loff_t *f_pos)
{
blah...
*(ent_fops.flush)(file);
blah...
}

代码无法编译,错误是我发送的参数太少。我在任何地方都找不到需要一个以上的文件。您缺少指向文件锁所有者的指针。试一试

*(ent_fops.flush)(filp, NULL);