--- servers/slapd/overlays/syncprov.c 2010/12/31 09:46:23 1.325 +++ servers/slapd/overlays/syncprov.c 2010/12/31 16:55:36 1.326 @@ -1,4 +1,4 @@ -/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.324 2010/12/30 22:48:41 hallvard Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.325 2010/12/31 09:46:23 hallvard Exp $ */ /* syncprov.c - syncrepl provider */ /* This work is part of OpenLDAP Software . * @@ -2740,17 +2740,7 @@ syncprov_operational( } if ( !ap ) { - if ( !(rs->sr_flags & REP_ENTRY_MODIFIABLE) ) { - Entry *e = entry_dup( rs->sr_entry ); - if ( rs->sr_flags & REP_ENTRY_MUSTRELEASE ) { - overlay_entry_release_ov( op, rs->sr_entry, 0, on ); - rs->sr_flags ^= REP_ENTRY_MUSTRELEASE; - } else if ( rs->sr_flags & REP_ENTRY_MUSTBEFREED ) { - entry_free( rs->sr_entry ); - } - rs->sr_entry = e; - rs->sr_flags |= - REP_ENTRY_MODIFIABLE|REP_ENTRY_MUSTBEFREED; + if ( rs_ensure_entry_modifiable( op, rs, on )) { a = attr_find( rs->sr_entry->e_attrs, slap_schema.si_ad_contextCSN ); }