On 27.05.2026 06:23, Xinhui Yang wrote:
The motivation of the implementation is to make the systemd-nspawn
container to boot guest OSes with systemd v259+, otherwise any systemd
service requires importing credentials will fail, including journald,
D-Bus service and getty. We used to work around this issue by patching
systemd to retry the clone() without CLONE_NEWNS, which is not and can
not be implemented in QEMU user emulation.

mount(8) from util-linux works because it will fallback to the old
mount(2) syscall if fsmount(8) series of syscalls is not available.

Tested good on an x86-64 host, with:

- an AOSC OS mips64r6el guest, which boots successfully with full systemd
   support using systemd-nspawn(1).
- a Gentoo ppc (big endian) guest, which boots successfully with full
   systemd support, using systemd-nspawn(1).

Xinhui Yang (2):
   linux-user: implement fsmount(2) series of syscalls
   linux-user/strace: add fsmount series of syscalls

  linux-user/strace.c    | 102 +++++++++++++++++++++++++++++++++++++++++
  linux-user/strace.list |  15 ++++++
  linux-user/syscall.c   |  77 +++++++++++++++++++++++++++++++
  3 files changed, 194 insertions(+)

I'm picking this up for the active qemu stable series.  This is a new
feature, but the new interfaces are used in more and more software, so
it becomes a defect not to have that interface :)

Thanks,

/mjt

Reply via email to