[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/29] hw/9pfs: Add yield support for open and opend
From: |
Venkateswararao Jujjuri (JV) |
Subject: |
[Qemu-devel] [PATCH 06/29] hw/9pfs: Add yield support for open and opendir coroutine |
Date: |
Wed, 25 May 2011 16:52:54 -0700 |
From: Aneesh Kumar K.V <address@hidden>
Signed-off-by: Aneesh Kumar K.V <address@hidden>
Signed-off-by: Venkateswararao Jujjuri "<address@hidden>
---
hw/9pfs/codir.c | 16 ++++++++++++++++
hw/9pfs/cofile.c | 16 ++++++++++++++++
hw/9pfs/virtio-9p-coth.h | 2 ++
3 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/hw/9pfs/codir.c b/hw/9pfs/codir.c
index 28f2ad7..bc6a105 100644
--- a/hw/9pfs/codir.c
+++ b/hw/9pfs/codir.c
@@ -83,3 +83,19 @@ int v9fs_co_mkdir(V9fsState *s, char *name, mode_t mode,
uid_t uid, gid_t gid)
});
return err;
}
+
+int v9fs_co_opendir(V9fsState *s, V9fsFidState *fidp)
+{
+ int err;
+
+ v9fs_co_run_in_worker(
+ {
+ fidp->fs.dir = s->ops->opendir(&s->ctx, fidp->path.data);
+ if (!fidp->fs.dir) {
+ err = -errno;
+ } else {
+ err = 0;
+ }
+ });
+ return err;
+}
diff --git a/hw/9pfs/cofile.c b/hw/9pfs/cofile.c
index e400b86..4a3ca21 100644
--- a/hw/9pfs/cofile.c
+++ b/hw/9pfs/cofile.c
@@ -44,3 +44,19 @@ int v9fs_co_fstat(V9fsState *s, int fd, struct stat *stbuf)
});
return err;
}
+
+int v9fs_co_open(V9fsState *s, V9fsFidState *fidp, int flags)
+{
+ int err;
+
+ v9fs_co_run_in_worker(
+ {
+ fidp->fs.fd = s->ops->open(&s->ctx, fidp->path.data, flags);
+ if (fidp->fs.fd == -1) {
+ err = -errno;
+ } else {
+ err = 0;
+ }
+ });
+ return err;
+}
diff --git a/hw/9pfs/virtio-9p-coth.h b/hw/9pfs/virtio-9p-coth.h
index 88070d3..1df7063 100644
--- a/hw/9pfs/virtio-9p-coth.h
+++ b/hw/9pfs/virtio-9p-coth.h
@@ -77,4 +77,6 @@ extern int v9fs_co_mkdir(V9fsState *, char *, mode_t, uid_t,
gid_t);
extern int v9fs_co_remove(V9fsState *, V9fsString *);
extern int v9fs_co_rename(V9fsState *, V9fsString *, V9fsString *);
extern int v9fs_co_fstat(V9fsState *, int, struct stat *);
+extern int v9fs_co_opendir(V9fsState *, V9fsFidState *);
+extern int v9fs_co_open(V9fsState *, V9fsFidState *, int);
#endif
--
1.7.1
- [Qemu-devel] [0/29] Second batch of VirtFS routines converted to coroutines., Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 02/29] hw/9pfs: Update vfs_rename to use coroutines, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 06/29] hw/9pfs: Add yield support for open and opendir coroutine,
Venkateswararao Jujjuri (JV) <=
- [Qemu-devel] [PATCH 03/29] hw/9pfs: Add yeild support for fstat coroutine, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 01/29] hw/9pfs: Add yeild support to rename coroutine, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 04/29] hw/9pfs: Update v9fs_lock to use coroutines, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 09/29] [virtio-9p] clean up v9fs_lcreate, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 05/29] hw/9pfs: Update v9fs_getlock to use coroutines, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 14/29] hw/9pfs: Update v9fs_clunk to use coroutines, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 07/29] hw/9pfs: Update v9fs_open to use coroutines, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 16/29] hw/9pfs: Update v9fs_fsync to use coroutines, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 22/29] [virtio-9p] coroutine and threading for v9fs_do_link, Venkateswararao Jujjuri (JV), 2011/05/25
- [Qemu-devel] [PATCH 10/29] [PATCH] [virtio-9p] coroutine and threading for open2, Venkateswararao Jujjuri (JV), 2011/05/25