We recurse on the if_addr_lock on malloc M_NOWAIT failure in in_getmtuli. I believe the fix is just to invert the unlock and if_delmulti_ifma here. It looks like the obvious race is already possible between if_addmulti and the IF_ADDR_WLOCK above, therefore that race must be okay.
Details
Details
- Reviewers
bms jhb - Commits
- rS291040: in_getmulti: Fix recursion on if_addr_lock on malloc failure
Isilon internal. Reproduce assertion with M_NOWAIT failure injection.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 1119 Build 1123: arc lint + arc unit
Event Timeline
Comment Actions
Yes, this is fine. This is just dropping a reference count that it acquired earlier in the function on failure.
Comment Actions
Rlibby doesn't have a src bit — do you want to commit this, JHB, or should I? Or should I wait for other reviews?