The branch, master has been updated
       via  15b8efe s3:dbwrap_ctdb: return the number of records in 
db_ctdb_traverse() for persistent dbs
      from  af82bf2 s3-net: Fix uninitialized variable in 
rpc_conf_import_internal().

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 15b8efeae3b0133ae60a8ce582e4ca4d4dbe6bb1
Author: Stefan Metzmacher <[email protected]>
Date:   Fri Oct 14 16:11:06 2011 +0200

    s3:dbwrap_ctdb: return the number of records in db_ctdb_traverse() for 
persistent dbs
    
    metze
    
    Autobuild-User: Stefan Metzmacher <[email protected]>
    Autobuild-Date: Fri Oct 14 20:59:37 CEST 2011 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source3/lib/dbwrap/dbwrap_ctdb.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/dbwrap/dbwrap_ctdb.c b/source3/lib/dbwrap/dbwrap_ctdb.c
index e0f98cc..38a3395 100644
--- a/source3/lib/dbwrap/dbwrap_ctdb.c
+++ b/source3/lib/dbwrap/dbwrap_ctdb.c
@@ -1297,12 +1297,21 @@ static int db_ctdb_traverse(struct db_context *db,
                        return ret;
                }
                if (ctx->transaction && ctx->transaction->m_write) {
-                       /* we now have to handle keys not yet present at 
transaction start */
+                       /*
+                        * we now have to handle keys not yet
+                        * present at transaction start
+                        */
                        struct db_context *newkeys = db_open_rbt(talloc_tos());
                        struct ctdb_marshall_buffer *mbuf = 
ctx->transaction->m_write;
                        struct ctdb_rec_data *rec=NULL;
                        NTSTATUS status;
                        int i;
+                       int count = 0;
+
+                       if (newkeys == NULL) {
+                               return -1;
+                       }
+
                        for (i=0; i<mbuf->count; i++) {
                                TDB_DATA key;
                                rec =db_ctdb_marshall_loop_next(mbuf, rec,
@@ -1317,9 +1326,12 @@ static int db_ctdb_traverse(struct db_context *db,
                        status = dbwrap_traverse(newkeys,
                                                 
traverse_persistent_callback_dbwrap,
                                                 &state,
-                                                NULL);
-                       ret = NT_STATUS_IS_OK(status) ? 0 : -1;
+                                                &count);
                        talloc_free(newkeys);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               return -1;
+                       }
+                       ret += count;
                }
                return ret;
        }


-- 
Samba Shared Repository

Reply via email to