X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-mdb%2Fdelete.c;h=66101679f73ccc8518bd1add019544ca7d835291;hb=8102d9d2df0d97b70f9d5d9e54e7a171975a6fee;hp=49d5e352a9c4e1f3aa2e9cdfbbed16f205d36bc5;hpb=ad79308d5a9fbd480279e62f4dd04769553e4fd1;p=openldap diff --git a/servers/slapd/back-mdb/delete.c b/servers/slapd/back-mdb/delete.c index 49d5e352a9..66101679f7 100644 --- a/servers/slapd/back-mdb/delete.c +++ b/servers/slapd/back-mdb/delete.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2000-2012 The OpenLDAP Foundation. + * Copyright 2000-2013 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -90,16 +90,6 @@ txnReturn: ctrls[num_ctrls] = 0; - /* allocate CSN */ - if ( BER_BVISNULL( &op->o_csn ) ) { - struct berval csn; - char csnbuf[LDAP_PVT_CSNSTR_BUFSIZE]; - - csn.bv_val = csnbuf; - csn.bv_len = sizeof(csnbuf); - slap_get_csn( op, &csn, 1 ); - } - /* begin transaction */ rs->sr_err = mdb_opinfo_get( op, mdb, 0, &moi ); rs->sr_text = NULL; @@ -111,9 +101,18 @@ txnReturn: rs->sr_text = "internal error"; goto return_results; } - txn = moi->moi_txn; + /* allocate CSN */ + if ( BER_BVISNULL( &op->o_csn ) ) { + struct berval csn; + char csnbuf[LDAP_PVT_CSNSTR_BUFSIZE]; + + csn.bv_val = csnbuf; + csn.bv_len = sizeof(csnbuf); + slap_get_csn( op, &csn, 1 ); + } + if ( !be_issuffix( op->o_bd, &op->o_req_ndn ) ) { dnParent( &op->o_req_ndn, &pdn ); }