gpt4 book ai didi

linux - fsnotify 真的需要全局列表扫描吗?

转载 作者:太空狗 更新时间:2023-10-29 11:16:09 35 4
gpt4 key购买 nike

我正在研究 linux 内核代码,更具体地说是 fs/notify/fsnotify.c 中的文件系统通知 ... AFAIK,每个 inode 现在都有一个“标记”列表,每个标记都引用一个“组”收听该 inode 上的通知。在 VFS 代码中,通过使用 fsnotify(triggering_inode, REASON|OTHER_REASON, additional_parameters...)

发出通知

fsnotify() 函数中,我对

感到困惑
 list_for_each_entry_rcu(group, &fsnotify_groups, group_list) {
if (test_mask & group->mask) {
if (!group->ops->should_send_event(group, to_tell, mask))
continue;
// more code that sends notification
}
}

特别是,fsnotify_groups 显然是 (fsnotify.h) 一个全局列表,其中记录了所有组。我最好的选择是内核开发人员知道他们在这里做什么,我错过了一个关键点,它阻止我们只使用 foreach(mark:inode->fsnotify_mark_entry) { g=mark->associated_group; 这肯定会随着系统上通知监听器的数量而更好地扩展。

周围的人知道为什么这里仍然使用全局列表吗?

最佳答案

latest version似乎不再这样做了。

关于linux - fsnotify 真的需要全局列表扫描吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308884/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com