down(&cpuset_sem); 
cpuset_down(&cpuset_sem); 
static ssize_t cpuset_common_file_write(struct file *file, const char __user *userbuf,					size_t nbytes, loff_t *unused_ppos){	struct cpuset *cs = __d_cs(file->f_dentry->d_parent);	struct cftype *cft = __d_cft(file->f_dentry);	cpuset_filetype_t type = cft->private;	char *buffer;	char *pathbuf = NULL;	int retval = 0;	/* Crude upper limit on largest legitimate cpulist user might write. */	if (nbytes > 100 + 6 * NR_CPUS)		return -E2BIG;	/* +1 for nul-terminator */	if ((buffer = kmalloc(nbytes + 1, GFP_KERNEL)) == 0)		return -ENOMEM;	if (copy_from_user(buffer, userbuf, nbytes)) {		retval = -EFAULT;		goto out1;	}	buffer[nbytes] = 0;	/* nul-terminate */	down(&cpuset_sem);	if (is_removed(cs)) {		retval = -ENODEV;		goto out2;	}	switch (type) {	case FILE_CPULIST:		retval = update_cpumask(cs, buffer);		break;	case FILE_MEMLIST:		retval = update_nodemask(cs, buffer);		break;	case FILE_CPU_EXCLUSIVE:		retval = update_flag(CS_CPU_EXCLUSIVE, cs, buffer);		break;	case FILE_MEM_EXCLUSIVE:		retval = update_flag(CS_MEM_EXCLUSIVE, cs, buffer);		break;	case FILE_NOTIFY_ON_RELEASE:		retval = update_flag(CS_NOTIFY_ON_RELEASE, cs, buffer);		break;	case FILE_TASKLIST:		retval = attach_task(cs, buffer, &pathbuf);		break;	default:		retval = -EINVAL;		goto out2;	}	if (retval == 0)		retval = nbytes;out2:	up(&cpuset_sem);	cpuset_release_agent(pathbuf);out1:	kfree(buffer);	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4247bdc60048018b98f71228b45cfbc5f5270c86/cpuset.c/clean/kernel/cpuset.c