summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_ltdb_server.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronniesahlberg@gmail.com>2012-02-21 06:54:09 +1100
committerRonnie Sahlberg <ronniesahlberg@gmail.com>2012-02-21 06:54:09 +1100
commitcdc232f2dd798100a608c5a4845391d3c07899ad (patch)
tree7a36fa10614d1a859b51a558b23d92d2b618fea5 /ctdb/server/ctdb_ltdb_server.c
parentaf424b151c0bfa400021787cd5aba0a0e568fe2f (diff)
downloadsamba-cdc232f2dd798100a608c5a4845391d3c07899ad.tar.gz
samba-cdc232f2dd798100a608c5a4845391d3c07899ad.tar.xz
samba-cdc232f2dd798100a608c5a4845391d3c07899ad.zip
READONLY: dont schedule for fast vacuum deletion if any of the readonly record flags are set
(This used to be ctdb commit b3307d78fd15f446b423f8cdd1e403f89fbe8ac8)
Diffstat (limited to 'ctdb/server/ctdb_ltdb_server.c')
-rw-r--r--ctdb/server/ctdb_ltdb_server.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c
index e699c2ad80f..8e183e87a41 100644
--- a/ctdb/server/ctdb_ltdb_server.c
+++ b/ctdb/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;
}