2011-10-09 55 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);