From e205b71072cbdd6668ebd848ed6a83a7cdfcc5c3 Mon Sep 17 00:00:00 2001 From: huangjun Date: Tue, 26 Feb 2019 22:06:22 +0800 Subject: [PATCH] osd: clear osd op reply output only when writes success As described in https://github.com/ceph/ceph/commit/18f08cd9c0a3972149eef635fb1035dfc4fcb662, if the op is failed, we should return data. Fixes: http://tracker.ceph.com/issues/38492 Signed-off-by: huangjun --- src/osd/OSD.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index bfd7b3bbb19..f8da08fff75 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1719,7 +1719,7 @@ void OSDService::reply_op_error(OpRequestRef op, int err, eversion_t v, int flags; flags = m->get_flags() & (CEPH_OSD_FLAG_ACK|CEPH_OSD_FLAG_ONDISK); - MOSDOpReply *reply = new MOSDOpReply(m, err, osdmap->get_epoch(), flags, true); + MOSDOpReply *reply = new MOSDOpReply(m, err, osdmap->get_epoch(), flags, err >= 0); reply->set_reply_versions(v, uv); m->get_connection()->send_message(reply); } -- 2.39.5