Re: [PATCH] devcgroup: avoid using cgroup_lock

From: Li Zefan
Date: Thu Mar 12 2009 - 21:54:21 EST


>> @@ -426,11 +431,11 @@ static int devcgroup_access_write(struct cgroup *cgrp, struct cftype *cft,
>> const char *buffer)
>> {
>> int retval;
>> - if (!cgroup_lock_live_group(cgrp))
>
> Does it matter that we no longer check for cgroup_is_removed()?
>

No, this means in a rare case that the write handler is called when the cgroup
is dead, we still do the update work instead of returning ENODEV.

This is ok, since at that time, accessing cgroup and devcgroup is still valid,
but will have no effect since there is no task in this cgroup and the cgroup
will be destroyed soon.

>> - return -ENODEV;
>> +
>> + mutex_lock(&devcgroup_mutex);
>> retval = devcgroup_update_access(cgroup_to_devcgroup(cgrp),
>> cft->private, buffer);
>> - cgroup_unlock();
>> + mutex_unlock(&devcgroup_mutex);
>> return retval;
>> }

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/