[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