2011-10-09 52 views
0

我想在写入字符设备时刷新字符设备。我如何调用file_operation的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... 
} 

的代码不会编译,错误的是,我要送冲洗参数太少。我无法在任何地方发现它需要多于一个。

回答

0

你错过了指向文件锁拥有者的指针。尝试

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