> +err_unset_mode:
> +       /* Clean up the mode changes. */
> +       do_each_subsys_mask(ss, ssid, updated_mask) {
> +               struct kernfs_node *kn = cset->subsys[ssid]->cgroup->kn;
> +
> +               kernfs_break_active_protection(kn);
> +               cgroup_kn_set_mode(kn, mode[ssid]);
> +               kernfs_unbreak_active_protection(kn);
> +       } while_each_subsys_mask();

Sorry, I just realised this doesn't unlock all of the relevant locks
in the error path. I'll send an updated patch.

-- 
Aleksa Sarai (cyphar)
www.cyphar.com

Reply via email to