diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/namespace.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 29b70669435c..34156260c9b6 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -1334,8 +1334,12 @@ asmlinkage long sys_pivot_root(const char __user *new_root, const char __user *p | |||
1334 | error = -EINVAL; | 1334 | error = -EINVAL; |
1335 | if (user_nd.mnt->mnt_root != user_nd.dentry) | 1335 | if (user_nd.mnt->mnt_root != user_nd.dentry) |
1336 | goto out2; /* not a mountpoint */ | 1336 | goto out2; /* not a mountpoint */ |
1337 | if (user_nd.mnt->mnt_parent == user_nd.mnt) | ||
1338 | goto out2; /* not attached */ | ||
1337 | if (new_nd.mnt->mnt_root != new_nd.dentry) | 1339 | if (new_nd.mnt->mnt_root != new_nd.dentry) |
1338 | goto out2; /* not a mountpoint */ | 1340 | goto out2; /* not a mountpoint */ |
1341 | if (new_nd.mnt->mnt_parent == new_nd.mnt) | ||
1342 | goto out2; /* not attached */ | ||
1339 | tmp = old_nd.mnt; /* make sure we can reach put_old from new_root */ | 1343 | tmp = old_nd.mnt; /* make sure we can reach put_old from new_root */ |
1340 | spin_lock(&vfsmount_lock); | 1344 | spin_lock(&vfsmount_lock); |
1341 | if (tmp != new_nd.mnt) { | 1345 | if (tmp != new_nd.mnt) { |