}
done:
- moi->moi_ref--;
- if ( moi->moi_ref < 1 ) {
- if ( moi->moi_flag & MOI_READER ) {
- mdb_txn_reset( moi->moi_txn );
- } /* writers can abort themselves */
+ if ( moi == &opinfo ) {
+ mdb_txn_reset( moi->moi_txn );
LDAP_SLIST_REMOVE( &op->o_extra, &moi->moi_oe, OpExtra, oe_next );
- if ( moi->moi_flag & MOI_FREEIT ) {
- op->o_tmpfree( moi, op->o_tmpmemctx );
- }
}
- mdb_entry_return( e );
+ if ( e )
+ mdb_entry_return( e );
return rc;
}