tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: rename(), wapbl and deadlock
On Thu, Dec 17, 2009 at 10:29:13PM +0100, Manuel Bouyer wrote:
> Hi,
> I got a look again at the ufs_rename patch that David Holland sent
> at the end of september, and managed to get it working on netbsd-5.
> Changes from his version (apart from the backport) that got it working:
> - VOP_UNLOCK(ap->a_tvp) on entry, if not NULL. it's not used and we'll
> do a lookup() to find it again.
> - clear SAVESTART from from_name and to_name. otherwise relookup() will
> VREF() the vnodes and we'll have a refcount leak (and so a vnode
> leak).
> - make sure to always vrele(illegal_vnode).
>
> [...]
> but using the wapbl rename version for the non-wapbl seems to run stable.
> I've not analysed whenever this is safe in case of crash though (and
> won't say I can do it, I don't understand all what's going on in there).
I found a problem with this patch: rename fail with EPERM if the
file is not writable; even though the directory is. This is a change
in semantic:
horn.soc.lip6.fr:/mnt/src/tooldir.NetBSD-5.0_STABLE-i386/bin>touch truc
horn.soc.lip6.fr:/mnt/src/tooldir.NetBSD-5.0_STABLE-i386/bin>chmod 555 truc
horn.soc.lip6.fr:/mnt/src/tooldir.NetBSD-5.0_STABLE-i386/bin>mv truc machin
mv: rename truc to machin: Permission denied
I don't know yet what is the cause for this
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index