From: Kefu Chai Date: Tue, 10 Apr 2018 06:07:17 +0000 (+0800) Subject: osd,mds: use map::merge() whenever appropriate X-Git-Tag: v13.1.0~333^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F21310%2Fhead;p=ceph.git osd,mds: use map::merge() whenever appropriate and use explicit std::move() when map::merge() is not available. Signed-off-by: Kefu Chai --- diff --git a/src/mds/OpenFileTable.cc b/src/mds/OpenFileTable.cc index cc64d42c523fb..0e30e975cf5e0 100644 --- a/src/mds/OpenFileTable.cc +++ b/src/mds/OpenFileTable.cc @@ -347,8 +347,10 @@ void OpenFileTable::commit(MDSInternalContextBase *c, uint64_t log_seq, int op_p ctl.journaled_update.merge(ctl.to_update); ctl.journaled_remove.merge(ctl.to_remove); #else - ctl.journaled_update.insert(ctl.to_update.begin(), ctl.to_update.end()); - ctl.journaled_remove.insert(ctl.to_remove.begin(), ctl.to_remove.end()); + ctl.journaled_update.insert(make_move_iterator(begin(ctl.to_update)), + make_move_iterator(end(ctl.to_update))); + ctl.journaled_remove.insert(make_move_iterator(begin(ctl.to_remove)), + make_move_iterator(end(ctl.to_remove))); #endif ctl.to_update.clear(); ctl.to_remove.clear(); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 546ad2d95473d..e3b79082133c6 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -940,8 +940,12 @@ void OSDService::remove_want_pg_temp(pg_t pgid) void OSDService::_sent_pg_temp() { +#ifdef HAVE_STDLIB_MAP_SPLICING + pg_temp_pending.merge(pg_temp_wanted); +#else pg_temp_pending.insert(make_move_iterator(begin(pg_temp_wanted)), make_move_iterator(end(pg_temp_wanted))); +#endif pg_temp_wanted.clear(); }