Date: Sun, 17 Apr 2005 03:08:54 -0400 From: David Schultz <das@FreeBSD.ORG> To: Jeff Roberson <jroberson@chesapeake.net> Cc: cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/fs/msdosfs msdosfs_lookup.c Message-ID: <20050417070854.GA36122@VARK.MIT.EDU> In-Reply-To: <20050417013241.O67458@mail.chesapeake.net> References: <200504162347.j3GNlJUA010418@repoman.freebsd.org> <20050417013241.O67458@mail.chesapeake.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 17, 2005, Jeff Roberson wrote: > On Sat, 16 Apr 2005, David Schultz wrote: > > > das 2005-04-16 23:47:19 UTC > > > > FreeBSD src repository > > > > Modified files: > > sys/fs/msdosfs msdosfs_lookup.c > > Log: > > Disable negative name caching for msdosfs to work around a bug. > > Since the name cache is case-sensitive and msdosfs isn't, > > creating a file 'foo' won't invalidate a negative entry for 'FOO'. > > There are similar problems related to 8.3 filenames. > > > > A better solution is to override VOP_LOOKUP with a method that > > canonicalizes the name, then calls vfs_cache_lookup(). Unfortunately, > > it's not quite that simple because vfs_cache_lookup() will call > > msdosfs_lookup() on a cache miss, and msdosfs_lookup() needs a way to > > get at the original component name. > > Use cache_lookup() directly rather than vfs_cache_lookup. It won't try to > call VOP_CACHEDLOOKUP. Yeah thanks, I remembered that after this commit---see the sketch of a complete solution in my email to Mike.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050417070854.GA36122>