bufferlist::iterator iter;
map<string, bufferlist> vals;
string filter_prefix;
- #define MAX_RESHARD_LIST_ENTRIES 1000
+#define MAX_RESHARD_LIST_ENTRIES 1000
/* one extra entry for identifying truncation */
int32_t max = (op.max < MAX_RESHARD_LIST_ENTRIES ? op.max : MAX_RESHARD_LIST_ENTRIES) + 1;
int ret = cls_cxx_map_get_vals(hctx, op.marker, filter_prefix, max, &vals);
return ret;
map<string, bufferlist>::iterator it;
cls_rgw_reshard_entry entry;
- for (it = vals.begin(); it != vals.end(); ++it) {
+ int i = 0;
+ for (it = vals.begin(); i < (int)op.max && it != vals.end(); ++it, ++i) {
iter = it->second.begin();
try {
::decode(entry, iter);
}
op_ret.entries.push_back(entry);
}
- op_ret.is_truncated = op.max && (op_ret.entries.size() >= op.max);
+ op_ret.is_truncated = op.max && (vals.size() > op.max);
::encode(op_ret, *out);
return 0;
}