[CRIU] [PATCH RFC 00/16] Open files in proper namespaces

Pavel Emelyanov xemul at parallels.com
Wed Apr 9 02:23:52 PDT 2014


On 04/09/2014 03:34 AM, Andrey Vagin wrote:
> Recently the mnt_id field was added in /proc/PID/fdinfo/X.
> It allows us to know from which mount a file has been opened.
> It's significant, if a few mount namespaces are restored.
> 
> Now mnt_id is saved for each file and on restore files are opened in
> proper mount namespaces.

Nice, but where are the "proper mount namespaces" themselves?

> Andrey Vagin (16):
>   proc_parse: parse fdinfo to get pos and flags
>   proc_parse: parse mnt_id from /proc/PID/fdinfo/FD
>   namespaces: dump mount namespaces before tasks
>   mount: save mount tree for each namespace
>   files: save mnt_id on fd_param
>   files: save mnt_id for reg files
>   fix mount: save mount tree for each namespace
>   files-ids: generate id-s accoding with mnt_id, st->st_dev and
>     st->st_ino
>   servicefd: add a service fd for current root
>   restore: look up root for each file
>   zdtm: mark all mounts as private for one call
>   zdtm: reexec the mountpoints test in a target mntns
>   files: open ghost file relative to the proper root
>   zdtm: check opened files in a second mntns
>   mount: print error message if readlinkat failed
>   mount: add a fast path for mntns_collect_root
> 
>  cr-dump.c                           | 55 +++++++++++++++++++++-------
>  cr-restore.c                        |  3 ++
>  file-ids.c                          | 32 ++++++++++-------
>  files-reg.c                         | 38 ++++++++++++++++++--
>  files.c                             | 17 ++++-----
>  include/file-ids.h                  |  5 +--
>  include/files.h                     |  2 ++
>  include/mount.h                     |  6 +++-
>  include/namespaces.h                |  9 ++++-
>  include/proc_parse.h                |  7 ++++
>  include/servicefd.h                 |  1 +
>  mount.c                             | 71 ++++++++++++++++++++++++++++++++++---
>  namespaces.c                        | 68 ++++++++++++++++++++---------------
>  proc_parse.c                        | 25 ++++++++++++-
>  protobuf/regfile.proto              |  1 +
>  test/zdtm.sh                        |  1 +
>  test/zdtm/lib/test.c                | 18 ++++++----
>  test/zdtm/live/static/mountpoints.c | 50 +++++++++++++++++---------
>  18 files changed, 310 insertions(+), 99 deletions(-)
> 




More information about the CRIU mailing list