On Monday, March 10, 2025 6:10:58 PM CET Greg Kurz wrote: > Factor out duplicated code to a single helper. More users to come. > > Signed-off-by: Greg Kurz <gr...@kaod.org> > --- > hw/9pfs/9p-local.c | 21 +++++++++++---------- > 1 file changed, 11 insertions(+), 10 deletions(-) > > diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c > index 928523afcc6c..c4366c867988 100644 > --- a/hw/9pfs/9p-local.c > +++ b/hw/9pfs/9p-local.c > @@ -766,10 +766,9 @@ out: > return err; > } > > -static int local_fstat(FsContext *fs_ctx, int fid_type, > - V9fsFidOpenState *fs, struct stat *stbuf) > +static int local_fid_fd(int fid_type, V9fsFidOpenState *fs) > { > - int err, fd; > + int fd; > > if (fid_type == P9_FID_DIR) { > fd = dirfd(fs->dir.stream); > @@ -777,6 +776,14 @@ static int local_fstat(FsContext *fs_ctx, int fid_type, > fd = fs->fd; > } > > + return fd; > +}
Maybe simplifying this like: static int local_fid_fd(int fid_type, V9fsFidOpenState *fs) { if (fid_type == P9_FID_DIR) { return dirfd(fs->dir.stream); } else { return fs->fd; } } or even just: static int local_fid_fd(int fid_type, V9fsFidOpenState *fs) { return (fid_type == P9_FID_DIR) ? dirfd(fs->dir.stream) : return fs->fd; } /Christian > + > +static int local_fstat(FsContext *fs_ctx, int fid_type, > + V9fsFidOpenState *fs, struct stat *stbuf) > +{ > + int err, fd = local_fid_fd(fid_type, fs); > + > err = fstat(fd, stbuf); > if (err) { > return err; > @@ -1167,13 +1174,7 @@ out: > static int local_fsync(FsContext *ctx, int fid_type, > V9fsFidOpenState *fs, int datasync) > { > - int fd; > - > - if (fid_type == P9_FID_DIR) { > - fd = dirfd(fs->dir.stream); > - } else { > - fd = fs->fd; > - } > + int fd = local_fid_fd(fid_type, fs); > > if (datasync) { > return qemu_fdatasync(fd); >