Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Apr 2005 23:26:18 -0400
From:      David Schultz <das@FreeBSD.ORG>
To:        Mike Silbersack <silby@silby.com>
Cc:        cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/fs/msdosfs msdosfs_lookup.c
Message-ID:  <20050417032618.GA65952@VARK.MIT.EDU>
In-Reply-To: <20050416213839.A694@odysseus.silby.com>
References:  <200504162347.j3GNlJUA010418@repoman.freebsd.org> <20050416195710.K756@odysseus.silby.com> <20050417014050.GA640@VARK.MIT.EDU> <20050416212457.V756@odysseus.silby.com> <20050416213839.A694@odysseus.silby.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Apr 16, 2005, Mike Silbersack wrote:
> 
> On Sat, 16 Apr 2005, Mike Silbersack wrote:
> 
> >>I assume you mean that it *was* broken, until just now.  ;-)  Right?
> >
> >Oh, I cvsup'd and I thought I had grabbed the new version of the file, but 
> >it turns out that the cvsup server wasn't exactly up to date, so I grabbed 
> >a rev of it slightly newer than the one I had, but not the newest.
> >
> >So, I assume it's fixed now, I'll cvsup and doublecheck. :)
> >
> >Mike "Silby" Silbersack
> 
> Yeah, looks good now.  Sorry about the confusion.

Cool.  By the way, if you want to come up with a better fix,
please feel free.  I think the right fix is along the lines of:

	int msdosfs_vop_lookup(dvp, vpp, cnp) {
		do the usual checks (dvp is VDIR, R/O FS, VOP_ACCESS(dvp));
		char *oldname = cnp->cn_name;
		char newname[12] = unix2dosfn(oldname);
		cnp->cn_name = newname;
		error = cache_lookup(dvp, vpp, cnp);
		cnp->cn_name = oldname;
		if (error /* i.e., in cache */)
			return (error);
		return (msdosfs_lookup(dvp, vpp, cnp));
	}

I don't use msdosfs enough to adequately test this, though.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050417032618.GA65952>