diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-20 09:16:21 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-20 09:16:21 -0800 | 
| commit | 502b24c23b44fbaa01cc2cbd86d8035845b7811f (patch) | |
| tree | 3096deeb99f6acc2d72ee33f145008ec5e2c68b3 /kernel/cpuset.c | |
| parent | ece8e0b2f9c980e5511fe8db2d68c6f1859b9d83 (diff) | |
| parent | f169007b2773f285e098cb84c74aac0154d65ff7 (diff) | |
| download | olio-linux-3.10-502b24c23b44fbaa01cc2cbd86d8035845b7811f.tar.xz olio-linux-3.10-502b24c23b44fbaa01cc2cbd86d8035845b7811f.zip  | |
Merge branch 'for-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup changes from Tejun Heo:
 "Nothing too drastic.
   - Removal of synchronize_rcu() from userland visible paths.
   - Various fixes and cleanups from Li.
   - cgroup_rightmost_descendant() added which will be used by cpuset
     changes (it will be a separate pull request)."
* 'for-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cgroup: fail if monitored file and event_control are in different cgroup
  cgroup: fix cgroup_rmdir() vs close(eventfd) race
  cpuset: fix cpuset_print_task_mems_allowed() vs rename() race
  cgroup: fix exit() vs rmdir() race
  cgroup: remove bogus comments in cgroup_diput()
  cgroup: remove synchronize_rcu() from cgroup_diput()
  cgroup: remove duplicate RCU free on struct cgroup
  sched: remove redundant NULL cgroup check in task_group_path()
  sched: split out css_online/css_offline from tg creation/destruction
  cgroup: initialize cgrp->dentry before css_alloc()
  cgroup: remove a NULL check in cgroup_exit()
  cgroup: fix bogus kernel warnings when cgroup_create() failed
  cgroup: remove synchronize_rcu() from rebind_subsystems()
  cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()
  cgroup: use new hashtable implementation
  cgroups: fix cgroup_event_listener error handling
  cgroups: move cgroup_event_listener.c to tools/cgroup
  cgroup: implement cgroup_rightmost_descendant()
  cgroup: remove unused dummy cgroup_fork_callbacks()
Diffstat (limited to 'kernel/cpuset.c')
| -rw-r--r-- | kernel/cpuset.c | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 7bb63eea6eb..5bb9bf18438 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -2511,8 +2511,16 @@ void cpuset_print_task_mems_allowed(struct task_struct *tsk)  	dentry = task_cs(tsk)->css.cgroup->dentry;  	spin_lock(&cpuset_buffer_lock); -	snprintf(cpuset_name, CPUSET_NAME_LEN, -		 dentry ? (const char *)dentry->d_name.name : "/"); + +	if (!dentry) { +		strcpy(cpuset_name, "/"); +	} else { +		spin_lock(&dentry->d_lock); +		strlcpy(cpuset_name, (const char *)dentry->d_name.name, +			CPUSET_NAME_LEN); +		spin_unlock(&dentry->d_lock); +	} +  	nodelist_scnprintf(cpuset_nodelist, CPUSET_NODELIST_LEN,  			   tsk->mems_allowed);  	printk(KERN_INFO "%s cpuset=%s mems_allowed=%s\n",  |