|
@@ -1734,8 +1734,14 @@ struct mount *copy_tree(struct mount *mnt, struct dentry *dentry,
|
|
|
for (s = r; s; s = next_mnt(s, r)) {
|
|
|
if (!(flag & CL_COPY_UNBINDABLE) &&
|
|
|
IS_MNT_UNBINDABLE(s)) {
|
|
|
- s = skip_mnt_tree(s);
|
|
|
- continue;
|
|
|
+ if (s->mnt.mnt_flags & MNT_LOCKED) {
|
|
|
+ /* Both unbindable and locked. */
|
|
|
+ q = ERR_PTR(-EPERM);
|
|
|
+ goto out;
|
|
|
+ } else {
|
|
|
+ s = skip_mnt_tree(s);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
if (!(flag & CL_COPY_MNT_NS_FILE) &&
|
|
|
is_mnt_ns_file(s->mnt.mnt_root)) {
|