From b57a62bcdba35765b77e9c5fb9a6f748a16c9bd8 Mon Sep 17 00:00:00 2001 From: simon gao Date: Mon, 9 Sep 2019 23:41:41 -0400 Subject: [PATCH] mds: split the dir if the op makes it oversized some ops maybe in flight, so that, split dir in finisher thread ,may affect inflight ops. Fixes: https://tracker.ceph.com/issues/41880 Signed-off-by: simon gao --- src/mds/Server.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 92ad6e8a5c9..b1a325b37db 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -5775,6 +5775,7 @@ void Server::handle_client_mknod(MDRequestRef& mdr) le->metablob.add_primary_dentry(dn, newi, true, true, true); journal_and_reply(mdr, newi, dn, le, new C_MDS_mknod_finish(this, mdr, dn, newi)); + mds->balancer->maybe_fragment(dn->get_dir(), false); } @@ -5921,6 +5922,7 @@ void Server::handle_client_symlink(MDRequestRef& mdr) le->metablob.add_primary_dentry(dn, newi, true, true); journal_and_reply(mdr, newi, dn, le, new C_MDS_mknod_finish(this, mdr, dn, newi)); + mds->balancer->maybe_fragment(dir, false); } @@ -5989,6 +5991,7 @@ void Server::handle_client_link(MDRequestRef& mdr) _link_local(mdr, dn, targeti); else _link_remote(mdr, true, dn, targeti); + mds->balancer->maybe_fragment(dir, false); } -- 2.39.5