mirror of
https://github.com/ceph/ceph
synced 2025-02-21 01:47:25 +00:00
osd/PrimaryLogPG: do not append outdata to TMAPUP ops
Write operations should not have data but TMAPUP incorrectly appends the previously read TMAP object to the outdata buferlist. Fixes: https://tracker.ceph.com/issues/41908 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
parent
d3c19d531d
commit
8871c5c688
@ -4615,7 +4615,6 @@ int PrimaryLogPG::do_tmapup_slow(OpContext *ctx, bufferlist::const_iterator& bp,
|
||||
newop.op.extent.length = obl.length();
|
||||
newop.indata = obl;
|
||||
do_osd_ops(ctx, nops);
|
||||
osd_op.outdata.claim(newop.outdata);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -4695,7 +4694,7 @@ int PrimaryLogPG::do_tmapup(OpContext *ctx, bufferlist::const_iterator& bp, OSDO
|
||||
last_in_key = key;
|
||||
|
||||
dout(10) << "tmapup op " << (int)op << " key " << key << dendl;
|
||||
|
||||
|
||||
// skip existing intervening keys
|
||||
bool key_exists = false;
|
||||
while (have_next && !key_exists) {
|
||||
@ -4803,7 +4802,6 @@ int PrimaryLogPG::do_tmapup(OpContext *ctx, bufferlist::const_iterator& bp, OSDO
|
||||
newop.op.extent.length = obl.length();
|
||||
newop.indata = obl;
|
||||
do_osd_ops(ctx, nops);
|
||||
osd_op.outdata.claim(newop.outdata);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
Loading…
Reference in New Issue
Block a user