Project

General

Profile

Actions

Bug #15535

closed

Missing export for rados_aio_get_version in src/include/rados/librados.h

Added by Jim Wright about 8 years ago. Updated almost 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
librados
Target version:
-
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Hi,

The function rados_aio_get_version is correctly defined and implemented in src/librados/librados.cc. However without a corresponding declaration in librados.h specifying it has scope CEPH_RADOS_API, the function ends up having no external visibility in librados.so; and so is uncallable by library users.


Related issues 1 (0 open1 closed)

Copied to Ceph - Backport #16153: jewel: Missing export for rados_aio_get_version in src/include/rados/librados.hResolvedAbhishek VarshneyActions
Actions #1

Updated by Jim Wright about 8 years ago

This diff fixes the issue, however I'm unsure if the doxygen comments are correct as I just copied them from rados_aio_get_return_value.

diff --git a/src/include/rados/librados.h b/src/include/rados/librados.h
index 3aebf20..9048ad7 100644
--- a/src/include/rados/librados.h
+++ b/src/include/rados/librados.h
@@ -1706,6 +1706,22 @@ CEPH_RADOS_API int rados_aio_is_safe_and_cb(rados_completion_t c);
 CEPH_RADOS_API int rados_aio_get_return_value(rados_completion_t c);

 /**
+ * Get the version of an asychronous operation's object
+ *
+ * The return value is set when the operation is complete or safe,
+ * whichever comes first.
+ *
+ * @pre The operation is safe or complete
+ *
+ * @note BUG: complete callback may never be called when the safe
+ * message is received before the complete message
+ *
+ * @param c async operation to inspect
+ * @returns version number of the operation's object
+ */
+CEPH_RADOS_API uint64_t rados_aio_get_version(rados_completion_t c);
+
+/**
  * Release a completion
  *
  * Call this when you no longer need the completion. It may not be
Actions #2

Updated by Sage Weil almost 8 years ago

  • Status changed from New to Pending Backport
  • Backport set to jewel
Actions #4

Updated by Nathan Cutler almost 8 years ago

  • Copied to Backport #16153: jewel: Missing export for rados_aio_get_version in src/include/rados/librados.h added
Actions #5

Updated by Loïc Dachary almost 8 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF