[PATCH 0/4] export mount info for "unmounted" mounts

Bhavik Sachdev posted 4 patches 2 months, 2 weeks ago
fs/d_path.c                     |  2 +-
fs/mount.h                      | 10 +++++-
fs/namespace.c                  | 62 ++++++++++++++++++++++++++++-----
fs/stat.c                       | 15 ++++++--
include/linux/proc_ns.h         |  1 +
include/linux/stat.h            |  1 +
include/uapi/linux/nsfs.h       |  1 +
include/uapi/linux/stat.h       |  4 ++-
tools/include/uapi/linux/stat.h |  4 ++-
9 files changed, 85 insertions(+), 15 deletions(-)
[PATCH 0/4] export mount info for "unmounted" mounts
Posted by Bhavik Sachdev 2 months, 2 weeks ago
By "unmounted" mounts we mean mounts that have been unmounted using
umount2(mnt, MNT_DETACH) but we still have file descriptors to files on
that mount. We want to add the ability to handle such mounts in CRIU
(Checkpoint/Restore in Userspace).

Currently, we have no way to get mount info for these mounts as they do
not appear in /proc/<pid>/mountinfo and statmount does not work on them.

We solve this problem by introducing a new umount_mnt_ns for such
mounts. Instead of their namespace being NULL, they get added to this
umount_mnt_ns. This allows us to use statmount on such mounts and export
their mnt_ns_id through statx.

We use this patchset with CRIU to support checkpoint/restore of
"unmounted" mounts in this pull request:
https://github.com/checkpoint-restore/criu/pull/2754.

All these patches are also available in this branch on github:
https://github.com/bsach64/linux/tree/umount-mnt-ns-plus-statx

Bhavik Sachdev (2):
  statmount: allow for "unmounted" mounts
  fs/stat: export mnt_ns_id through statx

Pavel Tikhomirov (2):
  fs/namespace: add umount_mnt_ns mount namespace for unmounted mounts
  fs/namespace: add umounted mounts to umount_mnt_ns

 fs/d_path.c                     |  2 +-
 fs/mount.h                      | 10 +++++-
 fs/namespace.c                  | 62 ++++++++++++++++++++++++++++-----
 fs/stat.c                       | 15 ++++++--
 include/linux/proc_ns.h         |  1 +
 include/linux/stat.h            |  1 +
 include/uapi/linux/nsfs.h       |  1 +
 include/uapi/linux/stat.h       |  4 ++-
 tools/include/uapi/linux/stat.h |  4 ++-
 9 files changed, 85 insertions(+), 15 deletions(-)

-- 
2.51.0