diff --git a/[refs] b/[refs] index 11f2b6466fd3..513c5395dfc5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: deac66ae454cacf942c051b86d9232af546fb187 +refs/heads/master: 0bb6fcc13ae4fad98e0d610458975e47be0d2203 diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index 29b70669435c..34156260c9b6 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -1334,8 +1334,12 @@ asmlinkage long sys_pivot_root(const char __user *new_root, const char __user *p error = -EINVAL; if (user_nd.mnt->mnt_root != user_nd.dentry) goto out2; /* not a mountpoint */ + if (user_nd.mnt->mnt_parent == user_nd.mnt) + goto out2; /* not attached */ if (new_nd.mnt->mnt_root != new_nd.dentry) goto out2; /* not a mountpoint */ + if (new_nd.mnt->mnt_parent == new_nd.mnt) + goto out2; /* not attached */ tmp = old_nd.mnt; /* make sure we can reach put_old from new_root */ spin_lock(&vfsmount_lock); if (tmp != new_nd.mnt) {