This is the mail archive of the cygwin@sources.redhat.com 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]

Re: 1.1.4: Inconsistent i-node numbers


This is a long-standing problem in cygwin.  Using real inode numbers in
readdir would be expensive but using hashes for everything would be imprecise.

I've never heard of a great solution for this, unfortunately.

cgf

On Tue, Oct 31, 2000 at 04:01:03PM -0500, Boris Gjenero wrote:
>NOTE:  I am not on the mailing list.  If you want to reach me, e-mail me.
>
>Stat returns Windows inode numbers on certain devices (fixed disks, CD-ROMs,
>etc.).  It only uses hashing if the device is not one of those or if it
>can't open the file.   readdir always uses the filename hashing mechanism to
>generate the inode number.
>
>This means that inode numbers won't agree on certain devices like hard disks
>and CD-ROMs.  Of course, not a lot of software cares about i-node numbers.
>I discovered the bug when I compiled an NFS server and all NFS file handles
>were stale.
>
>The readdir function is in: winsup/cygwin/dir.cc
>The stat inode handling is in the function fhandler_disk_file::fstat in
>winsup/cygwin/fhandler.cc
>But then if stat can't open a file it will use code in the stat_worker
>function in winsup/cygwin/syscalls.cc
>
>My temporary fix is to change fhandler_disk_file::fstat so it always uses
>hashing.  (Look around line 935 in fhandler.cc) However, this may not be the
>right thing to do; perhaps inodes should be used by all functions if
>possible.
>
>BTW.  Yeah,  nfs-server-2.2beta47.tar compiles with a few modifications and
>it works.  I've hacked device support into CygWin using a .DEV NT extended
>attribute to store the device number.  I'm also going to add another
>attribute to store the UID and GID of a file.  When that's done the NFS
>server should be more-or-less Unix-comatible.
>
>
>
>--
>Want to unsubscribe from this list?
>Send a message to cygwin-unsubscribe@sourceware.cygnus.com

-- 
cgf@cygnus.com                        Red Hat, Inc.
http://sources.redhat.com/            http://www.redhat.com/

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


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