- openat2 (fs/open.c) - https://elixir.bootlin.com/linux/v6.0.19/source/fs/open.c#L1345
- do_sys_openat2 - https://elixir.bootlin.com/linux/v6.0.19/source/fs/open.c#L1294
- do_filp_open - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3710
- path_openat - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3671
- open_last_lookups - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3429
- lookup_open - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3318
- inode isn't cached
- dir_inode->i_op->lookup [ext4_lookup] - https://elixir.bootlin.com/linux/v6.0.19/source/fs/ext4/namei.c#L1811
- ext4_iget - https://elixir.bootlin.com/linux/v6.0.19/source/fs/ext4/inode.c#L4758
- inode = iget_locked(sb, ino); // allocate inode
- raw_inode = ext4_raw_inode(&iloc);
- i_uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
- i_uid_write(inode, i_uid) - https://elixir.bootlin.com/linux/v6.0.19/source/include/linux/fs.h#L1611
- inode->i_uid = make_kuid(i_user_ns(inode), uid); // use sb.userns to map to kernel_id
- ext4_iget - https://elixir.bootlin.com/linux/v6.0.19/source/fs/ext4/inode.c#L4758
- lookup_open - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3318
- open_last_lookups - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3429
- path_openat - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3671
- do_filp_open - https://elixir.bootlin.com/linux/v6.0.19/source/fs/namei.c#L3710
- do_sys_openat2 - https://elixir.bootlin.com/linux/v6.0.19/source/fs/open.c#L1294
Created
March 25, 2023 08:18
-
-
Save fuweid/387a46fb6d143406733501c1f0798c7a to your computer and use it in GitHub Desktop.
openat2 codepath
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment