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

Reply via email to