]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #2253 from adamcrume/wip-lttng
authorSage Weil <sage@redhat.com>
Thu, 21 Aug 2014 20:14:51 +0000 (13:14 -0700)
committerSage Weil <sage@redhat.com>
Thu, 21 Aug 2014 20:14:51 +0000 (13:14 -0700)
RBD-replay

Reviewed-by: Sage Weil <sage@redhat.com>
18 files changed:
1  2 
ceph.spec.in
configure.ac
debian/control
debian/rules
src/Makefile-env.am
src/Makefile.am
src/common/config_opts.h
src/librados/librados.cc
src/librbd/internal.cc
src/os/FileStore.cc
src/os/Makefile.am
src/os/ObjectStore.h
src/osd/OSD.cc
src/osd/OpRequest.cc
src/osd/OpRequest.h
src/osd/PG.cc
src/osd/ReplicatedPG.cc
src/test/Makefile.am

diff --cc ceph.spec.in
Simple merge
diff --cc configure.ac
Simple merge
diff --cc debian/control
Simple merge
diff --cc debian/rules
Simple merge
Simple merge
diff --cc src/Makefile.am
index 0f5dc732a9b53e14a5b11b668e08b4dab42ecd1c,41243a2fa40456bfa9caf25cde633e51cffe2fbb..b954f3f8d0516d01fc349567609169b2f348cb1a
@@@ -1,10 -1,9 +1,10 @@@
  include Makefile-env.am
  
- SUBDIRS += ocf java
- DIST_SUBDIRS += gtest ocf libs3 java
+ SUBDIRS += ocf java tracing
+ DIST_SUBDIRS += gtest ocf libs3 java tracing
  
  
 +
  # subdirs
  
  include arch/Makefile.am
Simple merge
Simple merge
Simple merge
index 08b29f7300977f9ea9cd1ecb96679cf3e6827cba,41eca1cbcb798ba9a9df06aecc3e311c56f86513..afda6192a1d07d2c3eb33c75a86c59427270d803
@@@ -4445,12 -4424,9 +4542,13 @@@ int FileStore::collection_list(coll_t c
    int r = get_index(c, &index);
    if (r < 0)
      return r;
 +
 +  assert(NULL != index.index);
 +  RWLock::RLocker l((index.index)->access_lock);
 +
    r = index->collection_list(&ls);
    assert(!m_filestore_fail_eio || r != -EIO);
+   tracepoint(objectstore, collection_list_exit, r);
    return r;
  }
  
@@@ -4458,18 -4434,12 +4556,19 @@@ int FileStore::omap_get(coll_t c, cons
                        bufferlist *header,
                        map<string, bufferlist> *out)
  {
+   tracepoint(objectstore, omap_get_enter, c.c_str());
    dout(15) << __func__ << " " << c << "/" << hoid << dendl;
 -  IndexedPath path;
 -  int r = lfn_find(c, hoid, &path);
 +  Index index;
 +  int r = get_index(c, &index);
    if (r < 0)
      return r;
 +  {
 +    assert(NULL != index.index);
 +    RWLock::RLocker l((index.index)->access_lock);
 +    r = lfn_find(hoid, index);
 +    if (r < 0)
 +      return r;
 +  }
    r = object_map->get(hoid, header, out);
    if (r < 0 && r != -ENOENT) {
      assert(!m_filestore_fail_eio || r != -EIO);
@@@ -4484,18 -4455,12 +4584,19 @@@ int FileStore::omap_get_header
    bufferlist *bl,
    bool allow_eio)
  {
+   tracepoint(objectstore, omap_get_header_enter, c.c_str());
    dout(15) << __func__ << " " << c << "/" << hoid << dendl;
 -  IndexedPath path;
 -  int r = lfn_find(c, hoid, &path);
 +  Index index;
 +  int r = get_index(c, &index);
    if (r < 0)
      return r;
 +  {
 +    assert(NULL != index.index);
 +    RWLock::RLocker l((index.index)->access_lock);
 +    r = lfn_find(hoid, index);
 +    if (r < 0)
 +      return r;
 +  }
    r = object_map->get_header(hoid, bl);
    if (r < 0 && r != -ENOENT) {
      assert(allow_eio || !m_filestore_fail_eio || r != -EIO);
  
  int FileStore::omap_get_keys(coll_t c, const ghobject_t &hoid, set<string> *keys)
  {
+   tracepoint(objectstore, omap_get_keys_enter, c.c_str());
    dout(15) << __func__ << " " << c << "/" << hoid << dendl;
 -  IndexedPath path;
 -  int r = lfn_find(c, hoid, &path);
 +  Index index;
 +  int r = get_index(c, &index);
    if (r < 0)
      return r;
 +  {
 +    assert(NULL != index.index);
 +    RWLock::RLocker l((index.index)->access_lock);
 +    r = lfn_find(hoid, index);
 +    if (r < 0)
 +      return r;
 +  }
    r = object_map->get_keys(hoid, keys);
    if (r < 0 && r != -ENOENT) {
      assert(!m_filestore_fail_eio || r != -EIO);
@@@ -4530,18 -4491,12 +4634,19 @@@ int FileStore::omap_get_values(coll_t c
                               const set<string> &keys,
                               map<string, bufferlist> *out)
  {
+   tracepoint(objectstore, omap_get_values_enter, c.c_str());
    dout(15) << __func__ << " " << c << "/" << hoid << dendl;
 -  IndexedPath path;
 -  int r = lfn_find(c, hoid, &path);
 +  Index index;
 +  int r = get_index(c, &index);
    if (r < 0)
      return r;
 +  {
 +    assert(NULL != index.index);
 +    RWLock::RLocker l((index.index)->access_lock);
 +    r = lfn_find(hoid, index);
 +    if (r < 0)
 +      return r;
 +  }
    r = object_map->get_values(hoid, keys, out);
    if (r < 0 && r != -ENOENT) {
      assert(!m_filestore_fail_eio || r != -EIO);
@@@ -4554,19 -4510,12 +4660,20 @@@ int FileStore::omap_check_keys(coll_t c
                               const set<string> &keys,
                               set<string> *out)
  {
+   tracepoint(objectstore, omap_check_keys_enter, c.c_str());
    dout(15) << __func__ << " " << c << "/" << hoid << dendl;
 -  IndexedPath path;
 -  int r = lfn_find(c, hoid, &path);
 +
 +  Index index;
 +  int r = get_index(c, &index);
    if (r < 0)
      return r;
 +  {
 +    assert(NULL != index.index);
 +    RWLock::RLocker l((index.index)->access_lock);
 +    r = lfn_find(hoid, index);
 +    if (r < 0)
 +      return r;
 +  }
    r = object_map->check_keys(hoid, keys, out);
    if (r < 0 && r != -ENOENT) {
      assert(!m_filestore_fail_eio || r != -EIO);
  ObjectMap::ObjectMapIterator FileStore::get_omap_iterator(coll_t c,
                                                          const ghobject_t &hoid)
  {
+   tracepoint(objectstore, get_omap_iterator, c.c_str());
    dout(15) << __func__ << " " << c << "/" << hoid << dendl;
 -  IndexedPath path;
 -  int r = lfn_find(c, hoid, &path);
 +  Index index;
 +  int r = get_index(c, &index);
    if (r < 0)
 -    return ObjectMap::ObjectMapIterator();
 +    return ObjectMap::ObjectMapIterator(); 
 +  {
 +    assert(NULL != index.index);
 +    RWLock::RLocker l((index.index)->access_lock);
 +    r = lfn_find(hoid, index);
 +    if (r < 0)
 +      return ObjectMap::ObjectMapIterator();
 +  }
    return object_map->get_iterator(hoid);
  }
  
Simple merge
Simple merge
diff --cc src/osd/OSD.cc
Simple merge
Simple merge
Simple merge
diff --cc src/osd/PG.cc
Simple merge
Simple merge
Simple merge