sys_open-->open_namei-->path_walk
-->(vfs_create)
-->( error = -EISDIR; if (S_ISDIR(inode->i_mode) && (flag & FMODE_WRITE)))
-->dentry_open-->get_empty_filp
-->(get_write_access)
-->file_move
-->(f_op->open)
opendir 也是调用sys_open
本文详细解析了Linux系统中文件操作的过程,从sys_open到open_namei,再到path_walk及vfs_create等关键步骤。特别关注了目录打开时的错误处理机制及后续的dentry_open流程,包括get_empty_filp、get_write_access、file_move等环节。
sys_open-->open_namei-->path_walk
-->(vfs_create)
-->( error = -EISDIR; if (S_ISDIR(inode->i_mode) && (flag & FMODE_WRITE)))
-->dentry_open-->get_empty_filp
-->(get_write_access)
-->file_move
-->(f_op->open)
opendir 也是调用sys_open
2906
454
2937

被折叠的 条评论
为什么被折叠?