On Thu, Jan 30, 2025 at 03:02:06PM +0100, Sebastian Andrzej Siewior wrote: > 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. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Acked-by: Tejun Heo <tj@xxxxxxxxxx> Thanks. -- tejun