From: Samuel Just Date: Sat, 8 Feb 2014 22:04:14 +0000 (-0800) Subject: PGBackend/ReplicatedBackend: factor out logical to ondisk size mapping X-Git-Tag: v0.78~163^2~15 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=510585b7951575d803848ff2f9b2396e28c98824;p=ceph.git PGBackend/ReplicatedBackend: factor out logical to ondisk size mapping Signed-off-by: Samuel Just --- diff --git a/src/osd/PGBackend.cc b/src/osd/PGBackend.cc index 80fca2a5cdce..1b594f2a1c7c 100644 --- a/src/osd/PGBackend.cc +++ b/src/osd/PGBackend.cc @@ -416,6 +416,7 @@ map::const_iterator << dendl; continue; } + bufferlist bl; bl.push_back(k->second); object_info_t oi; @@ -430,7 +431,8 @@ map::const_iterator // invalid object info, probably corrupt continue; } - if (oi.size != i->second.size) { + uint64_t correct_size = be_get_ondisk_size(oi.size); + if (correct_size != i->second.size) { // invalid size, probably corrupt dout(10) << __func__ << ": rejecting osd " << j->first << " for obj " << obj diff --git a/src/osd/PGBackend.h b/src/osd/PGBackend.h index aecd3ae078b4..9bc783a2fc85 100644 --- a/src/osd/PGBackend.h +++ b/src/osd/PGBackend.h @@ -584,6 +584,8 @@ const vector &acting, ostream &errorstream); + virtual uint64_t be_get_ondisk_size( + uint64_t logical_size) { assert(0); return 0; } virtual void be_deep_scrub( const hobject_t &poid, ScrubMap::object &o, diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index 87022bb4632f..0d29aed98f70 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -407,6 +407,7 @@ private: const hobject_t &obj, ScrubMap::object &o, ThreadPool::TPHandle &handle); + uint64_t be_get_ondisk_size(uint64_t logical_size) { return logical_size; } }; #endif