From: Sage Weil Date: Fri, 5 Dec 2014 21:58:48 +0000 (-0800) Subject: os/ObjectStore: deprecated collection_getattr et al X-Git-Tag: v0.91~23^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=17e4e1974a6d642644fac9f2a1766b36b97f8951;p=ceph.git os/ObjectStore: deprecated collection_getattr et al Drop the functional tests for this too. Return EOPNOTSUPP by default, and tolerate this in the callers. Signed-off-by: Sage Weil --- diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h index 4feb19061c66..4f681e89a40b 100644 --- a/src/os/ObjectStore.h +++ b/src/os/ObjectStore.h @@ -1455,7 +1455,11 @@ public: * @returns 0 on success, negative error code on failure */ virtual int collection_getattr(coll_t cid, const char *name, - void *value, size_t size) = 0; + void *value, size_t size) + __attribute__ ((deprecated)) { + return -EOPNOTSUPP; + } + /** * collection_getattr - get an xattr of a collection * @@ -1464,7 +1468,11 @@ public: * @param bl buffer to receive value * @returns 0 on success, negative error code on failure */ - virtual int collection_getattr(coll_t cid, const char *name, bufferlist& bl) = 0; + virtual int collection_getattr(coll_t cid, const char *name, bufferlist& bl) + __attribute__ ((deprecated)) { + return -EOPNOTSUPP; + } + /** * collection_getattrs - get all xattrs of a collection * @@ -1472,7 +1480,11 @@ public: * @param asert map of keys and buffers that contain the values * @returns 0 on success, negative error code on failure */ - virtual int collection_getattrs(coll_t cid, map &aset) = 0; + virtual int collection_getattrs(coll_t cid, map &aset) + __attribute__ ((deprecated)) { + return -EOPNOTSUPP; + } + /** * is a collection empty? * diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 734318215ec5..197abcf941ca 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2706,6 +2706,9 @@ void PG::write_info(ObjectStore::Transaction& t) dirty_big_info = false; } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + bool PG::_has_removal_flag(ObjectStore *store, spg_t pgid) { @@ -2720,14 +2723,13 @@ bool PG::_has_removal_flag(ObjectStore *store, values.size() == 1) return true; - // try old way + // try old way. tolerate EOPNOTSUPP. char val; if (store->collection_getattr(coll, "remove", &val, 1) > 0) return true; return false; } - epoch_t PG::peek_map_epoch(ObjectStore *store, spg_t pgid, bufferlist *bl) @@ -2793,6 +2795,8 @@ epoch_t PG::peek_map_epoch(ObjectStore *store, return cur_epoch; } +#pragma GCC diagnostic pop + void PG::write_if_dirty(ObjectStore::Transaction& t) { if (dirty_big_info || dirty_info) @@ -3622,9 +3626,6 @@ void PG::build_scrub_map(ScrubMap &map, ThreadPool::TPHandle &handle) dout(10) << "PG relocked, finalizing" << dendl; - // pg attrs - osd->store->collection_getattrs(coll, map.attrs); - dout(10) << __func__ << " done." << dendl; } @@ -3660,8 +3661,6 @@ void PG::build_inc_scrub_map( } get_pgbackend()->be_scan_list(map, ls, false, handle); - // pg attrs - osd->store->collection_getattrs(coll, map.attrs); } void PG::repair_object( diff --git a/src/test/objectstore/FileStoreDiff.cc b/src/test/objectstore/FileStoreDiff.cc index 40c0b32d30c1..ad4f62bff73e 100644 --- a/src/test/objectstore/FileStoreDiff.cc +++ b/src/test/objectstore/FileStoreDiff.cc @@ -258,13 +258,13 @@ bool FileStoreDiff::diff_coll_attrs(FileStore *a_store, FileStore *b_store, coll int err; std::map b_coll_attrs, a_coll_attrs; err = b_store->collection_getattrs(coll, b_coll_attrs); - if (err < 0) { + if (err < 0 && err != -EOPNOTSUPP) { dout(0) << "diff_attrs getattrs on verify coll " << coll.to_str() << "returns " << err << dendl; ret = true; } err = a_store->collection_getattrs(coll, a_coll_attrs); - if (err < 0) { + if (err < 0 && err != -EOPNOTSUPP) { dout(0) << "diff_attrs getattrs on A coll " << coll.to_str() << "returns " << err << dendl; ret = true; diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index fbb6c4d167bc..30eab89b7f2d 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -1126,83 +1126,6 @@ TEST_P(StoreTest, HashCollisionTest) { ASSERT_EQ(r, 0); } -TEST_P(StoreTest, CollectionAttrTest) { - coll_t cid("blah"); - int r; - - { - ObjectStore::Transaction t; - t.create_collection(cid); - r = store->apply_transaction(t); - ASSERT_EQ(r, 0); - } - - { - bufferlist bl; - map aset; - char nonexist[] = "nonexist"; - - r = store->collection_getattr(cid, nonexist, bl); - ASSERT_EQ(r, -ENODATA); - - r = store->collection_getattrs(cid, aset); - ASSERT_EQ(r, 0); - ASSERT_EQ(aset.size(), 0u); - } - - { - bufferlist bl; - map aset; - ObjectStore::Transaction t; - char zero_length[] = "zero-length"; - - t.collection_setattr(cid, zero_length, bl); - r = store->apply_transaction(t); - ASSERT_EQ(r, 0); - ASSERT_EQ(bl.length(), 0u); - - r = store->collection_getattr(cid, zero_length, bl); - ASSERT_EQ(r, 0); - ASSERT_EQ(bl.length(), 0u); - - r = store->collection_getattrs(cid, aset); - ASSERT_EQ(r, 0); - ASSERT_EQ(aset.size(), 1u); - ASSERT_EQ(aset[zero_length].length(), 0u); - } - - { - bufferlist bl; - map aset; - ObjectStore::Transaction t; - char normal[] = "normal"; - char data[] = "dasdfjasdlkas"; - - bl.append(data, sizeof(data)); - t.collection_setattr(cid, normal, bl); - r = store->apply_transaction(t); - ASSERT_EQ(r, 0); - bl.clear(); - - r = store->collection_getattr(cid, normal, bl); - ASSERT_EQ(r, (int)sizeof(data)); - ASSERT_EQ(bl.length(), sizeof(data)); - bl.clear(); - - r = store->collection_getattrs(cid, aset); - ASSERT_EQ(r, 0); - ASSERT_EQ(aset.size(), 2u); - ASSERT_EQ(aset[normal].length(), sizeof(data)); - } - - { - ObjectStore::Transaction t; - t.remove_collection(cid); - r = store->apply_transaction(t); - ASSERT_EQ(r, 0); - } -} - TEST_P(StoreTest, ScrubTest) { coll_t cid("blah"); int r;