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.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/hw/9pfs/codir.c b/hw/9pfs/codir.c
index 91df7f7a7..d91f9ad6e 100644
--- a/hw/9pfs/codir.c
+++ b/hw/9pfs/codir.c
@@ -1,6 +1,5 @@
-
/*
- * Virtio 9p backend
+ * 9p backend
*
* Copyright IBM, Corp. 2011
*
@@ -18,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;
@@ -29,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;
}
});