delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/02/18/03:59:40

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 <corinna-cygwin AT cygwin DOT com>
To: list <cygwin AT cygwin DOT com>
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 <cygwin AT cygwin DOT com>
References: <20050217095204 DOT 10858 DOT qmail AT web54010 DOT mail DOT yahoo DOT com>
Mime-Version: 1.0
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       <DIR>          .
> 2005/02/17  00:35       <DIR>          ..
> 2005/02/17  00:35       <JUNCTION>     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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019