-
Notifications
You must be signed in to change notification settings - Fork 260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rbd: add support for rbd_diff_iterate3 api #1064
base: master
Are you sure you want to change the base?
Conversation
hey, Please take a look at the function name and the way it is defined. The new api will be added in this pr https://github.com/ceph/ceph/pull/60844/files#diff-b4983d99df0348718f7db5606f7ee3ca00fb0e7a87b4a69740f7ada6dd283856 @nixpanic @ansiwen @phlogistonjohn @anoopcs9 Thanks, |
This commit adds support for rbd_diff_iterate3 through DiffIterateByID() which performs diff interate using snapshot id instead of snapshot name. This is useful in cases such as when rbd snapshot is in trash or rbd(group) snapshot in in group namespace. refer: - https://tracker.ceph.com/issues/65720 - ceph/ceph#60844 Signed-off-by: Rakshith R <rar@redhat.com>
888be53
to
402c41b
Compare
@Rakshith-R please take a look at the test failures as they seem related to the change. Thanks! |
Yes, the tests are expected to fail for now. I Just added the pr early so I can get feedback on naming conventions and format. |
OK, as a general request - not specifically to you but to all contributors that are adding APIs to go-ceph that do not have a functioning versions in ceph - please make it very clear up front that the work is not complete in ceph. (Edit: a sentence or two in the descrition is good, even better if it includes links to Issues, PRs or design docs) In addition, I would like to see PRs of this sort be in Today, I'll make these changes to the PR after I submit this comment. In the future please consider these suggestions for PRs like this that can't be merged because work in ceph is still pending. Thanks! |
Noted, I'll keep these points in mind. |
This pull request now has conflicts with the target branch. Could you please resolve conflicts and force push the corrected changes? 🙏 |
static inline int wrap_rbd_diff_iterate3(rbd_image_t image, | ||
uint64_t from_snap_id, uint64_t ofs, uint64_t len, uint8_t include_parent, | ||
uint8_t whole_object, uintptr_t arg) { | ||
return rbd_diff_iterate3(image, from_snap_id, ofs, len, include_parent, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Linking against librdb will fail when rbd_diff_iterate3
does not exists. The solution is to use the dlsym
package and discover the rbd_diff_iterate3
function dynamically.
You can see how that is done for rbd_clobe4
. There is some indirection involved, but it is possible to build go-ceph applications with the new CloneImageByID
function, even if it is not part of librbd.
This commit adds support for rbd_diff_iterate3
through DiffIterateByID() which performs
diff interate using snapshot id instead of
snapshot name.
This is useful in cases such as when rbd snapshot is in trash or rbd(group) snapshot in in group namespace.
refer:
Checklist
//go:build ceph_preview
make api-update
to record new APIsNew or infrequent contributors may want to review the go-ceph Developer's Guide including the section on how we track API Status and the API Stability Plan.
The go-ceph project uses mergify. View the mergify command guide for information on how to interact with mergify. Add a comment with
@Mergifyio
rebase
to rebase your PR when github indicates that the PR is out of date with the base branch.