我正在尝试为我自己的用例自定义cifsfs模块,我需要打开一个文件并在cifs_unlink()
调用中读取其内容,我正在使用filp_open()
打开它,然后阅读它filp_close()
,然后继续使用unlink()
的正常代码路径,我可以很好地获取内容。
问题是,filp_close()
调用将阻止smb请求,直到我离开unlink()
函数,因此unlink smb请求将早于close()
到达,并且触发0xc0000043 NT_STATUS_SHARING_VIOLATION
,然后取消链接将失败并显示device busy
。
尝试拨打cifs_close()
而不是filp_close()
,结果相同。
想知道如何同步close()
文件以避免此失败。