diff options
-rw-r--r-- | source4/wrepl_server/wrepl_scavenging.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source4/wrepl_server/wrepl_scavenging.c b/source4/wrepl_server/wrepl_scavenging.c index d4301e41c7..a1edd9e8ce 100644 --- a/source4/wrepl_server/wrepl_scavenging.c +++ b/source4/wrepl_server/wrepl_scavenging.c @@ -99,12 +99,20 @@ static NTSTATUS wreplsrv_scavenging_owned_records(struct wreplsrv_service *servi switch (rec->state) { case WREPL_STATE_ACTIVE: old_state = "active"; - new_state = "active"; - if (!rec->is_static) { - new_state = "released"; - rec->state = WREPL_STATE_RELEASED; - rec->expire_time= service->config.tombstone_interval + now; + if (rec->is_static) { + /* + *we store it again, so that it won't appear + * in the scavenging the next time + */ + old_state = "active(static)"; + new_state = "active(static)"; + modify_flags = 0; + modify_record = true; + break; } + new_state = "released"; + rec->state = WREPL_STATE_RELEASED; + rec->expire_time= service->config.tombstone_interval + now; modify_flags = 0; modify_record = true; break; |