[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 1/7] 9pfs: fix inode sequencing in 'synth' driver
From: |
Christian Schoenebeck |
Subject: |
[PULL v2 1/7] 9pfs: fix inode sequencing in 'synth' driver |
Date: |
Sun, 01 May 2022 15:10:16 +0200 |
The 'synth' driver's root node and the 'synth' driver's first
subdirectory node falsely share the same inode number (zero), which
makes it impossible for 9p clients (i.e. 9p test cases) to distinguish
root node and first subdirectory from each other by comparing their QIDs
(which are derived by 9p server from driver's inode numbers).
Fix this issue by using prefix-increment instead of postfix-increment
operator while generating new inode numbers for subdirectories and files.
Link: https://lore.kernel.org/qemu-devel/3859307.hTDP4D0zbi@silver/
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Message-Id: <E1nTpyU-0000yR-9o@lizzy.crudebyte.com>
---
hw/9pfs/9p-synth.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/9pfs/9p-synth.c b/hw/9pfs/9p-synth.c
index d99d263985..1c5813e4dd 100644
--- a/hw/9pfs/9p-synth.c
+++ b/hw/9pfs/9p-synth.c
@@ -92,7 +92,7 @@ int qemu_v9fs_synth_mkdir(V9fsSynthNode *parent, int mode,
}
}
/* Add the name */
- node = v9fs_add_dir_node(parent, mode, name, NULL, synth_node_count++);
+ node = v9fs_add_dir_node(parent, mode, name, NULL, ++synth_node_count);
v9fs_add_dir_node(node, parent->attr->mode, "..",
parent->attr, parent->attr->inode);
v9fs_add_dir_node(node, node->attr->mode, ".",
@@ -130,7 +130,7 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int
mode,
mode = ((mode & 0777) | S_IFREG);
node = g_new0(V9fsSynthNode, 1);
node->attr = &node->actual_attr;
- node->attr->inode = synth_node_count++;
+ node->attr->inode = ++synth_node_count;
node->attr->nlink = 1;
node->attr->read = read;
node->attr->write = write;
--
2.30.2
- [PULL v2 0/7] 9p queue 2022-05-01 (previous 2022-04-30), Christian Schoenebeck, 2022/05/01
- [PULL v2 2/7] 9pfs: fix qemu_mknodat(S_IFREG) on macOS, Christian Schoenebeck, 2022/05/01
- [PULL v2 1/7] 9pfs: fix inode sequencing in 'synth' driver,
Christian Schoenebeck <=
- [PULL v2 3/7] 9pfs: fix qemu_mknodat(S_IFSOCK) on macOS, Christian Schoenebeck, 2022/05/01
- [PULL v2 4/7] 9pfs: fix wrong encoding of rdev field in Rgetattr on macOS, Christian Schoenebeck, 2022/05/01
- [PULL v2 5/7] 9pfs: fix wrong errno being sent to Linux client on macOS host, Christian Schoenebeck, 2022/05/01
- [PULL v2 6/7] 9pfs: fix removing non-existent POSIX ACL xattr on macOS host, Christian Schoenebeck, 2022/05/01
- [PULL v2 7/7] 9pfs: fix qemu_mknodat() to always return -1 on error on macOS host, Christian Schoenebeck, 2022/05/01
- Re: [PULL v2 0/7] 9p queue 2022-05-01 (previous 2022-04-30), Richard Henderson, 2022/05/01