User Details
- User Since
- Jun 4 2014, 10:38 AM (647 w, 2 d)
Yesterday
It is not legal to hold any vnode locks across a call to vn_fullpath. In particular having the vp locked threatens a deadlock against normal path lookup, as the reconstruction grabs one lock at a time the opposite way. So you can have the child locked and stall waiting for the parent, while the forward lookup just locked the parent and now wants the child.
Thu, Oct 22
sigh, use correct diff
I did not see any point in benchmarking this, it is strictly less work in the fast path.
- guard CTASSERT with _KERNEL. verified it fixes buildworld
Tue, Oct 20
Mon, Oct 12
While I agree the fence is missing, I completely disagree with the fix.
Fri, Oct 9
Jul 8 2026
May 28 2026
This greatly reduces the race window, but it does not fix the problem.
Apr 18 2026
Apr 17 2026
Apr 7 2026
So the ranged bitmap proposal works, but it also has funny corner cases if fds are very sparse which perhaps are not worth it.
Mar 9 2026
Feb 27 2026
I did not co-autor the change, so please drop that tag.
Feb 25 2026
Nov 10 2025
these also need to go:
This looks legitimate.
Nov 4 2025
I checked sx and rw locks and I only see the check in the slowpath.
Oct 20 2025
Oct 18 2025
Do you have stats how many classes can be realistically present? maybe this would be way faster single-threaded by iterating an array?
Oct 16 2025
I'll be posting a different variant later today.
I think some work can be saved if the errno is ENOENT or EACCESS, but someone(tm) has to make sure errors of the sort are not returned from the stage where the syscall does the reverse lookup.
Oct 15 2025
Oct 14 2025
This *is* used by pf_rule_counter_u64_periodic. The goal is to sum up the 32 bit values frequently enough(tm) that they don't overflow.
Oct 6 2025
Oct 5 2025
Oct 4 2025
Oct 3 2025
- remove goto labels
- sort includes
- fix a bug found by pho@ in the lock smr patch: after the lock is acquired, doomed handling has to be the same as with the interlock-protected routine
Oct 1 2025
- patch up commentary
- remove a debug tunable
- upload the entire thing
- also drop ref drip around unlock
- doomed asserts
- cosmetic fixups to null_hashget_locked
- null_lock using smr
Sep 30 2025
I think this is turning into a bikeshed, so just do what you feel.
The above may be true and the pointer may be populated depending on when you got the the inode. I would just add something like "->i_din2 is NULL, some information omitted" or compatible.
maybe print that the pointer is NULL?
Sep 29 2025
Sep 28 2025
I don't have an opinion on the functionality, but the implementation looks avoidably slow.
Sep 27 2025
Sep 25 2025
Sep 24 2025
Sep 23 2025
- patch up some comments
- add the missing acq fence
Sep 22 2025
vput et al are the primary consumers of vdrop.
Huh, so happens vtryrecycle unlocks and then vdrops, so it happens to not run into the problem after all. General remark stands though.