Fixes: #11256
Multiple concurrent requests might be sent using the same tag, need the
entry map to be able to hold multiple entries.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit
4e6a66b55e73c01347fc3330faa5c1307d29e9d3)
}
// fill in proper state
- struct rgw_bucket_pending_info& info = entry.pending_map[op.tag];
+ struct rgw_bucket_pending_info info;
info.timestamp = ceph_clock_now(g_ceph_context);
info.state = CLS_RGW_STATE_PENDING_MODIFY;
info.op = op.op;
+ entry.pending_map.insert(pair<string, rgw_bucket_pending_info>(op.tag, info));
struct rgw_bucket_dir_header header;
rc = read_bucket_header(hctx, &header);
std::string locator;
bool exists;
struct rgw_bucket_dir_entry_meta meta;
- map<string, struct rgw_bucket_pending_info> pending_map;
+ multimap<string, struct rgw_bucket_pending_info> pending_map;
uint64_t index_ver;
string tag;
uint16_t flags;