Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/dkwedge



> Date: Tue, 11 Apr 2023 21:50:49 +0200
> From: Michael van Elst <mlelstv%serpens.de@localhost>
> 
> On Wed, Apr 12, 2023 at 01:10:40AM +0700, Robert Elz wrote:
> > 
> >   | In that state then decrementing dk_rawopens beyond zero will make
> >   | dklastclose do the right thing: nothing.
> > 
> > Except that if that happens, dk_rawopens will be left == ~0 and the next
> > open attempt will then increment it, back to 0 again, which is almost
> > certainly not what was wanted.
> > 
> > dklastclose() used to have code in it like
> > 
> > 	if (...->dk_rawopens > 0) {
> > 		if (--...->dk_rawopens == 0)
> 
> 
> Indeed, that part was simplified away.

Correct.  I first added the assertion dk_rawopens > 0 in the following
change change because, as I wrote in the commit message:

   It is not possible for us to be closing a wedge whose parent is not
   open by at least this wedge.

https://mail-index.netbsd.org/source-changes-hg/2022/08/22/msg359438.html

See
https://mail-index.netbsd.org/source-changes-d/2023/04/11/msg013937.html
for more details of why I believe the condition is always true here.

Then, on the grounds that the condition is always true (and asserted
to be so), I removed the conditional in a separate change:

https://mail-index.netbsd.org/source-changes-hg/2022/08/22/msg359439.html

So if you actually hit the assertion, please share diagnostics, or if
you believe there is a way that you could hit the assertion, please
explain how and we can figure out how to address it.

But if not, please put the assertions back, or I will next week.


Home | Main Index | Thread Index | Old Index