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:52:25 -0500 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Bug in 'find' 4.2.11-CVS when traversing NTFS mount points Message-ID: <20050218145225.GD12342@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com References: <20050217095204 DOT 10858 DOT qmail AT web54010 DOT mail DOT yahoo DOT com> <20050218085852 DOT GA21141 AT cygbert DOT vinschen DOT de> <4215ED73 DOT 9030907 AT byu DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4215ED73.9030907@byu.net> User-Agent: Mutt/1.4.1i On Fri, Feb 18, 2005 at 06:28:19AM -0700, Eric Blake wrote: >-----BEGIN PGP SIGNED MESSAGE----- >Hash: SHA1 > >According to Corinna Vinschen on 2/18/2005 1:58 AM: >> >> 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. > >Both find and coreutils df use the gnulib module mountlist.c to build an >internal cache of all mount points up front, rather than constantly >querying if a particular directory is a mount point. Is it not possible >for cygwin's implementation of getmntent() to also return >junctions/reparse points as mount table entries, to give an accurate >picture of all mount points to tools that need it? Mount points don't >usually change during operation, so cygwin could take the same approach of >caching all Windows mount points up front at the same time it caches >cygwin mount points; isn't it possible for such caching to be done once as >cygwin1.dll initializes and shared, rather than once per process that uses >cygwin1.dll? > >Yes, I know, PTC. So rather than wait 10 seconds in the case when you are traversing mount points, you'd rather that every cygwin program was guaranteed to be delayed by 10 seconds or more at startup? That doesn't sound like a win to me. cgf -- 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/