From: myoungwon oh Date: Thu, 27 Aug 2020 01:38:43 +0000 (+0900) Subject: osd: make checking intersect range simple X-Git-Tag: v16.1.0~1248^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b4a95994c6ce0ae11dc865526e71ed00d45d6bc7;p=ceph.git osd: make checking intersect range simple Signed-off-by: Myoungwon Oh --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 223eeeb489e..2a563170039 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -6884,8 +6884,9 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector& ops) } for (auto &p : oi.manifest.chunk_map) { - if ((p.first <= src_offset && p.first + p.second.length > src_offset) || - (p.first > src_offset && p.first <= src_offset + src_length)) { + interval_set chunk; + chunk.insert(p.first, p.second.length); + if (chunk.intersects(src_offset, src_length)) { dout(20) << __func__ << " overlapped !! offset: " << src_offset << " length: " << src_length << " chunk_info: " << p << dendl; result = -EOPNOTSUPP;