]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedPG: fix missing set sort order on [N]PGLS
authorSage Weil <sage@redhat.com>
Fri, 7 Aug 2015 20:47:43 +0000 (16:47 -0400)
committerSage Weil <sage@redhat.com>
Mon, 17 Aug 2015 13:50:13 +0000 (09:50 -0400)
This is the only thing that cares about the missing set sort order,
so only adjust it here as needed.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/ReplicatedPG.cc

index 5bcb462986e82c32ebcd206147397fb4fd406e5f..04b3a3e8ee2fc136136669b95432907a04f3a73c 100644 (file)
@@ -846,6 +846,10 @@ void ReplicatedPG::do_pg_op(OpRequestRef op)
        }
 
        assert(snapid == CEPH_NOSNAP || pg_log.get_missing().missing.empty());
+
+       // ensure sort order is correct
+       pg_log.resort_missing(get_sort_bitwise());
+
        map<hobject_t, pg_missing_t::item, hobject_t::ComparatorWithDefault>::const_iterator missing_iter =
          pg_log.get_missing().missing.lower_bound(current);
        vector<hobject_t>::iterator ls_iter = sentries.begin();
@@ -1005,6 +1009,10 @@ void ReplicatedPG::do_pg_op(OpRequestRef op)
        }
 
        assert(snapid == CEPH_NOSNAP || pg_log.get_missing().missing.empty());
+
+       // ensure sort order is correct
+       pg_log.resort_missing(get_sort_bitwise());
+
        map<hobject_t, pg_missing_t::item, hobject_t::ComparatorWithDefault>::const_iterator missing_iter =
          pg_log.get_missing().missing.lower_bound(current);
        vector<hobject_t>::iterator ls_iter = sentries.begin();