Reinitialize v_type and v_op fields in case vnode has been reused without

reclamation.  If the vnode previously was a fifo then v_op would point to
ffs_fifoops[12] instead of the expected ffs_vnodeops[12], causing a panic at
the end of ffsext_strategy.
This commit is contained in:
Tor Egge 2005-10-09 19:06:34 +00:00
parent 8df5e81c01
commit c73e9e9c7b

View File

@ -951,6 +951,11 @@ ffs_valloc(pvp, mode, cred, vpp)
ip->i_din2->di_birthnsec = ts.tv_nsec;
}
ip->i_flag = 0;
(*vpp)->v_type = VNON;
if (fs->fs_magic == FS_UFS2_MAGIC)
(*vpp)->v_op = &ffs_vnodeops2;
else
(*vpp)->v_op = &ffs_vnodeops1;
return (0);
noinodes:
UFS_UNLOCK(ump);