> On Jun 8, 2016, at 10:16 AM, Paul Goyette <[email protected]> wrote:
>
> On Wed, 8 Jun 2016, Michael van Elst wrote:
>
>> [email protected] (Paul Goyette) writes:
>>
>>>> See misfs/specfs/spec_vnops.c::spec_close().
>>
>>> yes, that would certainly explain the situation. It does, however, make
>>> it rather difficult to maintain a valid ref-count!
>>
>> specfs does the open refcounting. The device only has a single bit, open
>> sets it and close clears it. That bit is added to a common counter
>> that is used for other references.
>
> Hmmm. Would it be valid, then, for my close() routine to reset the ref-count
> to zero rather than simply decrementing? Does the close() only get called if
> there are _NO_ outstanding open()s for _any_ process?
It seems rather odd to have something that calls itself a reference count but
isn't counted down. If that is actually correct, it should be a "referenced"
boolean. But if it really is meant to be a reference count and it seems to
need forcing to zero, that would suggest there is a missing decrement bug
somewhere.
paul