aboutsummaryrefslogtreecommitdiffstats
path: root/security/selinux/hooks.c
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <[email protected]>2025-02-13 14:50:22 +0000
committerGreg Kroah-Hartman <[email protected]>2025-02-15 16:46:32 +0000
commit633488947ef66b194377411322dc9e12aab79b65 (patch)
treed032af4f5f619933ca5988aac63ce2aac0057cf9 /security/selinux/hooks.c
parentkernfs: Don't re-lock kernfs_root::kernfs_rwsem in kernfs_fop_readdir(). (diff)
downloadkernel-633488947ef66b194377411322dc9e12aab79b65.tar.gz
kernel-633488947ef66b194377411322dc9e12aab79b65.zip
kernfs: Use RCU to access kernfs_node::parent.
kernfs_rename_lock is used to obtain stable kernfs_node::{name|parent} pointer. This is a preparation to access kernfs_node::parent under RCU and ensure that the pointer remains stable under the RCU lifetime guarantees. For a complete path, as it is done in kernfs_path_from_node(), the kernfs_rename_lock is still required in order to obtain a stable parent relationship while computing the relevant node depth. This must not change while the nodes are inspected in order to build the path. If the kernfs user never moves the nodes (changes the parent) then the kernfs_rename_lock is not required and the RCU guarantees are sufficient. This "restriction" can be set with KERNFS_ROOT_INVARIANT_PARENT. Otherwise the lock is required. Rename kernfs_node::parent to kernfs_node::__parent to denote the RCU access and use RCU accessor while accessing the node. Make cgroup use KERNFS_ROOT_INVARIANT_PARENT since the parent here can not change. Acked-by: Tejun Heo <[email protected]> Cc: Yonghong Song <[email protected]> Signed-off-by: Sebastian Andrzej Siewior <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'security/selinux/hooks.c')
0 files changed, 0 insertions, 0 deletions