op->o_bd = frontendDB;
rs->sr_err = frontendDB->be_delete( op, rs );
+#ifdef LDAP_X_TXN
+ if( rs->sr_err == LDAP_X_TXN_SPECIFY_OKAY ) {
+ /* skip cleanup */
+ return rs->sr_err;
+ }
+#endif
+
cleanup:;
op->o_tmpfree( op->o_req_dn.bv_val, op->o_tmpmemctx );
op->o_tmpfree( op->o_req_ndn.bv_val, op->o_tmpmemctx );
if ( op->o_bd->be_delete ) {
/* do the update here */
int repl_user = be_isupdate( op );
-#ifndef SLAPD_MULTIMASTER
- if ( !SLAP_SHADOW(op->o_bd) || repl_user )
-#endif /* ! SLAPD_MULTIMASTER */
- {
+ if ( !SLAP_SINGLE_SHADOW(op->o_bd) || repl_user ) {
struct berval org_req_dn = BER_BVNULL;
struct berval org_req_ndn = BER_BVNULL;
struct berval org_dn = BER_BVNULL;
op->o_bd = op_be;
-#ifdef SLAPD_MULTIMASTER
- if ( !op->o_bd->be_update_ndn.bv_len || !repl_user )
-#endif /* SLAPD_MULTIMASTER */
- {
+ if ( !op->o_bd->be_update_ndn.bv_len || !repl_user ) {
cb.sc_next = op->o_callback;
op->o_callback = &cb;
}
op->o_req_ndn = org_req_ndn;
op->o_delete_glue_parent = 0;
-#ifndef SLAPD_MULTIMASTER
} else {
BerVarray defref = op->o_bd->be_update_refs
? op->o_bd->be_update_refs : default_referral;
LDAP_UNWILLING_TO_PERFORM,
"shadow context; no update referral" );
}
-#endif /* ! SLAPD_MULTIMASTER */
}
} else {