From: David Zafman Date: Wed, 15 Oct 2014 22:21:11 +0000 (-0700) Subject: ceph_objectstore_tool: Check cluster_fsid before allowing an import X-Git-Tag: v0.80.10~69^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f65db436f6eb83d7c59fdddced4d35dd9eeeb078;p=ceph.git ceph_objectstore_tool: Check cluster_fsid before allowing an import Signed-off-by: David Zafman (cherry picked from commit 196c8112dc9a6e8780b05d6c579cd7fbd5b07589) --- diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index f8f534726e4..3c90c3cb41f 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -1578,6 +1578,13 @@ int do_import(ObjectStore *store, OSDSuperblock& sb) pgb.decode(ebliter); spg_t pgid = pgb.pgid; + if (!pgb.superblock.cluster_fsid.is_zero() + && pgb.superblock.cluster_fsid != sb.cluster_fsid) { + cerr << "Export came from different cluster with fsid " + << pgb.superblock.cluster_fsid << std::endl; + return 1; + } + if (debug) { cerr << "Exported features: " << pgb.superblock.compat_features << std::endl; } @@ -2337,6 +2344,10 @@ int main(int argc, char **argv) p = bl.begin(); ::decode(superblock, p); + if (debug) { + cerr << "Cluster fsid=" << superblock.cluster_fsid << std::endl; + } + #ifdef INTERNAL_TEST2 fs->set_allow_sharded_objects(); assert(fs->get_allow_sharded_objects());