On Mar 14, 2012, at 10:55 AM, Martin Husemann wrote: > On Tue, Mar 13, 2012 at 06:41:18PM +0000, Elad Efrat wrote: >> Log Message: >> Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with >> something meaningful. All relevant documentation has been updated or >> written. >> >> Most of these changes were brought up in the following messages: >> >> http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html >> http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html >> http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html >> >> Thanks to christos, manu, njoly, and jmmv for input. >> >> Huge thanks to pgoyette for spinning these changes through some build >> cycles and ATF. > > This seems to cause deadlocks in the *fs_rename_dir tests. > See recent (new) test failures both on i386 and amd64 in fs/vfs/t_vnops. > To reprocuce, do: > > cd /usr/tests/fs/vfs > atf-run t_vnops | atf-report
At least this (sketched) diff looks strange, where is the vput(tdp) in the `dp->i_number == foundino' case, who did the review? file: sys/ufs/ufs/ufs_lookup.c,v ufs_lookup(void *v) ... - if (dp->i_number == foundino) { - vref(vdp); - *vpp = vdp; - error = 0; - goto out; - } if (flags & ISDOTDOT) VOP_UNLOCK(vdp); /* race to get the inode */ error = VFS_VGET(vdp->v_mount, foundino, &tdp); if (flags & ISDOTDOT) vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY); if (error) goto out; ... + if (dp->i_number == foundino) { + vref(vdp); + *vpp = vdp; + error = 0; goto out; } -- Juergen Hannken-Illjes - hann...@eis.cs.tu-bs.de - TU Braunschweig (Germany)