mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
cgroup: pair max limit READ_ONCE() with WRITE_ONCE()
cgroup.max.descendants and cgroup.max.depth are shown through seq_file. Their show callbacks read cgrp->max_descendants and cgrp->max_depth with READ_ONCE(), respectively. The corresponding write callbacks update the same scalar fields while holding the cgroup lock, but the seq_file show path does not serialize against those stores. This leaves the lockless show-side loads annotated with READ_ONCE(), while the corresponding stores remain plain stores. Use WRITE_ONCE() for the updates so the intended lockless access is marked consistently on both sides. This does not change locking, ordering, or user-visible semantics. Assisted-by: OpenAI-Codex:gpt-5.5 Signed-off-by: Ren Tamura <ren.tamura.oss@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
98f0adb228
commit
336f87d742
|
|
@ -3734,7 +3734,7 @@ static ssize_t cgroup_max_descendants_write(struct kernfs_open_file *of,
|
|||
if (!cgrp)
|
||||
return -ENOENT;
|
||||
|
||||
cgrp->max_descendants = descendants;
|
||||
WRITE_ONCE(cgrp->max_descendants, descendants);
|
||||
|
||||
cgroup_kn_unlock(of->kn);
|
||||
|
||||
|
|
@ -3777,7 +3777,7 @@ static ssize_t cgroup_max_depth_write(struct kernfs_open_file *of,
|
|||
if (!cgrp)
|
||||
return -ENOENT;
|
||||
|
||||
cgrp->max_depth = depth;
|
||||
WRITE_ONCE(cgrp->max_depth, depth);
|
||||
|
||||
cgroup_kn_unlock(of->kn);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user