On Fri, Feb 26, 2016 at 02:41:19PM +0300, Andrey Ryabinin wrote:
>
>
> On 02/26/2016 02:10 PM, Vladimir Davydov wrote:
> > On Thu, Feb 25, 2016 at 07:19:38PM +0300, Andrey Ryabinin wrote:
> > ...
> >> @@ -2673,7 +2676,10 @@ static struct mnt_namespace *create_mnt_ns(struct
> >> vfsmount *m)
>
On 02/26/2016 02:10 PM, Vladimir Davydov wrote:
> On Thu, Feb 25, 2016 at 07:19:38PM +0300, Andrey Ryabinin wrote:
> ...
>> @@ -2673,7 +2676,10 @@ static struct mnt_namespace *create_mnt_ns(struct
>> vfsmount *m)
>> struct mount *mnt = real_mount(m);
>> mnt->mnt_ns =
On Thu, Feb 25, 2016 at 07:19:38PM +0300, Andrey Ryabinin wrote:
...
> @@ -2673,7 +2676,10 @@ static struct mnt_namespace *create_mnt_ns(struct
> vfsmount *m)
> struct mount *mnt = real_mount(m);
> mnt->mnt_ns = new_ns;
> new_ns->root = mnt;
> +
Currently sync reads 've->root_path.mnt' mount and iterate over it childs.
This doesn't work, because
a) not all in-container mounts are in childs list of root mount.
b) ve->root_path.mnt points to incorrect 'struct mount *'.
This patch slightly rework's mounts traversal. Now sync iterates over