summaryrefslogtreecommitdiff
path: root/hw/9pfs/codir.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/9pfs/codir.c')
-rw-r--r--hw/9pfs/codir.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/hw/9pfs/codir.c b/hw/9pfs/codir.c
index 8e3ba17bae..d91f9ad6eb 100644
--- a/hw/9pfs/codir.c
+++ b/hw/9pfs/codir.c
@@ -17,8 +17,7 @@
#include "qemu/coroutine.h"
#include "coth.h"
-int v9fs_co_readdir_r(V9fsPDU *pdu, V9fsFidState *fidp, struct dirent *dent,
- struct dirent **result)
+int v9fs_co_readdir(V9fsPDU *pdu, V9fsFidState *fidp, struct dirent **dent)
{
int err;
V9fsState *s = pdu->s;
@@ -28,11 +27,14 @@ int v9fs_co_readdir_r(V9fsPDU *pdu, V9fsFidState *fidp, struct dirent *dent,
}
v9fs_co_run_in_worker(
{
+ struct dirent *entry;
+
errno = 0;
- err = s->ops->readdir_r(&s->ctx, &fidp->fs, dent, result);
- if (!*result && errno) {
+ entry = s->ops->readdir(&s->ctx, &fidp->fs);
+ if (!entry && errno) {
err = -errno;
} else {
+ *dent = entry;
err = 0;
}
});