[Bug 288444] p9fs chokes on mountpoints in the exported filesystem

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 27 Jul 2025 22:44:20 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288444

Mark Johnston <markj@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |Open

--- Comment #1 from Mark Johnston <markj@FreeBSD.org> ---
This is basically a limitation of the 9p protocol as implemented by bhyve (and
QEMU).  Each file in a 9p share has a unique 64-bit identifier, the QID, and
our lib9p just sets qid = st_ino.  Of course, inode numbers are not unique
across datasets, so aliases arise, and this violates some invariants of p9fs.

It looks like QEMU has an option which lets one work around this problem by
dynamically remapping host inode numbers to provide unique QIDs, at the cost of
some overhead and the lack of a guarantee that it always work.  (This is
"multidevs=remap".)

For 15.0 it seems best to simply disallow exporting anything under a
mountpoint.  That is, if a walk or readdir encounters a file belonging to a
different host mountpoint, the 9p server should either hide it or generate an
error.  That's a bit inconvenient, but it's a bit easier to implement and it's
the safest option.

-- 
You are receiving this mail because:
You are the assignee for the bug.