diff --git a/servers/slapd/back-bdb/config.c b/servers/slapd/back-bdb/config.c index d12e5d8091d438640b29faac565e63a24b7ad888..0a680032c037455d648da06d83b4a038da6dcf89 100644 --- a/servers/slapd/back-bdb/config.c +++ b/servers/slapd/back-bdb/config.c @@ -284,17 +284,16 @@ bdb_online_index( void *ctx, void *arg ) } if ( ei->bei_e ) { rc = bdb_index_entry( op, txn, BDB_INDEX_UPDATE_OP, ei->bei_e ); - if ( rc == DB_LOCK_DEADLOCK ) { + if ( rc ) { TXN_ABORT( txn ); - ldap_pvt_thread_yield(); - continue; - } - if ( rc == 0 ) { - rc = TXN_COMMIT( txn, 0 ); - txn = NULL; - } - if ( rc ) + if ( rc == DB_LOCK_DEADLOCK ) { + ldap_pvt_thread_yield(); + continue; + } break; + } + rc = TXN_COMMIT( txn, 0 ); + txn = NULL; } id++; getnext = 1;