From 9c5cc339d363dc040e3b2fd195ce472ecec904ab Mon Sep 17 00:00:00 2001 From: Xiubo Li Date: Tue, 28 May 2024 12:23:57 +0800 Subject: [PATCH] mds: encode the correct extra info depending on the feature bits In the client side it will decode the extra info depending on the feature bits, but if we always encode it with the old version then the client could crash or gets the corrupted data. More detail please see "parse_reply_info_create()" in kclient code. Fixes: https://tracker.ceph.com/issues/63265 Signed-off-by: Xiubo Li (cherry picked from commit 1f1198b81b2442e5d6c0566bdade2f5d7dd23d12) --- src/mds/Server.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index d5e1478607e..c89dffd1c23 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2562,7 +2562,7 @@ void Server::handle_client_request(const cref_t &req) auto reply = make_message(*req, 0); if (created != inodeno_t()) { bufferlist extra; - encode(created, extra); + set_reply_extra_bl(req, created, extra); reply->set_extra_bl(extra); } mds->send_message_client(reply, session); -- 2.47.3