[PATCH] vfs_glusterfs: New file creation fix.

Christopher R. Hertel crh at ubiqx.mn.org
Thu Jun 20 19:40:21 MDT 2013


On Thu, Jun 20, 2013 at 04:06:42PM -0700, Jeremy Allison wrote:
> On Wed, Jun 19, 2013 at 10:36:14PM -0400, Jose Rivera wrote:
> > When a new document is created in explorer, a check for file_exist is made.
> > vfs_gluster_get_real_filename was returning 0 even when the file did not
> > exist.
> > 
> > Credit to Raghavendra Talur <rtalur at redhat.com>
> >       and Anand Avati <avati at redhat.com>
> > 
> > --Jose
> 
> > From e28cfe7cff260800b5081639f8c50cfff9f742a0 Mon Sep 17 00:00:00 2001
> > From: Raghavendra Talur <rtalur at redhat.com>
> > Date: Wed, 19 Jun 2013 21:28:50 -0500
> > Subject: [PATCH] vfs_glusterfs: New file creation fix.
> > 
> > When a new document is created in explorer, a check for file_exist is made.
> > vfs_gluster_get_real_filename was returning 0 even when the file did not
> > exist.
> > ---
> >  source3/modules/vfs_glusterfs.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
> > index 24e1bda..1585238 100644
> > --- a/source3/modules/vfs_glusterfs.c
> > +++ b/source3/modules/vfs_glusterfs.c
> > @@ -899,6 +899,10 @@ static int vfs_gluster_get_real_filename(struct vfs_handle_struct *handle,
> >  		return -1;
> >  	}
> >  
> > +	if (ret < 0) {
> > +		return -1;
> > +	}
> > +
> >  	*found_name = talloc_strdup(mem_ctx, val_buf);
> >  	if (found_name[0] == NULL) {
> >  		errno = ENOMEM;
> > -- 
> > 1.8.1.4
> 
> FYI. Found at the Microsoft Interop event.
> 
> Looks good to me for Team member review (although I'd probably
> move the -1 return into the previous bracketed code as it's
> already checking for -1) - something like this:
> 
> diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
> index 24e1bda..1323e0e 100644
> --- a/source3/modules/vfs_glusterfs.c
> +++ b/source3/modules/vfs_glusterfs.c
> @@ -894,8 +894,10 @@ static int vfs_gluster_get_real_filename(struct vfs_handle_struct *handle,
>                  "user.glusterfs.get_real_filename:%s", name);
>  
>         ret = glfs_getxattr(handle->data, path, key_buf, val_buf, NAME_MAX + 1);
> -       if (ret == -1 && errno == ENODATA) {
> -               errno = EOPNOTSUPP;
> +       if (ret == -1) {
> +               if (errno == ENODATA) {
> +                       errno = EOPNOTSUPP;
> +               }
>                 return -1;
>         }
> 
> but I'm not too hung up on it.
> 
> Can we get another Team member review and I'll push ?
> 
> Thanks,
> 
> 	Jeremy.
> 

+1

Raghavendra Talur created the original patch.  It was good, but Jeremy's 
version is a little more concise.  Jose Rivera has built and tested with 
this patch and the results are good.

Chris -)-----


More information about the samba-technical mailing list