return -EINVAL;
}
+ for (auto fs : pending_fsmap.get_filesystems()) {
+ const set<int64_t>& data_pools = fs.second->mds_map.get_data_pools();
+ string sure;
+ if ((data_pools.find(data) != data_pools.end()
+ || fs.second->mds_map.metadata_pool == metadata)
+ && ((!cmd_getval(g_ceph_context, cmdmap, "sure", sure)
+ || sure != "--allow-dangerous-metadata-overlay"))) {
+ ss << "Filesystem '" << fs_name
+ << "' is already using one of the specified RADOS pools. This should ONLY be done in emergencies and after careful reading of the documentation. Pass --allow-dangerous-metadata-overlay to permit this.";
+ return -EEXIST;
+ }
+ }
+
pg_pool_t const *data_pool = mon->osdmon()->osdmap.get_pg_pool(data);
assert(data_pool != NULL); // Checked it existed above
pg_pool_t const *metadata_pool = mon->osdmon()->osdmap.get_pg_pool(metadata);
"name=metadata,type=CephString " \
"name=data,type=CephString " \
"name=force,type=CephChoices,strings=--force,req=false", \
+ "name=allow_overlay,type=CephChoices,strings=--allow-dangerous-metadata-overlay,req=false", \
"make new filesystem using named pools <metadata> and <data>", \
"fs", "rw", "cli,rest")
COMMAND("fs rm " \