[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 0/5] 9p: Fix file ID collisions
From: |
Christian Schoenebeck |
Subject: |
[Qemu-devel] [PATCH v5 0/5] 9p: Fix file ID collisions |
Date: |
Wed, 3 Jul 2019 13:44:32 +0200 |
This is v5 of a proposed patch set for fixing file ID collisions with 9pfs.
v4->v5:
All Patches:
* Added details to individual commit logs of what has been changed
exactly by me on top of Antonios' original 4 patches.
Patch 1:
* Fixed format specifiers in hw/9pfs/trace-events.
Patch 2:
* Fixed typo in commit log.
* Assign dev_id to export root's device already in
v9fs_device_realize_common(), not postponed in stat_to_qid().
* Return -ENODEV instead of -ENOSYS in stat_to_qid().
Patch 3:
* Added missing manual parts for new virtfs option 'remap_inodes' in
qemu-options.hx.
* Capture root_ino in v9fs_device_realize_common() as well, not just the
device id.
* Added function dirent_to_qid().
* Fixed v9fs_do_readdir() having exposed info outside export root with
'..' entry (no matter if inode remapping was on or not).
* Fixed v9fs_do_readdir() not having remapped inodes.
* Fixed definition of QPATH_INO_MASK.
* Log error message when running out of prefixes in qid_path_prefixmap().
* Adjusted changes in stat_to_qid() to qemu code style guidelines.
Patch 4:
* Log error message when running out of prefixes in qid_path_fullmap().
* Log error message about potential degraded performance in
qid_path_prefixmap() (that is when qid_path_fullmap() will start to
kick in next).
* Fixed typo in code comment.
Patch 5:
* Dropped fixed (16 bit) size prefix code and hence removed usage of
P9_VARI_LENGTH_INODE_SUFFIXES macro checks all over the place.
* Dropped function expGolombEncodeK0(uint64_t n) which was optimized for
the expected default value of k=0; instead always use the generalized
function expGolombEncode(uint64_t n, int k) instead now.
* Adjusted changes in hw/9pfs/9p.c to qemu code style guidelines.
* Adjusted functions' API comments in hw/9pfs/9p.c.
v3->v4:
* Rebased to latest git master head.
* Splitted Antonios' patch set to its original 4 individual patches.
(was merged previously as only 1 patch).
* Addressed discussed issues directly on Antonios' patches
(was a separate patch before).
* Added virtfs command line option "remap_inodes": Unless this option
is not enabled, no inode remapping is performed at all, the user
just gets an error message when trying to use more than 1 device
per export.
* Dropped persistency feature of QIDs beyond reboots.
* Dropped disputed "vii" feature.
Christian Schoenebeck (5):
9p: unsigned type for type, version, path
9p: Treat multiple devices on one export as an error
9p: Added virtfs option 'remap_inodes'
9p: stat_to_qid: implement slow path
9p: Use variable length suffixes for inode remapping
fsdev/9p-marshal.h | 6 +-
fsdev/file-op-9p.h | 1 +
fsdev/qemu-fsdev-opts.c | 7 +-
fsdev/qemu-fsdev.c | 6 +
hw/9pfs/9p.c | 508 +++++++++++++++++++++++++++++++++++++++++++++---
hw/9pfs/9p.h | 51 +++++
hw/9pfs/trace-events | 14 +-
qemu-options.hx | 25 ++-
vl.c | 3 +
9 files changed, 573 insertions(+), 48 deletions(-)
--
2.11.0
- [Qemu-devel] [PATCH v5 0/5] 9p: Fix file ID collisions,
Christian Schoenebeck <=
- [Qemu-devel] [PATCH v5 4/5] 9p: stat_to_qid: implement slow path, Christian Schoenebeck, 2019/07/03
- [Qemu-devel] [PATCH v5 1/5] 9p: unsigned type for type, version, path, Christian Schoenebeck, 2019/07/03
- [Qemu-devel] [PATCH v5 3/5] 9p: Added virtfs option 'remap_inodes', Christian Schoenebeck, 2019/07/03
- [Qemu-devel] [PATCH v5 2/5] 9p: Treat multiple devices on one export as an error, Christian Schoenebeck, 2019/07/03
- [Qemu-devel] [PATCH v5 5/5] 9p: Use variable length suffixes for inode remapping, Christian Schoenebeck, 2019/07/03
- Re: [Qemu-devel] [PATCH v5 0/5] 9p: Fix file ID collisions, no-reply, 2019/07/03
- Re: [Qemu-devel] [PATCH v5 0/5] 9p: Fix file ID collisions, no-reply, 2019/07/03