From: Christian Schoenebeck <qemu_oss@crudebyte.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,
Richard Henderson <richard.henderson@linaro.org>
Cc: Greg Kurz <groug@kaod.org>,
Akihiko Odaki <akihiko.odaki@gmail.com>,
Will Cohen <wwcohen@gmail.com>
Subject: [PULL v2 1/7] 9pfs: fix inode sequencing in 'synth' driver
Date: Sun, 01 May 2022 15:10:16 +0200 [thread overview]
Message-ID: <0009df31cb51cb2be681f4eebd58a9776d75a580.1651410615.git.qemu_oss@crudebyte.com> (raw)
In-Reply-To: <cover.1651410615.git.qemu_oss@crudebyte.com>
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
next prev parent reply other threads:[~2022-05-01 13:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-01 13:10 [PULL v2 0/7] 9p queue 2022-05-01 (previous 2022-04-30) Christian Schoenebeck
2022-05-01 13:10 ` [PULL v2 6/7] 9pfs: fix removing non-existent POSIX ACL xattr on macOS host Christian Schoenebeck
2022-05-01 13:10 ` Christian Schoenebeck [this message]
2022-05-01 13:10 ` [PULL v2 7/7] 9pfs: fix qemu_mknodat() to always return -1 on error " Christian Schoenebeck
2022-05-01 13:10 ` [PULL v2 5/7] 9pfs: fix wrong errno being sent to Linux client " Christian Schoenebeck
2022-05-01 13:10 ` [PULL v2 4/7] 9pfs: fix wrong encoding of rdev field in Rgetattr on macOS Christian Schoenebeck
2022-05-01 13:10 ` [PULL v2 3/7] 9pfs: fix qemu_mknodat(S_IFSOCK) " Christian Schoenebeck
2022-05-01 13:10 ` [PULL v2 2/7] 9pfs: fix qemu_mknodat(S_IFREG) " Christian Schoenebeck
2022-05-01 16:52 ` [PULL v2 0/7] 9p queue 2022-05-01 (previous 2022-04-30) Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0009df31cb51cb2be681f4eebd58a9776d75a580.1651410615.git.qemu_oss@crudebyte.com \
--to=qemu_oss@crudebyte.com \
--cc=akihiko.odaki@gmail.com \
--cc=groug@kaod.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=wwcohen@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).