[CRIU] [PATCH 0/9] mount: better handling of mount propagation
Andrew Vagin
avagin at virtuozzo.com
Fri Jul 13 00:05:15 MSK 2018
Applied, thanks
On Tue, Jul 10, 2018 at 07:02:22PM +0300, Pavel Tikhomirov wrote:
> - Main purpose of these series is to fix and improve mounts code, now we
> fail to dump customer's CT if it has e.g.:
>
> mkdir /test
> mount -t tmpfs test /test --make-private
> mount --make-shared /test
> cd /test
> mkdir dir bind
> mount --rbind dir bind
> mount --rbind dir bind
>
> cat /proc/self/mountinfo | grep test
> 150 707 0:48 / /test rw,relatime shared:942 - tmpfs test rw
> 569 150 0:48 /dir /test/bind rw,relatime shared:942 - tmpfs test rw
> 570 569 0:48 /dir /test/bind rw,relatime shared:942 - tmpfs test rw
> 571 150 0:48 /dir /test/dir rw,relatime shared:942 - tmpfs test rw
>
> 569 and 570 are shared and have the same root so validate_shared fails:
>
> mnt: 569:./test/bind and 570:./test/bind have different set of mounts
>
> https://jira.sw.ru/browse/PSBM-78703
>
> - Side purpose is to prepare for a future fixes to restore shared options
> for propagated mounts right (we need propagation groups for it).
>
> Pavel Tikhomirov (9):
> mount: add helper to check unsupported children collision
> zdtm: add a test for unsupported children collision
> mount: fix can_mount_now to wait children of master's share properly
> zdtm: check children of shared slaves restore
> mount: put all mounts which propagate from each other to a list
> mount: improve can_mount_now using propagation groups
> mount: use propagation groups in propagate_mount replacing excess
> search
> mount: remove validate_shared as now we allow non-uniform sharings
> zdtm: add a test for non-uniform shares
>
> criu/include/mount.h | 2 +
> criu/mount.c | 374 ++++++++++--------
> test/zdtm/static/Makefile | 3 +
> .../static/non_uniform_share_propagation.c | 131 ++++++
> .../static/non_uniform_share_propagation.desc | 1 +
> .../zdtm/static/shared_slave_mount_children.c | 125 ++++++
> .../static/shared_slave_mount_children.desc | 1 +
> .../static/unsupported_children_collision.c | 110 ++++++
> .../unsupported_children_collision.desc | 1 +
> 9 files changed, 586 insertions(+), 162 deletions(-)
> create mode 100644 test/zdtm/static/non_uniform_share_propagation.c
> create mode 100644 test/zdtm/static/non_uniform_share_propagation.desc
> create mode 100644 test/zdtm/static/shared_slave_mount_children.c
> create mode 100644 test/zdtm/static/shared_slave_mount_children.desc
> create mode 100644 test/zdtm/static/unsupported_children_collision.c
> create mode 100644 test/zdtm/static/unsupported_children_collision.desc
>
> --
> 2.17.0
>
More information about the CRIU
mailing list