diff options
author | Michael Adam <obnox@samba.org> | 2011-02-03 12:15:41 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2011-03-14 13:35:43 +0100 |
commit | 3cb3620acfd32ca402353e209e08ffbc3b420de1 (patch) | |
tree | f0ed29a7e0d4c07615b58d3867fb1fcc5b0cbf63 | |
parent | dd75ae8c1525e8415ce6d696cca994c31b6874fe (diff) | |
download | samba-3cb3620acfd32ca402353e209e08ffbc3b420de1.tar.gz samba-3cb3620acfd32ca402353e209e08ffbc3b420de1.tar.xz samba-3cb3620acfd32ca402353e209e08ffbc3b420de1.zip |
vacuum: check lmaster against num_nodes instead of vnn_map->size
When lmaster is bigger than the biggest recorded node number,
then exit the traverse with error.
(This used to be ctdb commit 3930c7796b72bbf275bbca8aaeceec3e705a964b)
-rw-r--r-- | ctdb/server/ctdb_vacuum.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c index aa7908fe0e..e5b3cd5e22 100644 --- a/ctdb/server/ctdb_vacuum.c +++ b/ctdb/server/ctdb_vacuum.c @@ -109,8 +109,14 @@ static int vacuum_traverse(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, size_t old_size; lmaster = ctdb_lmaster(ctdb, &key); - if (lmaster >= ctdb->vnn_map->size) { - return 0; + if (lmaster >= ctdb->num_nodes) { + DEBUG(DEBUG_CRIT, (__location__ + " lmaster[%u] >= ctdb->num_nodes[%u] for key" + " with hash[%u]!\n", + (unsigned)lmaster, + (unsigned)ctdb->num_nodes, + (unsigned)ctdb_hash(&key))); + return -1; } if (data.dsize != sizeof(struct ctdb_ltdb_header)) { |