This is v7 of a proposed patch set for fixing file ID collisions with 9pfs.
v6->v7: * Rebased to https://github.com/gkurz/qemu/commits/9p-next (SHA1 7fc4c49e91). * Be pedantic and abort with error on wrong value for new command line argument 'multidevs'. * Adjusted patches to qemu code style guidelines. * Fixed potential crash in qp_table_destroy() on error path. * Use dedicated hash table init functions (qpd_table_init(), qpf_table_init(), qpp_table_init()): https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg00144.html * Use warn_report_once() instead of error_report_once() for issues interpreted merely as being warnings, not errors. * Simplified hash table destruction (due to simplified error path introduced by SHA1 7fc4c49e91). * Dropped capturing root_ino for now: https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg00146.html * Don't update proxy docs, since new command line argument 'multidevs' is limited to the local backend for now. * Mention in docs that readdir() is currently not blocked by 'multidevs=forbid'. * Rename qid_path_prefixmap() -> qid_path_suffixmap() in patch 3 (due to the semantic change of that function by that patch). Christian Schoenebeck (3): 9p: Added virtfs option 'multidevs=remap|forbid|warn' 9p: stat_to_qid: implement slow path 9p: Use variable length suffixes for inode remapping fsdev/file-op-9p.h | 5 + fsdev/qemu-fsdev-opts.c | 7 +- fsdev/qemu-fsdev.c | 17 ++ hw/9pfs/9p.c | 456 ++++++++++++++++++++++++++++++++++++++-- hw/9pfs/9p.h | 59 ++++++ qemu-options.hx | 26 ++- vl.c | 7 +- 7 files changed, 552 insertions(+), 25 deletions(-) -- 2.20.1