Howard Chu writes:
Obviously this and the preceding line can be reduced to mp->mp_flags = fp->mp_flags ^ (P_DIRTY|P_SUBP|P_FAKE);
They are not equivalent. fp->mp_flags can be P_LEAF|P_DIRTY in branch "yes, convert it" and P_LEAF|P_DIRTY|P_SUBP|P_FAKE in the other branch.
With P_FAKE removed if your patch isn't kept.
No, I don't want to steal a bit just for debugging either. I'm happy with "mp->mp_flags = (fp->mp_flags | P_DIRTY) & ~P_SUBP;" if the above was just a thinko. Well, I might include P_FAKE in my mdb/tests branch, #defined as 0 except when the MDB_TEST macro turns it on.