Diff for /servers/slapd/back-bdb/modrdn.c between versions 1.130 and 1.131

version 1.130, 2003/11/28 20:08:21 version 1.131, 2003/12/10 23:04:52
Line 1 Line 1
 /* modrdn.c - bdb backend modrdn routine */  /* modrdn.c - bdb backend modrdn routine */
 /* $OpenLDAP: pkg/ldap/servers/slapd/back-bdb/modrdn.c,v 1.129 2003/11/26 18:49:48 jongchoi Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/back-bdb/modrdn.c,v 1.130 2003/11/28 20:08:21 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 2000-2003 The OpenLDAP Foundation.   * Copyright 2000-2003 The OpenLDAP Foundation.
Line 883  retry: /* transaction retry */ Line 883  retry: /* transaction retry */
         }          }
   
         if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop && !op->o_no_psearch ) {          if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop && !op->o_no_psearch ) {
                   ldap_pvt_thread_rdwr_rlock( &bdb->bi_pslist_rwlock );
                 LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {                  LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
                         bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_PREMODIFY );                          bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_PREMODIFY );
                 }                  }
                   ldap_pvt_thread_rdwr_runlock( &bdb->bi_pslist_rwlock );
         }          }
   
         /* modify entry */          /* modify entry */
Line 997  retry: /* transaction retry */ Line 999  retry: /* transaction retry */
                                 }                                  }
                         }                          }
   
                           if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop ) {
                                   /* Loop through in-scope entries for each psearch spec */
                                   ldap_pvt_thread_rdwr_rlock( &bdb->bi_pslist_rwlock );
                                   LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
                                           bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_MODIFY );
                                   }
                                   ldap_pvt_thread_rdwr_runlock( &bdb->bi_pslist_rwlock );
                                   pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
                                   while ( pm_list != NULL ) {
                                           bdb_psearch(op, rs, pm_list->ps_op,
                                                                   e, LDAP_PSEARCH_BY_SCOPEOUT);
                                           pm_prev = pm_list;
                                           LDAP_LIST_REMOVE ( pm_list, ps_link );
                                           pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
                                           ch_free( pm_prev );
                                   }
                           }
   
                         if(( rs->sr_err=TXN_COMMIT( ltid, 0 )) != 0 ) {                          if(( rs->sr_err=TXN_COMMIT( ltid, 0 )) != 0 ) {
                                 rs->sr_text = "txn_commit failed";                                  rs->sr_text = "txn_commit failed";
                         } else {                          } else {
Line 1036  retry: /* transaction retry */ Line 1056  retry: /* transaction retry */
 return_results:  return_results:
         send_ldap_result( op, rs );          send_ldap_result( op, rs );
   
         if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop ) {  
                 /* Loop through in-scope entries for each psearch spec */  
                 LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {  
                         bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_MODIFY );  
                 }  
                 pm_list = LDAP_LIST_FIRST(&op->o_pm_list);  
                 while ( pm_list != NULL ) {  
                         bdb_psearch(op, rs, pm_list->ps_op,  
                                                 e, LDAP_PSEARCH_BY_SCOPEOUT);  
                         pm_prev = pm_list;  
                         LDAP_LIST_REMOVE ( pm_list, ps_link );  
                         pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );  
                         ch_free( pm_prev );  
                 }  
         }  
   
         if( rs->sr_err == LDAP_SUCCESS && bdb->bi_txn_cp ) {          if( rs->sr_err == LDAP_SUCCESS && bdb->bi_txn_cp ) {
                 ldap_pvt_thread_yield();                  ldap_pvt_thread_yield();
                 TXN_CHECKPOINT( bdb->bi_dbenv,                  TXN_CHECKPOINT( bdb->bi_dbenv,

Removed from v.1.130  
changed lines
  Added in v.1.131


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org