]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
bug fix: osd: avoid multi set osd_op.outdata in tier pool 6060/head
authorXinze Chi <xmdxcxz@gmail.com>
Mon, 8 Jun 2015 08:54:08 +0000 (16:54 +0800)
committerXinze Chi <xinze@xsky.com>
Thu, 24 Sep 2015 02:41:00 +0000 (10:41 +0800)
commit71a42f7c3aa55de688ef16ea7e392573fa5a7e62
tree2f66989bb1977c63680d7da4e5c68d4db3d773ca
parente61c4f093f88e44961d157f65091733580cea79a
bug fix: osd: avoid multi set osd_op.outdata in tier pool

There are two read op on the same object for ec pool. First op read
miss happend, calling do_proxy_read and promote_object, The second op only
do_proxy_read. but before first op process_copy_chunk finish, the second op
finish_proxy_read. first op receive reply from base pool
first and then second received. so the second op set the field "outdata"
in m->ops first. And then first op requeue_ops in process_copy_chunk,
At last in do_osd_ops, it append outdata field.

Fixes: 12540
Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
(cherry picked from commit 855ae1fd6e4557adba1cbd8ab532488b867cee2a)

Conflicts:
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.cc