Jim Rees wrote:
> The lock order is even stranger than I thought. The host lock is always
> acquired first, not the H_LOCK. But this is done through the following
> magic:
>
> int
> h_Lock_r(register struct host *host)
> {
> H_UNLOCK;
> h_Lock(host);
> H_LOCK;
> return 0;
> }
>
> So you must acquire H_LOCK first, which is then immediately dropped. And
> you can't hold the host lock without also holding H_LOCK, at least not using
> the current macros. I suspect this may have been done at some time in the
> distant past to try to fix some lock order reversals.well, you can but you need to call h_Lock(host) and not h_Lock_r().
smime.p7s
Description: S/MIME Cryptographic Signature
