This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [1.7] Samba file cp


On Mar 10 14:27, Brian Ford wrote:
> > Brian Ford wrote:
> > > It appears that the inode number is changing for consecutive stats?
> > >
> > > $ ls -i //SambaServer/share/TestFile
> > > 3779159704 //SambaServer/share/TestFile
> > >
> > > $ ls -i //SamabaServer/share/TestFile
> > > 3881062408 //SambaServer/share/TestFile
> 
> This happens on multiple servers running multiple Samba versions that have
> been stable for "a very long time", as in several years (one server
> is still running Samba 2.2.5).

Uh oh.

> Ok, same machine, same server/share, this time on Cygwin 1.5.25:
> 
> $ uname -a
> CYGWIN_NT-5.1 PC1163-8460-XP 1.5.25(0.156/4/2) 2008-06-12 19:34 i686
> Cygwin
> 
> $ ls -i //SambaServer/share/TestFile
> 1277840537592983992 //SambaServer/share/TestFile
> 
> $ ls -i //SambaServer/share/TestFile
> 1277840537592983992 //SambaServer/share/TestFile
> 
> Inodes are consistent.

And given the high values they seem to be faked inode numbers.  But that
doesn't match the below GetVolInfo output.  This flag combination should
result in identical operation on 1.7 and 1.5.25.

I just tested this against a samba 3.2.6 server and I can't reproduce your
problem.  I'm wondering if that's something about the age of the Samba
server in your case.  Old 2.x Sambas did exactly what you're seeing
above.  The inode numbers are arbitrary values between each call fetching
file information from the server.  See the comment in fhandler_disk_file.cc,
in function path_conv::isgood_inode().

As I said, it works fine for me.  It would be helpful if you could debug
this situation.  The important places are

  fs_info::update() in mount.cc, especially the code which recognizes
  Samba shares and the hasgood_inode() setting.

  fhandler_disk_file::readdir() in fhandler_disk_file.cc for
  ls(1)/readdir(2).

  fhandler_base::fstat_helper() in fhandler_disk_file.cc for
  ls(1)/stat(1)/stat(2)

> Device Type        : 7
> Characteristics    : 10
> Volume Name        : <ford>
> Serial Number      : 2228355664
> Max Filenamelength : 255
> Filesystemname     : <NTFS>
> Flags              : 2b
>   FILE_CASE_SENSITIVE_SEARCH  : TRUE
>   FILE_CASE_PRESERVED_NAMES   : TRUE
>   FILE_UNICODE_ON_DISK        : FALSE
>   FILE_PERSISTENT_ACLS        : TRUE
>   FILE_FILE_COMPRESSION       : FALSE
>   FILE_VOLUME_QUOTAS          : TRUE
>   FILE_SUPPORTS_SPARSE_FILES  : FALSE
>   FILE_SUPPORTS_REPARSE_POINTS: FALSE
>   FILE_SUPPORTS_REMOTE_STORAGE: FALSE
>   FILE_VOLUME_IS_COMPRESSED   : FALSE
>   FILE_SUPPORTS_OBJECT_IDS    : FALSE
>   FILE_SUPPORTS_ENCRYPTION    : FALSE
>   FILE_NAMED_STREAMS          : FALSE
>   FILE_READ_ONLY_VOLUME       : FALSE
>   FILE_SEQUENTIAL_WRITE_ONCE  : FALSE
>   FILE_SUPPORTS_TRANSACTIONS  : FALSE


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]