]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
bug fix: osd: avoid multi set osd_op.outdata in tier pool 4895/head
authorXinze Chi <xmdxcxz@gmail.com>
Mon, 8 Jun 2015 08:54:08 +0000 (16:54 +0800)
committerXinze Chi <xmdxcxz@gmail.com>
Tue, 25 Aug 2015 14:59:18 +0000 (22:59 +0800)
commit855ae1fd6e4557adba1cbd8ab532488b867cee2a
treec7673c8a864c4dcf3a4ded0f8f0cd87b099139e2
parent2d92f4cba5834b8f26311296243400fb88253e9a
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>
src/osd/ReplicatedPG.cc