From a0fd5e0c12dea07be5a3c2b115f57389ba212cf0 Mon Sep 17 00:00:00 2001 From: John Spray Date: Thu, 7 Aug 2014 18:09:59 +0100 Subject: [PATCH] mds/Server: fix wait_for_osd_map calls These needed a C_OnFinisher and C_IO_Wrapper because they are called back from the Objecter like an I/O completion. Signed-off-by: John Spray --- src/mds/Server.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 45c05822975a2..8de62fb7a15e3 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -3704,7 +3704,7 @@ void Server::handle_set_vxattr(MDRequestRef& mdr, CInode *cur, // make sure we have *that*. mdr->waited_for_osdmap = true; mds->objecter->wait_for_latest_osdmap( - new C_MDS_RetryRequest(mdcache, mdr)); + new C_OnFinisher(new C_IO_Wrapper(mds, new C_MDS_RetryRequest(mdcache, mdr)), &mds->finisher)); return; } r = -EINVAL; @@ -3737,7 +3737,7 @@ void Server::handle_set_vxattr(MDRequestRef& mdr, CInode *cur, // make sure we have *that*. mdr->waited_for_osdmap = true; mds->objecter->wait_for_latest_osdmap( - new C_MDS_RetryRequest(mdcache, mdr)); + new C_OnFinisher(new C_IO_Wrapper(mds, new C_MDS_RetryRequest(mdcache, mdr)), &mds->finisher)); return; } r = -EINVAL; -- 2.39.5