]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-mdb/delete.c
Merge remote-tracking branch 'origin/mdb.master'
[openldap] / servers / slapd / back-mdb / delete.c
index 116bcdc41150391465d48566843f902494743b78..66101679f73ccc8518bd1add019544ca7d835291 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2000-2011 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 );
        }