From: simon gao Date: Tue, 10 Sep 2019 03:41:41 +0000 (-0400) Subject: mds: split the dir if the op makes it oversized X-Git-Tag: v15.1.0~1424^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b57a62bcdba35765b77e9c5fb9a6f748a16c9bd8;p=ceph-ci.git 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 --- 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); }