[SCM] Samba Shared Repository - branch master updated

2012-02-20 Thread Rusty Russell
The branch, master has been updated
   via  89586ed lib/tdb2: 2.0.0 ABI
   via  abc7472 lib/tdb2: Convert tdb2 to a standalone library
   via  f7b999f lib/tdb2: Fix wscript
   via  4e90726 lib/tdb2: Mark public function as such
   via  a63d731 lib/tdb2: Do not include config.h in (to-be) public 
library, use replace.
   via  e6901fa lib/tdb2: tools should use config.h, and replace where 
available.
   via  fb8cf56 lib/ccan: define HAVE_CCAN.
  from  0528cb5 s3: Fix bug 8567 -- segfault in dom_sid_compare

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


- Log -
commit 89586ed1643101b3b94bba1fdcdc821026a00e65
Author: Amitay Isaacs 
Date:   Tue Feb 21 15:29:52 2012 +1030

lib/tdb2: 2.0.0 ABI

Signed-off-by: Amitay Isaacs 
Signed-off-by: Rusty Russell 

Autobuild-User: Rusty Russell 
Autobuild-Date: Tue Feb 21 07:43:55 CET 2012 on sn-devel-104

commit abc74723cebcab30987bb16e359645ba37eb6c95
Author: Amitay Isaacs 
Date:   Tue Feb 21 15:29:52 2012 +1030

lib/tdb2: Convert tdb2 to a standalone library

Adds a Makefile, configure script, and tdb2.pc.in.

Signed-off-by: Amitay Isaacs 
Signed-off-by: Rusty Russell 

commit f7b999fac0b6d00c8e60012eba3de2fd59d8c854
Author: Amitay Isaacs 
Date:   Tue Feb 21 15:29:30 2012 +1030

lib/tdb2: Fix wscript

Particularly fix the upcoming standalone build.

Signed-off-by: Amitay Isaacs 
Signed-off-by: Rusty Russell 

commit 4e9072660a96324f8d9421f35593057b730ca185
Author: Amitay Isaacs 
Date:   Tue Feb 21 15:29:22 2012 +1030

lib/tdb2: Mark public function as such

Signed-off-by: Amitay Isaacs 
Signed-off-by: Rusty Russell 

commit a63d731ae05af78bdc33db58880387169429753e
Author: Amitay Isaacs 
Date:   Tue Feb 21 15:29:17 2012 +1030

lib/tdb2: Do not include config.h in (to-be) public library, use replace.

Like tdb1, it's the caller's responsibility to set up various config
options (eg. by #include "config.h") before including the public
header.

We use HAVE_CCAN for including the (private) CCAN headers, otherwise
dummy macros are used.

Signed-off-by: Rusty Russell 

commit e6901fa35069e234044c94b87ac9df4064b31d1c
Author: Rusty Russell 
Date:   Tue Feb 21 15:29:12 2012 +1030

lib/tdb2: tools should use config.h, and replace where available.

The tdb2 tools should #include "config.h" before tdb2.h (about to
become a requirement) and use libreplace where available.

Signed-off-by: Rusty Russell 

commit fb8cf568caf43615f7a06a623209a0fade629a35
Author: Rusty Russell 
Date:   Tue Feb 21 15:29:06 2012 +1030

lib/ccan: define HAVE_CCAN.

This allows public headers to use CCAN if available, and dummy macros
if not (eg. tdb2).

Signed-off-by: Rusty Russell 

---

Summary of changes:
 lib/ccan/wscript   |1 +
 lib/tdb2/ABI/tdb-2.0.0.sigs|   40 +++
 lib/{tdb => tdb2}/Makefile |0
 lib/tdb2/check.c   |2 +-
 lib/{replace => tdb2}/configure|0
 lib/tdb2/hash.c|8 ++--
 lib/tdb2/lock.c|8 ++--
 lib/tdb2/open.c|   12 ++--
 lib/tdb2/private.h |5 ++
 lib/tdb2/summary.c |2 +-
 lib/tdb2/tdb.c |   30 ++--
 lib/tdb2/tdb1_hash.c   |2 +-
 lib/tdb2/tdb2.h|   19 +++-
 lib/{tdb/tdb.pc.in => tdb2/tdb2.pc.in} |2 +-
 lib/tdb2/tools/tdb2backup.c|1 +
 lib/tdb2/tools/tdb2dump.c  |7 +++
 lib/tdb2/tools/tdb2restore.c   |6 ++
 lib/tdb2/tools/tdb2tool.c  |8 +++
 lib/tdb2/tools/tdb2torture.c   |7 ++-
 lib/tdb2/transaction.c |8 ++--
 lib/tdb2/traverse.c|8 ++--
 lib/tdb2/wscript   |   82 ---
 22 files changed, 185 insertions(+), 73 deletions(-)
 create mode 100644 lib/tdb2/ABI/tdb-2.0.0.sigs
 copy lib/{tdb => tdb2}/Makefile (100%)
 copy lib/{replace => tdb2}/configure (100%)
 copy lib/{tdb/tdb.pc.in => tdb2/tdb2.pc.in} (89%)


Changeset truncated at 500 lines:

diff --git a/lib/ccan/wscript b/lib/ccan/wscript
index 9daf091..59fe93a 100644
--- a/lib/ccan/wscript
+++ b/lib/ccan/wscript
@@ -3,6 +3,7 @@
 import Logs, sys
 
 def configure(conf):
+conf.DEFINE('HAVE_CCAN', 1)
 # FIXME: if they don't have -Werror, these will all fail.  But they
 # probably will anyway...
 conf.CHECK_CODE('int __attribute__((cold)) func(int x) { return x; }',
diff --git a/lib/tdb2/ABI/tdb-2.0.0.sigs b/lib/tdb2/ABI/tdb-2.0.0.sigs
new file mode 100644
index 000..0e54b90
--- /dev/null
+++ b/lib/tdb2/ABI/tdb-2.0.

[SCM] Samba Shared Repository - branch master updated

2012-02-20 Thread Volker Lendecke
The branch, master has been updated
   via  0528cb5 s3: Fix bug 8567 -- segfault in dom_sid_compare
  from  9d66ad8 s4:torture:smb2: invalidate the handle after the connection 
has been killed

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


- Log -
commit 0528cb5f3a15b72dcb34ece21a3ffb3e7b8d6eb9
Author: Volker Lendecke 
Date:   Sun Feb 19 12:49:55 2012 +0100

s3: Fix bug 8567 -- segfault in dom_sid_compare

The underlying problem was that with ldapsam:trusted we require the
a group mapping for the primary group of every user, including root.

Autobuild-User: Volker Lendecke 
Autobuild-Date: Mon Feb 20 22:36:23 CET 2012 on sn-devel-104

---

Summary of changes:
 source3/passdb/pdb_ldap.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index 7c16810..04541e8 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -3027,6 +3027,7 @@ static NTSTATUS ldapsam_enum_group_memberships(struct 
pdb_methods *methods,
if (dom_sid_compare(&global_sid_NULL, &(*pp_sids)[0]) == 0) {
DEBUG(3, ("primary group of [%s] not found\n",
  pdb_get_username(user)));
+   ret = NT_STATUS_INTERNAL_DB_CORRUPTION;
goto done;
}
 


-- 
Samba Shared Repository


[SCM] CTDB repository - branch master updated - ctdb-1.12-211-g9b85aa1

2012-02-20 Thread Ronnie Sahlberg
The branch, master has been updated
   via  9b85aa1aa14091dc1de470a587f7c054b9e40078 (commit)
   via  9e372a08c40087e6b5335aa298e94d88273566a5 (commit)
   via  b3307d78fd15f446b423f8cdd1e403f89fbe8ac8 (commit)
   via  5990fe65a9cc37933ceff15d4cb2ab3b3a0addb6 (commit)
  from  0fd3bf919b1b8e5aaa98444c306c6770a6a3209f (commit)

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


- Log -
commit 9b85aa1aa14091dc1de470a587f7c054b9e40078
Merge: 0fd3bf919b1b8e5aaa98444c306c6770a6a3209f 
9e372a08c40087e6b5335aa298e94d88273566a5
Author: Ronnie Sahlberg 
Date:   Tue Feb 21 07:12:50 2012 +1100

Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

commit 9e372a08c40087e6b5335aa298e94d88273566a5
Author: Ronnie Sahlberg 
Date:   Tue Feb 21 07:03:44 2012 +1100

READONLY: only send a control to schedule fast-vacuuming from child context 
iff we have a connection open to the main daemon

there are some child processes where we do not create a connection to the 
main daemon (switch_from_server_to_client()) because it is expensive to set up 
and we normally might not need to talk to the daemon at all via a domainsocket.
but we might want to still call to ctdb_ltdb_store() from such chil 
processes.

commit b3307d78fd15f446b423f8cdd1e403f89fbe8ac8
Author: Ronnie Sahlberg 
Date:   Tue Feb 21 06:54:09 2012 +1100

READONLY: dont schedule for fast vacuum deletion if any of the readonly 
record flags are set

commit 5990fe65a9cc37933ceff15d4cb2ab3b3a0addb6
Author: Ronnie Sahlberg 
Date:   Tue Feb 21 06:49:18 2012 +1100

Revert "ReadOnly: We can not use ctdb_ltdb_store from a client/child 
context since"

This reverts commit 11dee7f3f881494cf5089d6c69fd40e74f07e670.

Try to solve this a different way so that ctdb_ltb_store() becomes safe to 
use also from child context

---

Summary of changes:
 client/ctdb_client.c  |4 +++-
 common/ctdb_util.c|1 +
 include/ctdb_private.h|3 +++
 server/ctdb_ltdb_server.c |5 +++--
 server/ctdb_persistent.c  |   33 ++---
 server/ctdb_vacuum.c  |   10 +-
 6 files changed, 29 insertions(+), 27 deletions(-)


Changeset truncated at 500 lines:

diff --git a/client/ctdb_client.c b/client/ctdb_client.c
index 0d0f2fe..1b41439 100644
--- a/client/ctdb_client.c
+++ b/client/ctdb_client.c
@@ -4123,7 +4123,9 @@ int switch_from_server_to_client(struct ctdb_context 
*ctdb, const char *fmt, ...
return -1;
}
 
-return 0;
+   ctdb->can_send_controls = true;
+
+   return 0;
 }
 
 /*
diff --git a/common/ctdb_util.c b/common/ctdb_util.c
index bb32b6a..dadaf18 100644
--- a/common/ctdb_util.c
+++ b/common/ctdb_util.c
@@ -346,6 +346,7 @@ pid_t ctdb_fork(struct ctdb_context *ctdb)
if (ctdb->do_setsched) {
ctdb_restore_scheduler(ctdb);
}
+   ctdb->can_send_controls = false;
}
return pid;
 }
diff --git a/include/ctdb_private.h b/include/ctdb_private.h
index f420e6c..272b94a 100644
--- a/include/ctdb_private.h
+++ b/include/ctdb_private.h
@@ -483,6 +483,9 @@ struct ctdb_context {
 
/* Used to defer db attach requests while in recovery mode */
struct ctdb_deferred_attach_context *deferred_attach;
+
+   /* if we are a child process, do we have a domain socket to send 
controls on */
+   bool can_send_controls;
 };
 
 struct ctdb_db_context {
diff --git a/server/ctdb_ltdb_server.c b/server/ctdb_ltdb_server.c
index e699c2a..8e183e8 100644
--- a/server/ctdb_ltdb_server.c
+++ b/server/ctdb_ltdb_server.c
@@ -83,7 +83,7 @@ static int ctdb_ltdb_store_server(struct ctdb_db_context 
*ctdb_db,
 */
if (data.dsize != 0) {
keep = true;
-   } else if (header->flags & 
(CTDB_REC_RO_HAVE_DELEGATIONS|CTDB_REC_RO_HAVE_READONLY)) {
+   } else if (header->flags & 
(CTDB_REC_RO_HAVE_DELEGATIONS|CTDB_REC_RO_HAVE_READONLY|CTDB_REC_RO_REVOKING_READONLY|CTDB_REC_RO_REVOKE_COMPLETE))
 {
keep = true;
} else if (ctdb_db->persistent) {
keep = true;
@@ -128,7 +128,8 @@ static int ctdb_ltdb_store_server(struct ctdb_db_context 
*ctdb_db,
if (keep) {
if ((data.dsize == 0) &&
!ctdb_db->persistent &&
-   (ctdb_db->ctdb->pnn == header->dmaster))
+   (ctdb_db->ctdb->pnn == header->dmaster) &&
+   !(header->flags & 
(CTDB_REC_RO_HAVE_DELEGATIONS|CTDB_REC_RO_HAVE_READONLY|CTDB_REC_RO_REVOKING_READONLY|CTDB_REC_RO_REVOKE_COMPLETE)))
{
schedule_for_deletion = true;
}
diff --git a/server/ctdb_persistent.c b/server/ctdb_persistent.c
index 0f4f4da..dd8d479 100644
--- a/server/ctdb_persistent.c
+++ b/server/ctdb_persistent.c
@@

autobuild: intermittent test failure detected

2012-02-20 Thread autobuild
The autobuild test system has detected an intermittent failing test in 
the current master tree.

The autobuild log of the failure is available here:

   http://git.samba.org/autobuild.flakey/2012-02-20-1852/flakey.log

The samba3 build logs are available here:

   http://git.samba.org/autobuild.flakey/2012-02-20-1852/samba3.stderr
   http://git.samba.org/autobuild.flakey/2012-02-20-1852/samba3.stdout

The source4 build logs are available here:

   http://git.samba.org/autobuild.flakey/2012-02-20-1852/samba4.stderr
   http://git.samba.org/autobuild.flakey/2012-02-20-1852/samba4.stdout
  
The top commit at the time of the failure was:

commit e9b9ba14c06ada67446be38da7184dec9f87d1f0
Author: Volker Lendecke 
Date:   Mon Feb 20 15:24:17 2012 +0100

s3-vfstest: Remove an unused variable

Autobuild-User: Volker Lendecke 
Autobuild-Date: Mon Feb 20 17:01:11 CET 2012 on sn-devel-104


[SCM] Samba Shared Repository - branch master updated

2012-02-20 Thread Michael Adam
The branch, master has been updated
   via  9d66ad8 s4:torture:smb2: invalidate the handle after the connection 
has been killed
   via  71164ce s4:torture: improve comment for the 
smb2.durable-open.reopen1 test
  from  e9b9ba1 s3-vfstest: Remove an unused variable

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


- Log -
commit 9d66ad8c30bd962758143a09d07034bc4f861757
Author: Michael Adam 
Date:   Mon Feb 20 16:25:42 2012 +0100

s4:torture:smb2: invalidate the handle after the connection has been killed

Not to run into using the old handle with a new tree connect in the error 
case.

Autobuild-User: Michael Adam 
Autobuild-Date: Mon Feb 20 18:34:48 CET 2012 on sn-devel-104

commit 71164cef612d39858827d816b8dda31e5cb598be
Author: Michael Adam 
Date:   Sun Feb 19 00:10:37 2012 +0100

s4:torture: improve comment for the smb2.durable-open.reopen1 test

---

Summary of changes:
 source4/torture/smb2/durable_open.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/torture/smb2/durable_open.c 
b/source4/torture/smb2/durable_open.c
index 09c6407..f54e41c 100644
--- a/source4/torture/smb2/durable_open.c
+++ b/source4/torture/smb2/durable_open.c
@@ -322,6 +322,7 @@ done:
 /**
  * basic test for doing a durable open
  * and do a durable reopen on the same connection
+ * while the first open is still active (fails)
  */
 bool test_durable_open_reopen1(struct torture_context *tctx,
   struct smb2_tree *tree)
@@ -422,6 +423,7 @@ bool test_durable_open_reopen2(struct torture_context *tctx,
ZERO_STRUCT(io2);
io2.in.fname = fname;
io2.in.durable_handle = h;
+   h = NULL;
 
status = smb2_create(tree, mem_ctx, &io2);
CHECK_STATUS(status, NT_STATUS_OK);


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated

2012-02-20 Thread Volker Lendecke
The branch, master has been updated
   via  e9b9ba1 s3-vfstest: Remove an unused variable
  from  3992182 popt: Check for popt manually as well, not just using 
pkg-config.

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


- Log -
commit e9b9ba14c06ada67446be38da7184dec9f87d1f0
Author: Volker Lendecke 
Date:   Mon Feb 20 15:24:17 2012 +0100

s3-vfstest: Remove an unused variable

Autobuild-User: Volker Lendecke 
Autobuild-Date: Mon Feb 20 17:01:11 CET 2012 on sn-devel-104

---

Summary of changes:
 source3/torture/vfstest.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/torture/vfstest.c b/source3/torture/vfstest.c
index b0d55f5..55321dd 100644
--- a/source3/torture/vfstest.c
+++ b/source3/torture/vfstest.c
@@ -415,8 +415,6 @@ void exit_server_cleanly(const char *const reason)
exit_server("normal exit");
 }
 
-int last_message = -1;
-
 /* Main function */
 
 int main(int argc, char *argv[])


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated

2012-02-20 Thread Jelmer Vernooij
The branch, master has been updated
   via  3992182 popt: Check for popt manually as well, not just using 
pkg-config.
  from  f260596 nsstest: Allocate the correct sized buffer for initgroups

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


- Log -
commit 3992182fec4d46d4340fe038b7d3386b78701857
Author: Jelmer Vernooij 
Date:   Mon Feb 20 13:40:52 2012 +0100

popt: Check for popt manually as well, not just using pkg-config.

Older systems don't provide a pkg-config file for popt.

Autobuild-User: Jelmer Vernooij 
Autobuild-Date: Mon Feb 20 15:13:32 CET 2012 on sn-devel-104

---

Summary of changes:
 lib/popt/wscript |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/popt/wscript b/lib/popt/wscript
index 6aa8e70..7fd15ed 100644
--- a/lib/popt/wscript
+++ b/lib/popt/wscript
@@ -5,7 +5,7 @@ import Options
 def configure(conf):
 conf.CHECK_HEADERS('float.h')
 
-if conf.CHECK_BUNDLED_SYSTEM_PKG('popt'):
+if conf.CHECK_BUNDLED_SYSTEM('popt', checkfunctions='poptGetContext', 
headers='popt.h'):
 conf.define('USING_SYSTEM_POPT', 1)
 
 def build(bld):


-- 
Samba Shared Repository


[SCM] CTDB repository - branch master updated - ctdb-1.12-207-g0fd3bf9

2012-02-20 Thread Ronnie Sahlberg
The branch, master has been updated
   via  0fd3bf919b1b8e5aaa98444c306c6770a6a3209f (commit)
   via  11dee7f3f881494cf5089d6c69fd40e74f07e670 (commit)
   via  303134cf10a08ce61954d5de9025d9bbcb5f75ef (commit)
  from  d3c54ae9cc83f74d15f40bbfff95404b270d2f80 (commit)

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


- Log -
commit 0fd3bf919b1b8e5aaa98444c306c6770a6a3209f
Merge: d3c54ae9cc83f74d15f40bbfff95404b270d2f80 
11dee7f3f881494cf5089d6c69fd40e74f07e670
Author: Ronnie Sahlberg 
Date:   Mon Feb 20 21:30:13 2012 +1100

Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

commit 11dee7f3f881494cf5089d6c69fd40e74f07e670
Author: Ronnie Sahlberg 
Date:   Mon Feb 20 21:22:56 2012 +1100

ReadOnly: We can not use ctdb_ltdb_store from a client/child context since
it sometimes (for empty records) needs to be able to initiate traffic unde 
rhte daemon context.

This should furhter updated later to allow the use also from non-daemon 
context.

commit 303134cf10a08ce61954d5de9025d9bbcb5f75ef
Author: Ronnie Sahlberg 
Date:   Mon Feb 20 21:13:46 2012 +1100

ReadOnly: Make sure we dont try to fast-vacuum records that are set for 
readonly delegation

---

Summary of changes:
 server/ctdb_ltdb_server.c |2 ++
 server/ctdb_persistent.c  |   33 +++--
 2 files changed, 25 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/server/ctdb_ltdb_server.c b/server/ctdb_ltdb_server.c
index e5437b9..e699c2a 100644
--- a/server/ctdb_ltdb_server.c
+++ b/server/ctdb_ltdb_server.c
@@ -83,6 +83,8 @@ static int ctdb_ltdb_store_server(struct ctdb_db_context 
*ctdb_db,
 */
if (data.dsize != 0) {
keep = true;
+   } else if (header->flags & 
(CTDB_REC_RO_HAVE_DELEGATIONS|CTDB_REC_RO_HAVE_READONLY)) {
+   keep = true;
} else if (ctdb_db->persistent) {
keep = true;
} else if (header->flags & CTDB_REC_FLAG_AUTOMATIC) {
diff --git a/server/ctdb_persistent.c b/server/ctdb_persistent.c
index dd8d479..0f4f4da 100644
--- a/server/ctdb_persistent.c
+++ b/server/ctdb_persistent.c
@@ -456,12 +456,12 @@ static int ctdb_persistent_store(struct 
ctdb_persistent_write_state *state)
}
 
for (i=0;icount;i++) {
-   struct ctdb_ltdb_header oldheader;
-   struct ctdb_ltdb_header header;
+   struct ctdb_ltdb_header *oldheader;
+   struct ctdb_ltdb_header *header;
TDB_DATA key, data, olddata;
TALLOC_CTX *tmp_ctx = talloc_new(state);
 
-   rec = ctdb_marshall_loop_next(m, rec, NULL, &header, &key, 
&data);
+   rec = ctdb_marshall_loop_next(m, rec, NULL, NULL, &key, &data);

if (rec == NULL) {
DEBUG(DEBUG_ERR,("Failed to get next record %d for 
db_id 0x%08x in ctdb_persistent_store\n",
@@ -469,29 +469,42 @@ static int ctdb_persistent_store(struct 
ctdb_persistent_write_state *state)
talloc_free(tmp_ctx);
goto failed;
}
+   header = (struct ctdb_ltdb_header *)&data.dptr[0];
 
/* fetch the old header and ensure the rsn is less than the new 
rsn */
-   ret = ctdb_ltdb_fetch(state->ctdb_db, key, &oldheader, tmp_ctx, 
&olddata);
-   if (ret != 0) {
+   olddata = tdb_fetch(state->ctdb_db->ltdb->tdb, key);
+   if (olddata.dptr == NULL) {
DEBUG(DEBUG_ERR,("Failed to fetch old record for db_id 
0x%08x in ctdb_persistent_store\n",
 state->ctdb_db->db_id));
talloc_free(tmp_ctx);
goto failed;
}
+   if (olddata.dsize < sizeof(struct ctdb_ltdb_header)) {
+   DEBUG(DEBUG_ERR,("Not enough header for record for 
db_id 0x%08x in ctdb_persistent_store\n",
+   state->ctdb_db->db_id));
+   talloc_free(tmp_ctx);
+   free(olddata.dptr);
+   goto failed;
+   }
+   oldheader = (struct ctdb_ltdb_header *)&olddata.dptr[0];
 
-   if (oldheader.rsn >= header.rsn &&
-   (olddata.dsize != data.dsize || 
-memcmp(olddata.dptr, data.dptr, data.dsize) != 0)) {
+   if (oldheader->rsn >= header->rsn &&
+  (olddata.dsize != data.dsize || 
+  memcmp(&olddata.dptr[sizeof(struct ctdb_ltdb_header)],
+&data.dptr[sizeof(struct ctdb_ltdb_header)],
+data.dsize - sizeof(struct ctdb_ltdb_header)) != 0)) {
DEBUG(DEBUG_CRIT,("existi