tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NFS experts: stale vnode pointer in ufs_fhtovp ?



On Sun, Aug 30, 2009 at 12:05:39AM +0200, Manuel Bouyer wrote:
 > 187             if ((error = VFS_VGET(mp, ufhp->ufid_ino, &nvp)) != 0) {
 > 188                     *vpp = NULLVP;
 > 189                     return (error);
 > 190             }
 > 191             ip = VTOI(nvp);
 > 192             if (ip->i_mode == 0 || ip->i_gen != ufhp->ufid_gen) {
 > 193                     vput(nvp);
 > 194                     *vpp = NULLVP;
 > 195                     return (ESTALE);
 > 196             }
 > 
 > It paniced because ip was NULL (cmpw   $0,0x80(%eax) is ip->i_mode == 0). 

I can't think of any reason a valid UFS vnode should have a null inode
pointer. Maybe someone else can though?

My first guess would be that you got back some other fs's vnode and
that something upstream, maybe the vnode cache, is/was all screwed
up. My second guess would be that you've hit a(nother) bug in vnode
reclaim/recycle, and you got what was a valid ufs vnode when it was
fetched from the cache but has since been cleaned on you.

I don't know why either of these would be happening, though.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index