[PATCH] disable unshare(CLONE_VM) for now
authorOleg Nesterov <oleg@tv-sign.ru>
Sat, 18 Mar 2006 17:41:10 +0000 (20:41 +0300)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 18 Mar 2006 18:49:36 +0000 (10:49 -0800)
sys_unshare() does mmput(new_mm).  This is not enough if we have
mm->core_waiters.

This patch is a temporary fix for soon to be released 2.6.16.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
[ Checked with Uli: "I'm not planning to use unshare(CLONE_VM).  It's
  not needed for any functionality planned so far.  What we (as in Red
  Hat) need unshare() for now is the filesystem side." ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/fork.c

index 46060cb..b373322 100644 (file)
@@ -1478,9 +1478,7 @@ static int unshare_vm(unsigned long unshare_flags, struct mm_struct **new_mmp)
 
        if ((unshare_flags & CLONE_VM) &&
            (mm && atomic_read(&mm->mm_users) > 1)) {
-               *new_mmp = dup_mm(current);
-               if (!*new_mmp)
-                       return -ENOMEM;
+               return -EINVAL;
        }
 
        return 0;