Mail Archives: cygwin/2000/10/31/17:28:42
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 AT sourceware DOT cygnus DOT com
--
cgf AT cygnus DOT com Red Hat, Inc.
http://sources.redhat.com/ http://www.redhat.com/
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -