[PATCH] Fix nasty vfs_fruit bug 13646

Jeremy Allison jra at samba.org
Tue Oct 30 00:02:57 UTC 2018


On Mon, Oct 29, 2018 at 04:24:06PM -0700, Jeremy Allison via samba-technical wrote:
> On Fri, Oct 26, 2018 at 04:59:24PM +0200, Ralph Böhme via samba-technical wrote:
> > 
> > thanks!
> > 
> > Turned out the order was not really correct as this patchset wasn't rebased
> > onto the other ones.
> > 
> > Updated, rebased patchset attached.
> 
> Quick comment:
> 
> 
> > From a04bcc4e0514b8f54af8dc936710f4a2096a0492 Mon Sep 17 00:00:00 2001
> > From: Ralph Boehme <slow at samba.org>
> > Date: Wed, 17 Oct 2018 10:54:10 +0200
> > Subject: [PATCH 02/34] vfs_streams_xattr: consistently log dev/ino as hex
> > 
> > open_file_ntcreate() logs dev/ino in hex format if it hits a "dev/ino
> > mismatch". Logging it consistently as hex helps debugging such mismatch
> > issues.
> 
> The above doesn't seem true. According to master
> I have:
> 
>         if (file_existed && !check_same_dev_ino(&saved_stat, &smb_fname->st)) {
>                 /*
>                  * The file did exist, but some other (local or NFS)
>                  * process either renamed/unlinked and re-created the
>                  * file with different dev/ino after we walked the path,
>                  * but before we did the open. We could retry the
>                  * open but it's a rare enough case it's easier to
>                  * just fail the open to prevent creating any problems
>                  * in the open file db having the wrong dev/ino key.
>                  */
>                 fd_close(fsp);
>                 DEBUG(1,("open_file_ntcreate: file %s - dev/ino mismatch. "
>                         "Old (dev=0x%llu, ino =0x%llu). "
>                         "New (dev=0x%llu, ino=0x%llu). Failing open "
>                         " with NT_STATUS_ACCESS_DENIED.\n",
>                          smb_fname_str_dbg(smb_fname),
>                          (unsigned long long)saved_stat.st_ex_dev,
>                          (unsigned long long)saved_stat.st_ex_ino,
>                          (unsigned long long)smb_fname->st.st_ex_dev,
>                          (unsigned long long)smb_fname->st.st_ex_ino));
>                 return NT_STATUS_ACCESS_DENIED;
>         }
> 
>  - which is just wrong I think (sorry, this is my bad code I'm
>  sure :-). Should be:
> 
>   %llx, not 0x%llu (which is 0x followed by unsigned int!).
> 
> So I'm going to NAK [PATCH 02/34] and continue reviewing
> the rest, which (hopefully) doesn't depend on this.

Oh - same issue with [PATCH 23/34] vfs_fruit: update and add some debugging of dev/ino

Can we add in the dev/ino debugging fixes as a separate
patchset once the other reviews are done ?

Jeremy.



More information about the samba-technical mailing list