M_DIRTY
dirty = flags & M_DIRTY;
if (((flags & M_DIRTY) && dirty) || (!(flags & M_DIRTY) && !dirty))
value = pack_value(oblock, (flags & ~M_DIRTY) | (dirty ? M_DIRTY : 0));
*result = !((flags & M_VALID) && (flags & M_DIRTY));