[issue1942] non-zero exclusive count(Re: locking against myself in getcacheblk()?)

Matthew Dillon dillon at apollo.backplane.com
Wed Dec 29 00:39:40 PST 2010

    Ok, I think I fixed the non-zero exclusive count panic, please try
    with the latest master (I pushed it).

    It looks like a shared->exclusive upgrade can steal an exclusive lock
    out from under an exclusive lock request.  The exclusive lock request
    uses two acquire() operations internally and the upgrade can slip in
    inbetween them.

    The recursive lock that my hold/drop patch addresses is still an issue.
    The hold/drop patch fixes it but might have other problems (the buffer
    can still be invalidated while hold).  I'm still looking into that.

    Please test.


More information about the Bugs mailing list