Subject: Re: CVS commit: src/sys/fs/msdosfs
To: None <tech-kern@NetBSD.org>
From: Antti Kantee <pooka@netbsd.org>
List: tech-kern
Date: 11/15/2007 19:41:03
Can someone take a glance at this to check if it makes any regular
code paths worse than they already were? I'm thinking about a netbsd-4
pullup, as I think the same problem applies. The routine should really
be rewritten, but I don't have energy for that in the foreseeable future.
On Wed Nov 14 2007 at 19:16:29 +0000, Antti Kantee wrote:
>
> Module Name: src
> Committed By: pooka
> Date: Wed Nov 14 19:16:29 UTC 2007
>
> Modified Files:
> src/sys/fs/msdosfs: msdosfs_vnops.c
>
> Log Message:
> Fix a problem noticed by Reinoud: the fs would try to release an
> unlocked vnode when trying to rename a directory. The fix was to
> shuffle some bits around and #pray.
>
> The rename routine actually needs a very very major wide-angle whopping:
> * it takes locks out-of-order
> * it deals with references from SAVESTART lookups in interesting ways
> * I doubt there is any guarantee for correct operation if there
> are multiple concurrent accesses
> * the error branches might just as well call panic() directly
>
>
> To generate a diff of this commit:
> cvs rdiff -r1.42 -r1.43 src/sys/fs/msdosfs/msdosfs_vnops.c
>
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
>
--
Antti Kantee <pooka@iki.fi> Of course he runs NetBSD
http://www.iki.fi/pooka/ http://www.NetBSD.org/
"la qualité la plus indispensable du cuisinier est l'exactitude"