Skip to content

Commit

Permalink
hw/9pfs: avoid 'path' copy in v9fs_walk()
Browse files Browse the repository at this point in the history
The v9fs_walk() function resolves all client submitted path nodes to the
local 'pathes' array. Using a separate string scalar variable 'path'
inside the background worker thread loop and copying that local 'path'
string scalar variable subsequently to the 'pathes' array (at the end of
each loop iteration) is not necessary.

Instead simply resolve each path directly to the 'pathes' array and
don't use the string scalar variable 'path' inside the fs worker thread
loop at all.

The only advantage of the 'path' scalar was that in case of an error
the respective 'pathes' element would not be filled. Right now this is
not an issue as the v9fs_walk() function returns as soon as any error
occurs.

Suggested-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Message-Id: <7dacbecf25b2c9b4a0ce12d689a8a535f09a31e3.1629208359.git.qemu_oss@crudebyte.com>
  • Loading branch information
cschoenebeck committed Aug 20, 2021
1 parent ecf2706 commit 7772715
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions hw/9pfs/9p.c
Original file line number Diff line number Diff line change
Expand Up @@ -1787,7 +1787,8 @@ static void coroutine_fn v9fs_walk(void *opaque)
strcmp("..", wnames[name_idx].data))
{
err = s->ops->name_to_path(&s->ctx, &dpath,
wnames[name_idx].data, &path);
wnames[name_idx].data,
&pathes[name_idx]);
if (err < 0) {
err = -errno;
break;
Expand All @@ -1796,14 +1797,13 @@ static void coroutine_fn v9fs_walk(void *opaque)
err = -EINTR;
break;
}
err = s->ops->lstat(&s->ctx, &path, &stbuf);
err = s->ops->lstat(&s->ctx, &pathes[name_idx], &stbuf);
if (err < 0) {
err = -errno;
break;
}
stbufs[name_idx] = stbuf;
v9fs_path_copy(&dpath, &path);
v9fs_path_copy(&pathes[name_idx], &path);
v9fs_path_copy(&dpath, &pathes[name_idx]);
}
}
});
Expand Down

0 comments on commit 7772715

Please sign in to comment.