use*_*986 3 mutex vfs linux-device-driver linux-kernel
在编写驱动程序时,我遇到了下面提到的问题。
假设多线程应用程序通过相同的 FD 访问相同的设备文件。考虑在对 OPEN 和 RELEASE 的调用之间,线程组相互持有一些资源(比如互斥锁)。这些资源在 READ/WRITE 调用期间使用,然后最终在 RELEASE 期间放弃或销毁。
如果在 READ/WRITE 期间有一个线程访问资源,而另一个线程同时通过调用 close 调用 RELEASE,则 VFS 如何确保在 READ、WRITE 或 READ 中至少有一个线程之前不会调用 RELEASE喜欢。什么机制处理这种保护?