Revision b41e95d3 hw/virtio-9p.c
b/hw/virtio-9p.c | ||
---|---|---|
1837 | 1837 |
qemu_free(vs); |
1838 | 1838 |
} |
1839 | 1839 |
|
1840 |
static void v9fs_post_do_fsync(V9fsState *s, V9fsPDU *pdu, int err) |
|
1841 |
{ |
|
1842 |
if (err == -1) { |
|
1843 |
err = -errno; |
|
1844 |
} |
|
1845 |
complete_pdu(s, pdu, err); |
|
1846 |
} |
|
1847 |
|
|
1848 |
static void v9fs_fsync(V9fsState *s, V9fsPDU *pdu) |
|
1849 |
{ |
|
1850 |
int32_t fid; |
|
1851 |
size_t offset = 7; |
|
1852 |
V9fsFidState *fidp; |
|
1853 |
int err; |
|
1854 |
|
|
1855 |
pdu_unmarshal(pdu, offset, "d", &fid); |
|
1856 |
fidp = lookup_fid(s, fid); |
|
1857 |
if (fidp == NULL) { |
|
1858 |
err = -ENOENT; |
|
1859 |
v9fs_post_do_fsync(s, pdu, err); |
|
1860 |
return; |
|
1861 |
} |
|
1862 |
err = v9fs_do_fsync(s, fidp->fs.fd); |
|
1863 |
v9fs_post_do_fsync(s, pdu, err); |
|
1864 |
} |
|
1865 |
|
|
1840 | 1866 |
static void v9fs_clunk(V9fsState *s, V9fsPDU *pdu) |
1841 | 1867 |
{ |
1842 | 1868 |
int32_t fid; |
... | ... | |
3514 | 3540 |
[P9_TSTAT] = v9fs_stat, |
3515 | 3541 |
[P9_TWALK] = v9fs_walk, |
3516 | 3542 |
[P9_TCLUNK] = v9fs_clunk, |
3543 |
[P9_TFSYNC] = v9fs_fsync, |
|
3517 | 3544 |
[P9_TOPEN] = v9fs_open, |
3518 | 3545 |
[P9_TREAD] = v9fs_read, |
3519 | 3546 |
#if 0 |
Also available in: Unified diff