]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: make checking intersect range simple
authormyoungwon oh <ohmyoungwon@gmail.com>
Thu, 27 Aug 2020 01:38:43 +0000 (10:38 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Thu, 27 Aug 2020 01:38:43 +0000 (10:38 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsumg.com>
src/osd/PrimaryLogPG.cc

index 223eeeb489e9d7fe18cd99fd6cce1805d6e7f255..2a5631700399a762f616af27baca8a4da3061a14 100644 (file)
@@ -6884,8 +6884,9 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& 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<uint64_t> 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;