- Supported format fixes for user devices
I have started a test of D26964.78800.diff.
I am not sure about this approach. Note that vref()/usecount reference does not prevent the vnode reclaim. So for instance force umount results in vgone() which does inactivation and reclaim regardless of the active state (or rather does inactivation if the vnode is active). In this case, it seems to not fix the issue.
Also, typically SU does not rely on the _vnode_ state, workitems are attached to the metadata blocks owned by devvp.
Okay. I am definitely open to better solutions, especially if they fit the paradigm better.
In ufs_inactive, why do we look at i_effnlink at all? Why not just base the truncate on i_nlink? I think this could be another method of delaying the end-of-life truncate until after the write of the dirent, but without relying on a vnode reference. I think that might look like this:
(Passes stress2's fs.sh and issue repros above.)
Do you by any chance have a usecase which requires exposing rn_addmask? If not, I'd rather prefer to have it the other way round - making the definition static.
Does that mean that we'll see another few changes like this making more stats public?
Address some feedback.
Thanks for taking a look.