Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 18 Feb 2005 09:58:52 +0100 From: Corinna Vinschen To: list Subject: Re: Bug in 'find' 4.2.11-CVS when traversing NTFS mount points Message-ID: <20050218085852.GA21141@cygbert.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: list References: <20050217095204 DOT 10858 DOT qmail AT web54010 DOT mail DOT yahoo DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050217095204.10858.qmail@web54010.mail.yahoo.com> User-Agent: Mutt/1.4.2i On Feb 17 01:52, Tim Hubberstey wrote: > I'm experiencing a problem with 'find' when mounted NTFS volumes > (junctions) are involved. I have created a sample directory structure > /cygdrive/c/aa/aa where 'aa' is the mount point for another NTFS drive. > > > >From DOSland it looks like this: > C:\> dir \aa > Directory of C:\aa > 2005/02/17 00:35 . > 2005/02/17 00:35 .. > 2005/02/17 00:35 aa > > The problem behavior with find is that these command works: > > $ find /cygdrive/c/aa -name @@@F\* > /cygdrive/c/aa/aa/@@@FindMeFirst > $ find /cygdrive/c/aa/aa -name @@@F\* > /cygdrive/c/aa/aa/@@@FindMeFirst > > but this gets errors and @@@FindMeFirst is not found: > > $ find /cygdrive/c -name @@@F\* > find: Filesystem loop detected; `/cygdrive/c/aa/aa' has the same device > number and inode as a directory which is 2 levels higher in the > filesystem hierarchy. > > I tried with CYGWIN=smbntsec and CYGWIN unset and the behavior was the > same. Volumes mounted on a root folder (e.g. C:\mnt) get the same error > except for "...which is 1 level higher...". The reason for your problem is that Cygwin doesn't check for volume mount points. FWICT, there's a very simple solution for that, calling a specific Windows function (GetVolumePathName) from inside Cygwin. But I'm sure you don't want that. Using this function inside of Cygwin slows down Cygwin incredibly, because that function is staggeringly slow. I called find in medium sized directory trees and find needed about 10 times longer to traverse the directory tree than without this function. Sorry, but there's currently no good solution for that. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader mailto:cygwin AT cygwin DOT com Red Hat, Inc. -- 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/