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)
committerAmitay Isaacs <amitay@gmail.com>
Thu, 18 Apr 2013 04:05:40 +0000 (14:05 +1000)
(cherry picked from commit b3307d78fd15f446b423f8cdd1e403f89fbe8ac8)

server/ctdb_ltdb_server.c

index 77873748df7cee794b35c94c3653bfe75acd5363..42c93cf00394feea4ee222de36bb7ade54ab13da 100644 (file)
@@ -122,7 +122,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;
@@ -167,7 +167,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;
                }