@@ -1950,13 +1950,13 @@ static void v9fs_read_post_seekdir(V9fsState *s, V9fsReadState *vs, ssize_t err)
if (err) {
goto out;
}
- v9fs_stat_free(&vs->v9stat);
- v9fs_string_free(&vs->name);
vs->offset += pdu_marshal(vs->pdu, vs->offset, "d", vs->count);
vs->offset += vs->count;
err = vs->offset;
out:
complete_pdu(s, vs->pdu, err);
+ v9fs_stat_free(&vs->v9stat);
+ v9fs_string_free(&vs->name);
qemu_free(vs);
return;
}
@@ -3583,21 +3583,6 @@ out:
qemu_free(vs);
}
-static void v9fs_readlink_post_readlink(V9fsState *s, V9fsReadLinkState *vs,
- int err)
-{
- if (err < 0) {
- err = -errno;
- goto out;
- }
- vs->offset += pdu_marshal(vs->pdu, vs->offset, "s", &vs->target);
- err = vs->offset;
-out:
- complete_pdu(s, vs->pdu, err);
- v9fs_string_free(&vs->target);
- qemu_free(vs);
-}
-
static void v9fs_readlink(void *opaque)
{
V9fsPDU *pdu = opaque;
@@ -3612,7 +3597,6 @@ static void v9fs_readlink(void *opaque)
vs->offset = 7;
pdu_unmarshal(vs->pdu, vs->offset, "d", &fid);
-
fidp = lookup_fid(s, fid);
if (fidp == NULL) {
err = -ENOENT;
@@ -3621,10 +3605,15 @@ static void v9fs_readlink(void *opaque)
v9fs_string_init(&vs->target);
err = v9fs_do_readlink(s, &fidp->path, &vs->target);
- v9fs_readlink_post_readlink(s, vs, err);
- return;
+ if (err < 0) {
+ err = -errno;
+ goto out;
+ }
+ vs->offset += pdu_marshal(vs->pdu, vs->offset, "s", &vs->target);
+ err = vs->offset;
out:
complete_pdu(s, vs->pdu, err);
+ v9fs_string_free(&vs->target);
qemu_free(vs);
}
In the process of preparation for coroutine threads, remove all post functions and make the function more readable. Signed-off-by: Venkateswararao Jujjuri "<jvrao@linux.vnet.ibm.com> --- hw/9pfs/virtio-9p.c | 29 +++++++++-------------------- 1 files changed, 9 insertions(+), 20 deletions(-)