mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	[PATCH] Consistent capabilites associated with MPOL_MOVE_ALL
It seems that setting scheduling policy and priorities is also the kind of thing that might be performed in apps that also use the NUMA API, so it would seem consistent to use CAP_SYS_NICE for NUMA also. So use CAP_SYS_NICE for controlling migration permissions. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Michael Kerrisk <mtk-manpages@gmx.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
		
							parent
							
								
									b4fb376628
								
							
						
					
					
						commit
						74c0024105
					
				
					 1 changed files with 4 additions and 4 deletions
				
			
		|  | @ -748,7 +748,7 @@ long do_mbind(unsigned long start, unsigned long len, | |||
| 				      MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) | ||||
| 	    || mode > MPOL_MAX) | ||||
| 		return -EINVAL; | ||||
| 	if ((flags & MPOL_MF_MOVE_ALL) && !capable(CAP_SYS_RESOURCE)) | ||||
| 	if ((flags & MPOL_MF_MOVE_ALL) && !capable(CAP_SYS_NICE)) | ||||
| 		return -EPERM; | ||||
| 
 | ||||
| 	if (start & ~PAGE_MASK) | ||||
|  | @ -942,20 +942,20 @@ asmlinkage long sys_migrate_pages(pid_t pid, unsigned long maxnode, | |||
| 	 */ | ||||
| 	if ((current->euid != task->suid) && (current->euid != task->uid) && | ||||
| 	    (current->uid != task->suid) && (current->uid != task->uid) && | ||||
| 	    !capable(CAP_SYS_ADMIN)) { | ||||
| 	    !capable(CAP_SYS_NICE)) { | ||||
| 		err = -EPERM; | ||||
| 		goto out; | ||||
| 	} | ||||
| 
 | ||||
| 	task_nodes = cpuset_mems_allowed(task); | ||||
| 	/* Is the user allowed to access the target nodes? */ | ||||
| 	if (!nodes_subset(new, task_nodes) && !capable(CAP_SYS_ADMIN)) { | ||||
| 	if (!nodes_subset(new, task_nodes) && !capable(CAP_SYS_NICE)) { | ||||
| 		err = -EPERM; | ||||
| 		goto out; | ||||
| 	} | ||||
| 
 | ||||
| 	err = do_migrate_pages(mm, &old, &new, | ||||
| 		capable(CAP_SYS_ADMIN) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE); | ||||
| 		capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE); | ||||
| out: | ||||
| 	mmput(mm); | ||||
| 	return err; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Christoph Lameter
						Christoph Lameter