if (list_context->starting_pg_num == 0) { // there can't be zero pgs!
list_context->starting_pg_num = pg_num;
+ list_context->sort_bitwise = osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE);
ldout(cct, 20) << pg_num << " placement groups" << dendl;
}
+ if (list_context->sort_bitwise != osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE)) {
+ ldout(cct, 10) << " hobject sort order changed, restarting this pg" << dendl;
+ list_context->cookie = collection_list_handle_t();
+ list_context->sort_bitwise = osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE);
+ }
if (list_context->starting_pg_num != pg_num) {
// start reading from the beginning; the pgs have changed
ldout(cct, 10) << " pg_num changed; restarting with " << pg_num << dendl;
if (list_context->starting_pg_num == 0) { // there can't be zero pgs!
list_context->starting_pg_num = pg_num;
+ list_context->sort_bitwise = osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE);
ldout(cct, 20) << pg_num << " placement groups" << dendl;
}
+ if (list_context->sort_bitwise != osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE)) {
+ ldout(cct, 10) << " hobject sort order changed, restarting this pg" << dendl;
+ list_context->cookie = collection_list_handle_t();
+ list_context->sort_bitwise = osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE);
+ }
if (list_context->starting_pg_num != pg_num) {
// start reading from the beginning; the pgs have changed
ldout(cct, 10) << " pg_num changed; restarting with " << pg_num << dendl;
int starting_pg_num;
bool at_end_of_pool;
bool at_end_of_pg;
+ bool sort_bitwise;
int64_t pool_id;
int pool_snap_seq;
NListContext() : current_pg(0), current_pg_epoch(0), starting_pg_num(0),
at_end_of_pool(false),
at_end_of_pg(false),
+ sort_bitwise(false),
pool_id(0),
pool_snap_seq(0),
max_entries(0),
int starting_pg_num;
bool at_end_of_pool;
bool at_end_of_pg;
+ bool sort_bitwise;
int64_t pool_id;
int pool_snap_seq;
ListContext() : current_pg(0), current_pg_epoch(0), starting_pg_num(0),
at_end_of_pool(false),
at_end_of_pg(false),
+ sort_bitwise(false),
pool_id(0),
pool_snap_seq(0),
max_entries(0),