This is v3 of a proposed patch set for fixing file ID collisions with 9pfs.
That's it from my side for now regarding this overall issue. I am waiting for your comments on this patch set before doing anything else. Patch 1 to 4 are identical to the previous version. New patch 5 adds an optional qemu virtfs device parameter "vii" (very important inode[s]) , which allows host admins to configure which fs device(s) should get the largest inode namespaces on guest. I will also send a (6th) patch against libvirt which allows to configure the "vii" feature of patch 5 via xml config instead of qemu command line argument. I am yet unresolved whether or not to use persistency for file IDs that is introduced with patch 3. After applying the entire patch set, the persistency feature is disabled by default at compile time, but you can enable it with macro QPP_TABLE_PERSISTENCY_LIMIT. Christian Schoenebeck (5): 9p: mitigates most QID path collisions 9P: trivial cleanup of QID path collision mitigation 9p: persistency of QID path beyond reboots / suspensions 9p: use variable length suffixes for inode mapping 9p: adds virtfs 'vii' device parameter fsdev/9p-marshal.h | 6 +- fsdev/file-op-9p.h | 1 + fsdev/qemu-fsdev-opts.c | 6 + fsdev/qemu-fsdev.c | 3 + hw/9pfs/9p.c | 1199 +++++++++++++++++++++++++++++++++++++++++++- hw/9pfs/9p.h | 173 +++++++ hw/9pfs/trace-events | 14 +- hw/9pfs/virtio-9p-device.c | 1 + qemu-options.hx | 5 +- vl.c | 9 +- 10 files changed, 1378 insertions(+), 39 deletions(-) -- 2.11.0