[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] 9pfs: fix inode sequencing in 'synth' driver
From: |
Greg Kurz |
Subject: |
Re: [PATCH] 9pfs: fix inode sequencing in 'synth' driver |
Date: |
Wed, 16 Mar 2022 12:10:43 +0100 |
On Mon, 14 Mar 2022 19:58:11 +0100
Christian Schoenebeck <qemu_oss@crudebyte.com> wrote:
> 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>
> ---
Good catch !
Reviewed-by: Greg Kurz <groug@kaod.org>
> 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 b3080e415b..f3c73d3b0b 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_malloc0(sizeof(V9fsSynthNode));
> 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;