always call doCommit in IR.commit even if hasChanges is false: it's possible there are changes in the sub but the parent DirReader didn't see them (FieldNormModifier on trunk does this)