READONLY: dont schedule for fast vacuum deletion if any of the readonly record flags...
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Mon, 20 Feb 2012 19:54:09 +0000 (06:54 +1100)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Mon, 20 Feb 2012 19:54:09 +0000 (06:54 +1100)
(This used to be ctdb commit b3307d78fd15f446b423f8cdd1e403f89fbe8ac8)

ctdb/server/ctdb_ltdb_server.c

index e699c2ad80f85d678b7f0a81eb1476de5355d1bc..8e183e87a41533f68bb1895b2cb1bff2e07bcca4 100644 (file)
@@ -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;
                }