From b4a95994c6ce0ae11dc865526e71ed00d45d6bc7 Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Thu, 27 Aug 2020 10:38:43 +0900 Subject: [PATCH] osd: make checking intersect range simple Signed-off-by: Myoungwon Oh --- src/osd/PrimaryLogPG.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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; -- 2.47.3