From f7616a11a15a80e10093677264dfb0ca922b1ac0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 2 Jul 2009 14:15:20 -0700 Subject: [PATCH] uclient: fix op replay Clear msg payload so it gets reencoded with adjusted values. --- src/TODO | 5 +++-- src/client/Client.cc | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/TODO b/src/TODO index 2d765b98eefa6..f8ad2530957e9 100644 --- a/src/TODO +++ b/src/TODO @@ -77,7 +77,7 @@ repair - or what the hell, full trace? - mds scrubbing -kernel client +kclient - fix up mds selection, and ESTALE handling - make cap import/export efficient - simplify mds auth tracking? @@ -120,7 +120,8 @@ osd - pg split should be a work queue - optimize remove wrt recovery pushes? -userspace client +uclient +- readdir from cache - clean up client mds session vs mdsmap behavior? - stop using mds's inode_t? - fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it diff --git a/src/client/Client.cc b/src/client/Client.cc index 5db2d324df420..d73152e2e54ff 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -929,7 +929,9 @@ void Client::send_request(MetaRequest *request, int mds) r->decode_payload(); r->set_retry_attempt(request->retry_attempt); r->set_dentry_wanted(); - if(request->got_unsafe) r->set_replayed_op(); + if (request->got_unsafe) + r->set_replayed_op(); + r->clear_payload(); // reencode with changes } else request->retry_attempt++; @@ -1172,7 +1174,6 @@ void Client::handle_mds_map(MMDSMap* m) if (frommds >= 0 && mdsmap->get_state(frommds) == MDSMap::STATE_ACTIVE) { kick_requests(frommds, false); - //failed_mds.erase(from); } // kick any waiting threads -- 2.39.5