On Thu, Aug 4, 2011 at 11:06 AM, Harsh Prateek Bora <ha...@linux.vnet.ibm.com> wrote: > This patch provides support for st_gen for handle based fs type server. > Currently the support is provided for ext4, btrfs, reiserfs and xfs. > > Signed-off-by: Harsh Prateek Bora <ha...@linux.vnet.ibm.com> > --- > hw/9pfs/virtio-9p-handle.c | 30 ++++++++++++++++++++++++++++++ > 1 files changed, 30 insertions(+), 0 deletions(-)
Does handle-based file I/O really need to duplicate all this code? Is it possible to use either regular open or handle-based open from a single local fs codebase? > diff --git a/hw/9pfs/virtio-9p-handle.c b/hw/9pfs/virtio-9p-handle.c > index 548a841..8dff662 100644 > --- a/hw/9pfs/virtio-9p-handle.c > +++ b/hw/9pfs/virtio-9p-handle.c > @@ -20,6 +20,9 @@ > #include <sys/socket.h> > #include <sys/un.h> > #include <attr/xattr.h> > +#include <linux/fs.h> > +#include <linux/magic.h> > +#include <sys/ioctl.h> > > struct handle_data { > int mountfd; > @@ -543,9 +546,25 @@ static int handle_unlinkat(FsContext *ctx, V9fsPath *dir, > return ret; > } > > +static int handle_ioc_getversion(FsContext *ctx, V9fsPath *path, uint64_t > *st_gen) > +{ > + int mode = 0600; > + int fd; > + > + fd = handle_open(ctx, path, mode); > + if(fd < 0) { > + return fd; > + } > + return ioctl(fd, FS_IOC_GETVERSION, st_gen); fd is leaked here. Stefan