ldap_pvt_thread_mutex_lock( &be->be_pcl_mutex );
LDAP_TAILQ_FOREACH( csne, be->be_pending_csn_list, ce_csn_link ) {
- if ( csne->ce_opid == op->o_opid && csne->ce_connid == op->o_connid ) {
+ if ( csne->ce_op == op ) {
csne->ce_state = SLAP_CSN_COMMIT;
if ( foundit ) *foundit = 1;
break;
ldap_pvt_thread_mutex_lock( &be->be_pcl_mutex );
LDAP_TAILQ_FOREACH( csne, be->be_pending_csn_list, ce_csn_link ) {
- if ( csne->ce_opid == op->o_opid && csne->ce_connid == op->o_connid ) {
+ if ( csne->ce_op == op ) {
csne->ce_state = SLAP_CSN_PENDING;
break;
}
ldap_pvt_thread_mutex_lock( &be->be_pcl_mutex );
LDAP_TAILQ_FOREACH( csne, be->be_pending_csn_list, ce_csn_link ) {
- if ( csne->ce_opid == op->o_opid && csne->ce_connid == op->o_connid ) {
+ if ( csne->ce_op == op ) {
LDAP_TAILQ_REMOVE( be->be_pending_csn_list,
csne, ce_csn_link );
Debug( LDAP_DEBUG_SYNC, "slap_graduate_commit_csn: removing %p %s\n",
ber_dupbv( &pending->ce_csn, csn );
ber_bvreplace_x( &op->o_csn, &pending->ce_csn, op->o_tmpmemctx );
pending->ce_sid = slap_parse_csn_sid( csn );
- pending->ce_connid = op->o_connid;
- pending->ce_opid = op->o_opid;
+ pending->ce_op = op;
pending->ce_state = SLAP_CSN_PENDING;
ldap_pvt_thread_mutex_lock( &be->be_pcl_mutex );
Modifications *m;
struct berval *b, uuid = BER_BVNULL;
int i;
- int logop, do_graduate = 0;
+ int logop;
slap_verbmasks *lo;
Entry *e = NULL, *old = NULL, *e_uuid = NULL;
char timebuf[LDAP_LUTIL_GENTIME_BUFSIZE+8];
slap_get_commit_csn( op, &maxcsn, &foundit );
if ( !BER_BVISEMPTY( &maxcsn ) ) {
slap_queue_csn( &op2, &op->o_csn );
- do_graduate = 1;
} else {
attr_merge_normalize_one( e, slap_schema.si_ad_entryCSN,
&op->o_csn, op->o_tmpmemctx );
op2.o_bd->be_add( &op2, &rs2 );
if ( e == op2.ora_e ) entry_free( e );
e = NULL;
- if ( do_graduate ) {
- slap_graduate_commit_csn( &op2 );
- }
done:
if ( lo->mask & LOG_OP_WRITES )