[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/13] 9p: introduce the v9fs_get_fd_fid() helper
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PATCH 03/13] 9p: introduce the v9fs_get_fd_fid() helper |
Date: |
Mon, 27 Jun 2016 11:41:20 +0200 |
User-agent: |
StGit/0.17.1-dirty |
This will be used by all file descriptor based ops.
Signed-off-by: Greg Kurz <address@hidden>
---
hw/9pfs/9p-handle.c | 12 ++----------
hw/9pfs/9p-local.c | 12 ++----------
hw/9pfs/9p-proxy.c | 12 ++----------
hw/9pfs/9p.c | 13 +++++++++++++
hw/9pfs/9p.h | 2 ++
5 files changed, 21 insertions(+), 30 deletions(-)
diff --git a/hw/9pfs/9p-handle.c b/hw/9pfs/9p-handle.c
index 3d77594f9245..2e741535df24 100644
--- a/hw/9pfs/9p-handle.c
+++ b/hw/9pfs/9p-handle.c
@@ -259,11 +259,7 @@ static int handle_fstat(FsContext *fs_ctx, int fid_type,
{
int fd;
- if (fid_type == P9_FID_DIR) {
- fd = dirfd(fs->dir.stream);
- } else {
- fd = fs->fd;
- }
+ fd = v9fs_get_fd_fid(fid_type, fs);
return fstat(fd, stbuf);
}
@@ -406,11 +402,7 @@ static int handle_fsync(FsContext *ctx, int fid_type,
{
int fd;
- if (fid_type == P9_FID_DIR) {
- fd = dirfd(fs->dir.stream);
- } else {
- fd = fs->fd;
- }
+ fd = v9fs_get_fd_fid(fid_type, fs);
if (datasync) {
return qemu_fdatasync(fd);
diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index b363711fe2f0..6804c6558b8e 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -630,11 +630,7 @@ static int local_fstat(FsContext *fs_ctx, int fid_type,
{
int err, fd;
- if (fid_type == P9_FID_DIR) {
- fd = dirfd(fs->dir.stream);
- } else {
- fd = fs->fd;
- }
+ fd = v9fs_get_fd_fid(fid_type, fs);
err = fstat(fd, stbuf);
if (err) {
@@ -1001,11 +997,7 @@ static int local_fsync(FsContext *ctx, int fid_type,
{
int fd;
- if (fid_type == P9_FID_DIR) {
- fd = dirfd(fs->dir.stream);
- } else {
- fd = fs->fd;
- }
+ fd = v9fs_get_fd_fid(fid_type, fs);
if (datasync) {
return qemu_fdatasync(fd);
diff --git a/hw/9pfs/9p-proxy.c b/hw/9pfs/9p-proxy.c
index f265501eac1d..d78ff7b1bd8d 100644
--- a/hw/9pfs/9p-proxy.c
+++ b/hw/9pfs/9p-proxy.c
@@ -788,11 +788,7 @@ static int proxy_fstat(FsContext *fs_ctx, int fid_type,
{
int fd;
- if (fid_type == P9_FID_DIR) {
- fd = dirfd(fs->dir.stream);
- } else {
- fd = fs->fd;
- }
+ fd = v9fs_get_fd_fid(fid_type, fs);
return fstat(fd, stbuf);
}
@@ -933,11 +929,7 @@ static int proxy_fsync(FsContext *ctx, int fid_type,
{
int fd;
- if (fid_type == P9_FID_DIR) {
- fd = dirfd(fs->dir.stream);
- } else {
- fd = fs->fd;
- }
+ fd = v9fs_get_fd_fid(fid_type, fs);
if (datasync) {
return qemu_fdatasync(fd);
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 9acff9293c60..626d4aa8ebb6 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -240,6 +240,19 @@ static int v9fs_reopen_fid(V9fsPDU *pdu, V9fsFidState *f)
return err;
}
+int v9fs_get_fd_fid(int fid_type, V9fsFidOpenState *fs)
+{
+ int fd = -1;
+
+ if (fid_type == P9_FID_DIR) {
+ fd = dirfd(fs->dir.stream);
+ } else if (fid_type == P9_FID_FILE) {
+ fd = fs->fd;
+ }
+
+ return fd;
+}
+
static V9fsFidState *get_fid(V9fsPDU *pdu, int32_t fid)
{
int err;
diff --git a/hw/9pfs/9p.h b/hw/9pfs/9p.h
index d2030fdf56e9..d0ccc0089771 100644
--- a/hw/9pfs/9p.h
+++ b/hw/9pfs/9p.h
@@ -202,6 +202,8 @@ union V9fsFidOpenState {
void *private;
};
+extern int v9fs_get_fd_fid(int fid_type, V9fsFidOpenState *fs);
+
struct V9fsFidState
{
int fid_type;
- [Qemu-devel] [PATCH 00/13] 9p: reconcile virtfs with unlinked files, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 01/13] 9p: synth: drop v9fs_ prefix, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 02/13] 9p: factour out duplicate code from local_fstat() and local_lstat(), Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 03/13] 9p: introduce the v9fs_get_fd_fid() helper,
Greg Kurz <=
- [Qemu-devel] [PATCH 04/13] 9p: getattr: use fstat if we have a fd, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 05/13] 9p: introduce ftruncate file op, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 06/13] oslib: support futimens() if available, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 07/13] 9p: introduce futimens file op, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 08/13] 9p: add a fd argument to xattr helpers, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 09/13] 9p: introduce fchown file op, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 10/13] 9p: introduce fchmod file op, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 11/13] 9p: xattr fid to reference file fid, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 12/13] 9p: introduce fgetxattr file op, Greg Kurz, 2016/06/27
- [Qemu-devel] [PATCH 13/13] 9p: introduce flistxattr file op, Greg Kurz, 2016/06/27