X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-bdb%2Ftools.c;h=bcec7c7c5525b977906c0e4d46cf236f366ee8ae;hb=a61d2b914dafe2326a0336c87c530b93333e5eef;hp=1612db3b31e65d8f5ed97cfd1ed410d93cc00651;hpb=7f54a89f32c34ec0e109ef3ca41c36545fe42b7c;p=openldap diff --git a/servers/slapd/back-bdb/tools.c b/servers/slapd/back-bdb/tools.c index 1612db3b31..bcec7c7c55 100644 --- a/servers/slapd/back-bdb/tools.c +++ b/servers/slapd/back-bdb/tools.c @@ -130,18 +130,16 @@ ID bdb_tool_entry_put( Debug( LDAP_DEBUG_TRACE, "=> bdb_tool_entry_put( %ld, \"%s\" )\n", (long) e->e_id, e->e_dn, 0 ); - if( bdb->bi_txn ) { - rc = txn_begin( bdb->bi_dbenv, NULL, &tid, - bdb->bi_db_opflags ); - if( rc != 0 ) { - snprintf( text->bv_val, text->bv_len, - "txn_begin failed: %s (%d)", - db_strerror(rc), rc ); - Debug( LDAP_DEBUG_ANY, - "=> bdb_tool_entry_put: %s\n", - text->bv_val, 0, 0 ); - return NOID; - } + rc = TXN_BEGIN( bdb->bi_dbenv, NULL, &tid, + bdb->bi_db_opflags ); + if( rc != 0 ) { + snprintf( text->bv_val, text->bv_len, + "txn_begin failed: %s (%d)", + db_strerror(rc), rc ); + Debug( LDAP_DEBUG_ANY, + "=> bdb_tool_entry_put: %s\n", + text->bv_val, 0, 0 ); + return NOID; } rc = bdb_next_id( be, tid, &e->e_id ); @@ -158,14 +156,7 @@ ID bdb_tool_entry_put( if ( be_issuffix( be, &e->e_nname ) ) { pdn = slap_empty_bv; } else { - rc = dnParent( &e->e_nname, &pdn ); - if ( rc != LDAP_SUCCESS ) { - Debug( LDAP_DEBUG_ANY, "=> bdb_tool_entry_put: " - "dnParent(\"%s\") failed\n", - e->e_nname.bv_val, 0, 0 ); - - goto done; - } + dnParent( &e->e_nname, &pdn ); } rc = bdb_dn2id_add( be, tid, &pdn, e ); if( rc != 0 ) { @@ -199,29 +190,27 @@ ID bdb_tool_entry_put( } done: - if( bdb->bi_txn ) { - if( rc == 0 ) { - rc = txn_commit( tid, 0 ); - if( rc != 0 ) { - snprintf( text->bv_val, text->bv_len, - "txn_commit failed: %s (%d)", - db_strerror(rc), rc ); - Debug( LDAP_DEBUG_ANY, - "=> bdb_tool_entry_put: %s\n", - text->bv_val, 0, 0 ); - e->e_id = NOID; - } - - } else { - txn_abort( tid ); + if( rc == 0 ) { + rc = TXN_COMMIT( tid, 0 ); + if( rc != 0 ) { snprintf( text->bv_val, text->bv_len, - "txn_aborted! %s (%d)", + "txn_commit failed: %s (%d)", db_strerror(rc), rc ); Debug( LDAP_DEBUG_ANY, "=> bdb_tool_entry_put: %s\n", text->bv_val, 0, 0 ); e->e_id = NOID; } + + } else { + TXN_ABORT( tid ); + snprintf( text->bv_val, text->bv_len, + "txn_aborted! %s (%d)", + db_strerror(rc), rc ); + Debug( LDAP_DEBUG_ANY, + "=> bdb_tool_entry_put: %s\n", + text->bv_val, 0, 0 ); + e->e_id = NOID; } return e->e_id; @@ -249,14 +238,12 @@ int bdb_tool_entry_reindex( return -1; } - if( bi->bi_txn ) { - rc = txn_begin( bi->bi_dbenv, NULL, &tid, bi->bi_db_opflags ); - if( rc != 0 ) { - Debug( LDAP_DEBUG_ANY, - "=> bdb_tool_entry_reindex: txn_begin failed: %s (%d)\n", - db_strerror(rc), rc, 0 ); - goto done; - } + rc = TXN_BEGIN( bi->bi_dbenv, NULL, &tid, bi->bi_db_opflags ); + if( rc != 0 ) { + Debug( LDAP_DEBUG_ANY, + "=> bdb_tool_entry_reindex: txn_begin failed: %s (%d)\n", + db_strerror(rc), rc, 0 ); + goto done; } /* @@ -273,13 +260,7 @@ int bdb_tool_entry_reindex( if ( be_issuffix( be, &e->e_nname ) ) { pdn = slap_empty_bv; } else { - rc = dnParent( &e->e_nname, &pdn ); - if ( rc != LDAP_SUCCESS ) { - Debug( LDAP_DEBUG_ANY, "=> bdb_tool_entry_reindex: " - "dnParent(\"%s\") failed\n", - e->e_nname.bv_val, 0, 0 ); - goto done; - } + dnParent( &e->e_nname, &pdn ); } rc = bdb_dn2id_add( be, tid, &pdn, e ); if( rc != 0 && rc != DB_KEYEXIST ) { @@ -292,23 +273,21 @@ int bdb_tool_entry_reindex( rc = bdb_index_entry_add( be, tid, e, e->e_attrs ); done: - if( bi->bi_txn ) { - if( rc == 0 ) { - rc = txn_commit( tid, 0 ); - if( rc != 0 ) { - Debug( LDAP_DEBUG_ANY, - "=> bdb_tool_entry_reindex: txn_commit failed: %s (%d)\n", - db_strerror(rc), rc, 0 ); - e->e_id = NOID; - } - - } else { - txn_abort( tid ); + if( rc == 0 ) { + rc = TXN_COMMIT( tid, 0 ); + if( rc != 0 ) { Debug( LDAP_DEBUG_ANY, - "=> bdb_tool_entry_reindex: txn_aborted! %s (%d)\n", + "=> bdb_tool_entry_reindex: txn_commit failed: %s (%d)\n", db_strerror(rc), rc, 0 ); e->e_id = NOID; } + + } else { + TXN_ABORT( tid ); + Debug( LDAP_DEBUG_ANY, + "=> bdb_tool_entry_reindex: txn_aborted! %s (%d)\n", + db_strerror(rc), rc, 0 ); + e->e_id = NOID; } return rc;