Message ID | 91905ff817851a76d3becaf27208007dfdbf22e1.1576678644.git.qemu_oss@crudebyte.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | 9pfs: readdir optimization | expand |
On Wed, 18 Dec 2019 14:23:48 +0100 Christian Schoenebeck <qemu_oss@crudebyte.com> wrote: > This will provide the following virtual files by the 9pfs > synth driver: > > - /ReadDirDir/ReadDirFile99 > - /ReadDirDir/ReadDirFile98 > ... > - /ReadDirDir/ReadDirFile1 > - /ReadDirDir/ReadDirFile0 > > This virtual directory and its virtual 100 files will be > used by the upcoming 9pfs readdir tests. > > Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> > --- LGTM Reviewed-by: Greg Kurz <groug@kaod.org> > hw/9pfs/9p-synth.c | 19 +++++++++++++++++++ > hw/9pfs/9p-synth.h | 5 +++++ > 2 files changed, 24 insertions(+) > > diff --git a/hw/9pfs/9p-synth.c b/hw/9pfs/9p-synth.c > index 54239c9bbf..7eb210ffa8 100644 > --- a/hw/9pfs/9p-synth.c > +++ b/hw/9pfs/9p-synth.c > @@ -578,6 +578,25 @@ static int synth_init(FsContext *ctx, Error **errp) > NULL, v9fs_synth_qtest_flush_write, > ctx); > assert(!ret); > + > + /* Directory for READDIR test */ > + { > + V9fsSynthNode *dir = NULL; > + ret = qemu_v9fs_synth_mkdir( > + NULL, 0700, QTEST_V9FS_SYNTH_READDIR_DIR, &dir > + ); > + assert(!ret); > + for (i = 0; i < QTEST_V9FS_SYNTH_READDIR_NFILES; ++i) { > + char *name = g_strdup_printf( > + QTEST_V9FS_SYNTH_READDIR_FILE, i > + ); > + ret = qemu_v9fs_synth_add_file( > + dir, 0, name, NULL, NULL, ctx > + ); > + assert(!ret); > + g_free(name); > + } > + } > } > > return 0; > diff --git a/hw/9pfs/9p-synth.h b/hw/9pfs/9p-synth.h > index af7a993a1e..036d7e4a5b 100644 > --- a/hw/9pfs/9p-synth.h > +++ b/hw/9pfs/9p-synth.h > @@ -55,6 +55,11 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int mode, > #define QTEST_V9FS_SYNTH_LOPEN_FILE "LOPEN" > #define QTEST_V9FS_SYNTH_WRITE_FILE "WRITE" > > +/* for READDIR test */ > +#define QTEST_V9FS_SYNTH_READDIR_DIR "ReadDirDir" > +#define QTEST_V9FS_SYNTH_READDIR_FILE "ReadDirFile%d" > +#define QTEST_V9FS_SYNTH_READDIR_NFILES 100 > + > /* Any write to the "FLUSH" file is handled one byte at a time by the > * backend. If the byte is zero, the backend returns success (ie, 1), > * otherwise it forces the server to try again forever. Thus allowing
diff --git a/hw/9pfs/9p-synth.c b/hw/9pfs/9p-synth.c index 54239c9bbf..7eb210ffa8 100644 --- a/hw/9pfs/9p-synth.c +++ b/hw/9pfs/9p-synth.c @@ -578,6 +578,25 @@ static int synth_init(FsContext *ctx, Error **errp) NULL, v9fs_synth_qtest_flush_write, ctx); assert(!ret); + + /* Directory for READDIR test */ + { + V9fsSynthNode *dir = NULL; + ret = qemu_v9fs_synth_mkdir( + NULL, 0700, QTEST_V9FS_SYNTH_READDIR_DIR, &dir + ); + assert(!ret); + for (i = 0; i < QTEST_V9FS_SYNTH_READDIR_NFILES; ++i) { + char *name = g_strdup_printf( + QTEST_V9FS_SYNTH_READDIR_FILE, i + ); + ret = qemu_v9fs_synth_add_file( + dir, 0, name, NULL, NULL, ctx + ); + assert(!ret); + g_free(name); + } + } } return 0; diff --git a/hw/9pfs/9p-synth.h b/hw/9pfs/9p-synth.h index af7a993a1e..036d7e4a5b 100644 --- a/hw/9pfs/9p-synth.h +++ b/hw/9pfs/9p-synth.h @@ -55,6 +55,11 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int mode, #define QTEST_V9FS_SYNTH_LOPEN_FILE "LOPEN" #define QTEST_V9FS_SYNTH_WRITE_FILE "WRITE" +/* for READDIR test */ +#define QTEST_V9FS_SYNTH_READDIR_DIR "ReadDirDir" +#define QTEST_V9FS_SYNTH_READDIR_FILE "ReadDirFile%d" +#define QTEST_V9FS_SYNTH_READDIR_NFILES 100 + /* Any write to the "FLUSH" file is handled one byte at a time by the * backend. If the byte is zero, the backend returns success (ie, 1), * otherwise it forces the server to try again forever. Thus allowing
This will provide the following virtual files by the 9pfs synth driver: - /ReadDirDir/ReadDirFile99 - /ReadDirDir/ReadDirFile98 ... - /ReadDirDir/ReadDirFile1 - /ReadDirDir/ReadDirFile0 This virtual directory and its virtual 100 files will be used by the upcoming 9pfs readdir tests. Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> --- hw/9pfs/9p-synth.c | 19 +++++++++++++++++++ hw/9pfs/9p-synth.h | 5 +++++ 2 files changed, 24 insertions(+)