On 6/28/22 03:44, Roman Gushchin wrote: > On Mon, Jun 27, 2022 at 05:12:55AM +0300, Vasily Averin wrote: >> When cgroup_mkdir reaches the limits of the cgroup hierarchy, it should >> not return -EAGAIN, but instead react similarly to reaching the global >> limit. >> >> Signed-off-by: Vasily Averin <vvs@xxxxxxxxxx> >> --- >> kernel/cgroup/cgroup.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c >> index 1be0f81fe8e1..243239553ea3 100644 >> --- a/kernel/cgroup/cgroup.c >> +++ b/kernel/cgroup/cgroup.c >> @@ -5495,7 +5495,7 @@ int cgroup_mkdir(struct kernfs_node *parent_kn, const char *name, umode_t mode) >> return -ENODEV; >> >> if (!cgroup_check_hierarchy_limits(parent)) { >> - ret = -EAGAIN; >> + ret = -ENOSPC; > > I'd not argue whether ENOSPC is better or worse here, but I don't think we need > to change it now. It's been in this state for a long time and is a part of ABI. > EAGAIN is pretty unique as a mkdir() result, so systemd can handle it well. I would agree with you, however in my opinion EAGAIN is used to restart an interrupted system call. Thus, I worry its return can loop the user space without any chance of continuation. However, maybe I'm confusing something? Thank you, Vasily Averin