summaryrefslogtreecommitdiff
path: root/hw/9pfs/codir.c
diff options
context:
space:
mode:
authorGreg Kurz <gkurz@linux.vnet.ibm.com>2016-06-06 11:52:34 +0200
committerGreg Kurz <gkurz@linux.vnet.ibm.com>2016-06-06 11:52:34 +0200
commit635324e83e238598e86628dba5ab62ce910e6f72 (patch)
tree959af05a3fb65f914171fa2c343f8b3fef9130b6 /hw/9pfs/codir.c
parent7cde47d4a89d5efefcc805788bc29133f4f3c5c7 (diff)
downloadqemu-635324e83e238598e86628dba5ab62ce910e6f72.tar.gz
qemu-635324e83e238598e86628dba5ab62ce910e6f72.tar.bz2
qemu-635324e83e238598e86628dba5ab62ce910e6f72.zip
9p: switch back to readdir()
This patch changes the 9p code to use readdir() again instead of readdir_r(), which is deprecated in glibc 2.24. All the locking was put in place by a previous patch. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
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;
}
});