]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mds: change scrub traverse from post-order to breadth-first search
authorSimon Gao <simon29rock@gmail.com>
Fri, 15 May 2020 09:19:14 +0000 (17:19 +0800)
committerYan, Zheng <zyan@redhat.com>
Mon, 16 Nov 2020 01:02:17 +0000 (09:02 +0800)
commitb43af152bab2c9f67fe311ba9450e06fd41e82e4
tree232eee17d8d31495c6ca54cddd0ccb389067870a
parent547c1ed9f1a7f92bb6cc0bf443156d5b98d60be3
mds: change scrub traverse from post-order to breadth-first search

After using breadth-first search, scrubing a dir inode does not need
to wait until all of its descendant difrags/inodes are scrubbed. This
simplfies scrub code a lot. The downside is that a scrubbed dir inode
no longer implies corresponding subtree has been fully scrubbed. It
makes later scrub (without force option) less efficient.

Signed-off-by: Simon Gao <simon29rock@gmail.com>
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
src/mds/CDir.cc
src/mds/CDir.h
src/mds/CInode.cc
src/mds/CInode.h
src/mds/ScrubStack.cc
src/mds/ScrubStack.h