mirror of https://gitee.com/openkylin/qemu.git
hw/9pfs: Update v9fs_fsync to use coroutines
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
This commit is contained in:
parent
4743d1f5d3
commit
4e9ad44498
|
@ -1530,33 +1530,28 @@ out:
|
||||||
v9fs_string_free(&fullname);
|
v9fs_string_free(&fullname);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void v9fs_post_do_fsync(V9fsState *s, V9fsPDU *pdu, int err)
|
|
||||||
{
|
|
||||||
if (err == -1) {
|
|
||||||
err = -errno;
|
|
||||||
}
|
|
||||||
complete_pdu(s, pdu, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void v9fs_fsync(void *opaque)
|
static void v9fs_fsync(void *opaque)
|
||||||
{
|
{
|
||||||
V9fsPDU *pdu = opaque;
|
int err;
|
||||||
V9fsState *s = pdu->s;
|
|
||||||
int32_t fid;
|
int32_t fid;
|
||||||
|
int datasync;
|
||||||
size_t offset = 7;
|
size_t offset = 7;
|
||||||
V9fsFidState *fidp;
|
V9fsFidState *fidp;
|
||||||
int datasync;
|
V9fsPDU *pdu = opaque;
|
||||||
int err;
|
V9fsState *s = pdu->s;
|
||||||
|
|
||||||
pdu_unmarshal(pdu, offset, "dd", &fid, &datasync);
|
pdu_unmarshal(pdu, offset, "dd", &fid, &datasync);
|
||||||
fidp = lookup_fid(s, fid);
|
fidp = lookup_fid(s, fid);
|
||||||
if (fidp == NULL) {
|
if (fidp == NULL) {
|
||||||
err = -ENOENT;
|
err = -ENOENT;
|
||||||
v9fs_post_do_fsync(s, pdu, err);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
err = v9fs_do_fsync(s, fidp->fs.fd, datasync);
|
err = v9fs_co_fsync(s, fidp, datasync);
|
||||||
v9fs_post_do_fsync(s, pdu, err);
|
if (!err) {
|
||||||
|
err = offset;
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
complete_pdu(s, pdu, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void v9fs_clunk(void *opaque)
|
static void v9fs_clunk(void *opaque)
|
||||||
|
|
Loading…
Reference in New Issue