X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcommon%2Ffs_types.cc;fp=src%2Fceph%2Fsrc%2Fcommon%2Ffs_types.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=929f3f2880681f5342b2fc1e4b751ba31336b4fe;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/common/fs_types.cc b/src/ceph/src/common/fs_types.cc deleted file mode 100644 index 929f3f2..0000000 --- a/src/ceph/src/common/fs_types.cc +++ /dev/null @@ -1,134 +0,0 @@ - -#include "include/fs_types.h" -#include "common/Formatter.h" -#include "include/ceph_features.h" - -void dump(const ceph_file_layout& l, Formatter *f) -{ - f->dump_unsigned("stripe_unit", l.fl_stripe_unit); - f->dump_unsigned("stripe_count", l.fl_stripe_count); - f->dump_unsigned("object_size", l.fl_object_size); - if (l.fl_cas_hash) - f->dump_unsigned("cas_hash", l.fl_cas_hash); - if (l.fl_object_stripe_unit) - f->dump_unsigned("object_stripe_unit", l.fl_object_stripe_unit); - if (l.fl_pg_pool) - f->dump_unsigned("pg_pool", l.fl_pg_pool); -} - -void dump(const ceph_dir_layout& l, Formatter *f) -{ - f->dump_unsigned("dir_hash", l.dl_dir_hash); -} - - -// file_layout_t - -bool file_layout_t::is_valid() const -{ - /* stripe unit, object size must be non-zero, 64k increment */ - if (!stripe_unit || (stripe_unit & (CEPH_MIN_STRIPE_UNIT-1))) - return false; - if (!object_size || (object_size & (CEPH_MIN_STRIPE_UNIT-1))) - return false; - /* object size must be a multiple of stripe unit */ - if (object_size < stripe_unit || object_size % stripe_unit) - return false; - /* stripe count must be non-zero */ - if (!stripe_count) - return false; - return true; -} - -void file_layout_t::from_legacy(const ceph_file_layout& fl) -{ - stripe_unit = fl.fl_stripe_unit; - stripe_count = fl.fl_stripe_count; - object_size = fl.fl_object_size; - pool_id = (int32_t)fl.fl_pg_pool; - // in the legacy encoding, a zeroed structure was the default and - // would have pool 0 instead of -1. - if (pool_id == 0 && stripe_unit == 0 && stripe_count == 0 && object_size == 0) - pool_id = -1; - pool_ns.clear(); -} - -void file_layout_t::to_legacy(ceph_file_layout *fl) const -{ - fl->fl_stripe_unit = stripe_unit; - fl->fl_stripe_count = stripe_count; - fl->fl_object_size = object_size; - fl->fl_cas_hash = 0; - fl->fl_object_stripe_unit = 0; - fl->fl_unused = 0; - // in the legacy encoding, pool 0 was undefined. - if (pool_id >= 0) - fl->fl_pg_pool = pool_id; - else - fl->fl_pg_pool = 0; -} - -void file_layout_t::encode(bufferlist& bl, uint64_t features) const -{ - if ((features & CEPH_FEATURE_FS_FILE_LAYOUT_V2) == 0) { - ceph_file_layout fl; - assert((stripe_unit & 0xff) == 0); // first byte must be 0 - to_legacy(&fl); - ::encode(fl, bl); - return; - } - - ENCODE_START(2, 2, bl); - ::encode(stripe_unit, bl); - ::encode(stripe_count, bl); - ::encode(object_size, bl); - ::encode(pool_id, bl); - ::encode(pool_ns, bl); - ENCODE_FINISH(bl); -} - -void file_layout_t::decode(bufferlist::iterator& p) -{ - if (*p == 0) { - ceph_file_layout fl; - ::decode(fl, p); - from_legacy(fl); - return; - } - DECODE_START(2, p); - ::decode(stripe_unit, p); - ::decode(stripe_count, p); - ::decode(object_size, p); - ::decode(pool_id, p); - ::decode(pool_ns, p); - DECODE_FINISH(p); -} - -void file_layout_t::dump(Formatter *f) const -{ - f->dump_unsigned("stripe_unit", stripe_unit); - f->dump_unsigned("stripe_count", stripe_count); - f->dump_unsigned("object_size", object_size); - f->dump_int("pool_id", pool_id); - f->dump_string("pool_ns", pool_ns); -} - -void file_layout_t::generate_test_instances(list& o) -{ - o.push_back(new file_layout_t); - o.push_back(new file_layout_t); - o.back()->stripe_unit = 4096; - o.back()->stripe_count = 16; - o.back()->object_size = 1048576; - o.back()->pool_id = 3; - o.back()->pool_ns = "myns"; -} - -ostream& operator<<(ostream& out, const file_layout_t &layout) -{ - JSONFormatter f; - layout.dump(&f); - f.flush(out); - return out; -} -