From: Howard Chu Date: Wed, 26 Feb 2003 11:45:30 +0000 (+0000) Subject: Don't need TXN/opinfo support in read-only operations X-Git-Tag: NO_SLAP_OP_BLOCKS~284 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=00837465c46bcd8b29061062e429ca932278d310;p=openldap Don't need TXN/opinfo support in read-only operations --- diff --git a/servers/slapd/back-bdb/operational.c b/servers/slapd/back-bdb/operational.c index ca87a6c727..8ffb72c2fb 100644 --- a/servers/slapd/back-bdb/operational.c +++ b/servers/slapd/back-bdb/operational.c @@ -29,63 +29,17 @@ bdb_hasSubordinates( { struct bdb_info *bdb = (struct bdb_info *) be->be_private; int rc; - DB_TXN *ltid = NULL; - struct bdb_op_info opinfo; assert( e ); assert( hasSubordinates ); - if( 0 ) { -retry: /* transaction retry */ -#if 0 - if( e != NULL ) { - bdb_unlocked_cache_return_entry_w(&bdb->bi_cache, e); - } -#endif -#ifdef NEW_LOGGING - LDAP_LOG ( OPERATION, DETAIL1, - "=> bdb_hasSubordinates: retrying...\n", 0, 0, 0 ); -#else - Debug( LDAP_DEBUG_TRACE, "==> bdb_hasSubordinates: retrying...\n", - 0, 0, 0 ); -#endif - rc = TXN_ABORT( ltid ); - ltid = NULL; - op->o_private = NULL; - if( rc != 0 ) { - rc = LDAP_OTHER; - goto return_results; - } - ldap_pvt_thread_yield(); - } - - /* begin transaction */ - rc = TXN_BEGIN( bdb->bi_dbenv, NULL, <id, bdb->bi_db_opflags ); - if ( rc != 0 ) { -#ifdef NEW_LOGGING - LDAP_LOG ( OPERATION, ERR, - "=> bdb_hasSubordinates: txn_begin failed: %s (%d)\n", - db_strerror(rc), rc, 0 ); -#else - Debug( LDAP_DEBUG_TRACE, - "bdb_hasSubordinates: txn_begin failed: %s (%d)\n", - db_strerror( rc ), rc, 0 ); -#endif - rc = LDAP_OTHER; - return rc; - } - - opinfo.boi_bdb = be; - opinfo.boi_txn = ltid; - opinfo.boi_locker = TXN_ID ( ltid ); - opinfo.boi_err = 0; - op->o_private = &opinfo; - - rc = bdb_dn2id_children( be, ltid, &e->e_nname, 0 ); +retry: + rc = bdb_dn2id_children( be, NULL, &e->e_nname, 0 ); switch( rc ) { case DB_LOCK_DEADLOCK: case DB_LOCK_NOTGRANTED: + ldap_pvt_thread_yield(); goto retry; case 0: @@ -110,18 +64,6 @@ retry: /* transaction retry */ rc = LDAP_OTHER; } -return_results: - if ( rc == LDAP_SUCCESS && bdb->bi_txn_cp ) { - ldap_pvt_thread_yield(); - TXN_CHECKPOINT( bdb->bi_dbenv, - bdb->bi_txn_cp_kbyte, bdb->bi_txn_cp_min, 0 ); - } - - if ( ltid != NULL ) { - TXN_ABORT( ltid ); - op->o_private = NULL; - } - return rc; } diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index 456ead8ff9..feea82ee22 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -84,7 +84,6 @@ bdb_search( u_int32_t locker = 0; DB_LOCK lock; - struct bdb_op_info opinfo; #ifdef NEW_LOGGING LDAP_LOG ( OPERATION, ENTRY, "bdb_back_search\n", 0, 0, 0 ); @@ -136,12 +135,6 @@ bdb_search( return rc; } - opinfo.boi_bdb = be; - opinfo.boi_txn = NULL; - opinfo.boi_locker = locker; - opinfo.boi_err = 0; - op->o_private = &opinfo; - if ( nbase->bv_len == 0 ) { /* DIT root special case */ e = (Entry *) &slap_entry_root;