With the fast-diff feature enabled, if the object map marks the
object as _EXISTS, it can only occur due to a write -- otherwise
it would be _EXISTS_CLEAN. Therefore, ensure it is properly
flagged as an updated object for diff_iterate.
Fixes: #11553
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
if (prev_object_map[i] != OBJECT_NONEXISTENT) {
(*object_diff_state)[i] = OBJECT_DIFF_STATE_HOLE;
}
- } else if (prev_object_map[i] != object_map[i] &&
- !(prev_object_map[i] == OBJECT_EXISTS &&
- object_map[i] == OBJECT_EXISTS_CLEAN)) {
+ } else if (object_map[i] == OBJECT_EXISTS ||
+ (prev_object_map[i] != object_map[i] &&
+ !(prev_object_map[i] == OBJECT_EXISTS &&
+ object_map[i] == OBJECT_EXISTS_CLEAN))) {
(*object_diff_state)[i] = OBJECT_DIFF_STATE_UPDATED;
}
}