From: Yan, Zheng Date: Wed, 27 Jan 2016 10:38:27 +0000 (+0800) Subject: mds: queue non-recursive scrub to top of scrub stack X-Git-Tag: v10.1.0~176^2~1^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=82bd4716b21ebba1be7173e5190fd860041af9a3;p=ceph.git mds: queue non-recursive scrub to top of scrub stack non-recursive scrub blocks admin socket, make it have earliest service Signed-off-by: Yan, Zheng --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 9e670ff82c1..ad0f6ac2c7f 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -11754,11 +11754,11 @@ void MDCache::enqueue_scrub_work(MDRequestRef& mdr) // only set completion context for non-recursive scrub, because we don't // want to block asok caller on long running scrub - Context *fin = NULL; - if (!header->recursive) - fin = cs->take_finisher(); - - mds->scrubstack->enqueue_inode_bottom(in, header, fin); + if (!header->recursive) { + Context *fin = cs->take_finisher(); + mds->scrubstack->enqueue_inode_top(in, header, fin); + } else + mds->scrubstack->enqueue_inode_bottom(in, header, NULL); mds->server->respond_to_request(mdr, 0); return;