Page MenuHomeFreeBSD

buf: Relax an assertion in BUF_UNLOCK
ClosedPublic

Authored by markj on Sat, Feb 21, 4:51 PM.
Tags
None
Referenced Files
F146683456: D55418.id172464.diff
Wed, Mar 4, 5:00 PM
F146589929: D55418.id172390.diff
Tue, Mar 3, 10:01 PM
Unknown Object (File)
Tue, Mar 3, 7:18 PM
Unknown Object (File)
Mon, Mar 2, 5:31 AM
Unknown Object (File)
Mon, Mar 2, 3:51 AM
Unknown Object (File)
Sun, Mar 1, 2:06 PM
Unknown Object (File)
Sun, Mar 1, 10:47 AM
Unknown Object (File)
Fri, Feb 27, 9:35 PM
Subscribers

Details

Summary

The BUF_UNLOCK macro asserts that B_REMFREE is not set, as it is up to
the lock owner to complete the dequeue from the free list before
releasing the lock. However, if the thread has acquired the lock
multiple times, then releasing the recursive lock should be ok. Modify
the assertion to reflect this.

This was triggered by an out-of-tree filesystem.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 70854
Build 67737: arc lint + arc unit