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:
parent
8df5e81c01
commit
c73e9e9c7b
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user