提问人:user2550115 提问时间:9/23/2023 最后编辑:0andriyuser2550115 更新时间:9/26/2023 访问量:53
我对 Linux 内核中文件的 I/O 代码的一部分感到好奇
I am curious about a part of the file I/O code in the Linux kernel
问:
我有一个关于 Linux 文件 I/O 的问题。
写入文件时,内核使用以下函数generic_file_aio_write()
mutex_lock(inode->mutex);
代码将运行。(https://elixir.bootlin.com/linux/v2.6.39.4/source/mm/filemap.c#L2545)
我好奇的是,仅通过查看名称,该函数似乎仅在线程内共享锁。mutex_lock()
但翻阅各种书籍,似乎这个过程也共享锁。mutex_lock()
此函数在不同进程之间共享锁是否正确?mutex_lock()
之所以出现这个问题,是因为在较旧的内核版本中,该函数是在执行锁定时执行的。
(https://elixir.bootlin.com/linux/v2.6.6/source/mm/filemap.c#L1977down(&inode->i_sem)
)
从相关书籍和简单的实验中,我确认锁在不同的进程之间是共享的,但是
目前还不清楚,所以我想找到一个更明确的方法。mutex_lock(inode->mutex)
generic_file_aio_write()
答: 暂无答案
评论