Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com> List-Archive: <http://sources.redhat.com/ml/cygwin/> List-Post: <mailto:cygwin AT sources DOT redhat DOT com> List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs> Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Tue, 31 Oct 2000 17:18:58 -0500 From: Christopher Faylor <cgf AT redhat DOT com> To: cygwin AT sources DOT redhat DOT com Subject: Re: 1.1.4: Inconsistent i-node numbers Message-ID: <20001031171857.A30145@redhat.com> Reply-To: cygwin AT sources DOT redhat DOT com Mail-Followup-To: cygwin AT sources DOT redhat DOT com References: <000701c0437d$ae8468a0$2a02a8c0 AT tff DOT ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.6i In-Reply-To: <000701c0437d$ae8468a0$2a02a8c0@tff.ca>; from bgjenero@sympatico.ca on Tue, Oct 31, 2000 at 04:01:03PM -0500 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