diff mbox

[1.0] 9pfs: improve portability to older systems

Message ID 87k46j8dsq.fsf@linux.vnet.ibm.com
State New
Headers show

Commit Message

Aneesh Kumar K.V Nov. 29, 2011, 9:43 a.m. UTC
On Mon, 28 Nov 2011 16:36:18 -0600, Anthony Liguori <anthony@codemonkey.ws> wrote:
> On 11/23/2011 12:16 AM, Aneesh Kumar K.V wrote:
> > On Mon, 21 Nov 2011 09:29:11 +0100, Paolo Bonzini<pbonzini@redhat.com>  wrote:
> >> Small requirements on "new" features have percolated to virtio-9p-local.c.
> >> In particular, the utimensat wrapper actually only supports dirfd = AT_FDCWD
> >> and flags = AT_SYMLINK_NOFOLLOW in the fallback code.  Remove the arguments
> >> so that virtio-9p-local.c will not use AT_* constants.
> >>
> >> At the same time, fail local_ioc_getversion if the ioctl is not supported
> >> by the host.
> >>
> >> Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>
> 
> Hrm, I may have messed this up.  My mailbox processing script seems to have 
> found Aneesh's patch instead of Paolo's.
> 
> Can ya'll take a look at 2507718baf311ea78156c6777d38410a9f89ce89 and tell me if 
> I need to revert it?
> 

No i don't think that needs a revert. But we may need the below patch. I
have also send the change as a separate mail to the list.

From db7fdc1c8eb95d556c18ee44fd4f9d5a3aabf9c4 Mon Sep 17 00:00:00 2001
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Date: Tue, 29 Nov 2011 15:10:52 +0530
Subject: [PATCH] hw/9pfs: Improve portability to older systems

commit ae0f940e6b4f5177892dd6a12762282fa9089972
2507718baf311ea78156c6777d38410a9f89ce89 missed updating
virtio-9p-handle.c.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
 hw/9pfs/virtio-9p-handle.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/hw/9pfs/virtio-9p-handle.c b/hw/9pfs/virtio-9p-handle.c
index 7644ae5..93552a1 100644
--- a/hw/9pfs/virtio-9p-handle.c
+++ b/hw/9pfs/virtio-9p-handle.c
@@ -599,7 +599,8 @@  static int handle_unlinkat(FsContext *ctx, V9fsPath *dir,
 static int handle_ioc_getversion(FsContext *ctx, V9fsPath *path,
                                  mode_t st_mode, uint64_t *st_gen)
 {
-    int err;
+    int err = -ENOTTY;
+#ifdef FS_IOC_GETVERSION
     V9fsFidOpenState fid_open;
 
     /*
@@ -615,6 +616,7 @@  static int handle_ioc_getversion(FsContext *ctx, V9fsPath *path,
     }
     err = ioctl(fid_open.fd, FS_IOC_GETVERSION, st_gen);
     handle_close(ctx, &fid_open);
+#endif
     return err;
 }
 
@@ -630,6 +632,7 @@  static int handle_init(FsContext *ctx)
         ret = data->mountfd;
         goto err_out;
     }
+#ifdef FS_IOC_GETVERSION
     ret = statfs(ctx->fs_root, &stbuf);
     if (!ret) {
         switch (stbuf.f_type) {
@@ -641,6 +644,7 @@  static int handle_init(FsContext *ctx)
             break;
         }
     }
+#endif
     memset(&fh, 0, sizeof(struct file_handle));
     ret = name_to_handle(data->mountfd, ".", &fh, &mnt_id, 0);
     if (ret && errno == EOVERFLOW) {