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

os/bluestore: fix dirty_range on _do_clone_range #16738

Merged
merged 1 commit into from Aug 3, 2017

Conversation

Projects
None yet
2 participants
@liewegas
Member

liewegas commented Aug 1, 2017

If we are cloning several extents that start from logical offset 0, we may
need to dirty those extents on the source object if they are being made
shared. However, if there are two or more such extents, and the first
starts at 0, the current code will adjust dirty_range_start to the
second extent because the second time around the loop dirty_range_begin
is still 0.

Fix by adjusting the condition to be dirty_range_begin and dirty_range_end
== 0 so that it only triggers on the first pass.

Fixes: http://tracker.ceph.com/issues/20810
Signed-off-by: Sage Weil sage@redhat.com

os/bluestore: fix dirty_range on _do_clone_range
If we are cloning several extents that start from logical offset 0, we may
need to dirty those extents on the source object if they are being made
shared.  However, if there are two or more such extents, and the first
starts at 0, the current code will adjust dirty_range_start to the
second extent because the second time around the loop dirty_range_begin
is still 0.

Fix by adjusting the condition to be dirty_range_begin and dirty_range_end
== 0 so that it only triggers on the first pass.

Fixes: http://tracker.ceph.com/issues/20810
Signed-off-by: Sage Weil <sage@redhat.com>

@liewegas liewegas added this to the luminous milestone Aug 1, 2017

@liewegas liewegas requested review from markhpc and xiexingguo Aug 1, 2017

@xiexingguo

This comment has been minimized.

Show comment
Hide comment
@xiexingguo

xiexingguo Aug 2, 2017

Member

retest this please

Member

xiexingguo commented Aug 2, 2017

retest this please

@liewegas liewegas merged commit 133e712 into ceph:master Aug 3, 2017

3 of 4 checks passed

make check (arm64) make check failed
Details
Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details

@liewegas liewegas deleted the liewegas:wip-20810 branch Aug 3, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment