New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mds: miscellaneous multimds fixes part2 #15125

Merged
merged 5 commits into from Jun 15, 2017

Conversation

Projects
None yet
2 participants
@ukernel
Member

ukernel commented May 17, 2017

add new fixes to #14550

@ukernel ukernel changed the title from [DNM] mds: miscellaneous multimds fixes part2 to mds: miscellaneous multimds fixes part2 May 18, 2017

@jcsp

This comment has been minimized.

Contributor

jcsp commented May 23, 2017

@ukernel could you rebase (I merged the other misc fixes PR) so that the list of commits shrinks to just the new ones? I thought github should have handled this automatically but apparently not.

ukernel added some commits May 15, 2017

mds: properly update subtree map when merging dirfrags
After introducing auxiliary subtree, the source dirfrags for merging
can be mixed with subtree dirfrags and non-subtreee dirfrags. If the
resulting dirfrag is a subtree, we need to find any subtrees under
the non-subtree source dirfrags and link them to the resulting dirfrag.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
mds: fix MDCache::trim_non_auth()
After introducing the bottom_lru,  "stop when we see a dentry the
second time" no longer works.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
mds: avoid sending duplicated cache rejoin ack
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
mds: match EMetaBlob::add_dir_context with MDCache::create_subtree_map
In EMetaBlob::add_dir_context(), the code that checks if a subtree
was journaled in the latest ESubtreeMap is different from the code
that creates ESubtreeMap. When creating ESubtreeMap, if a subtree's
dir_auth.first is equal to its parent subtree's dir_auth.first, the
subtree may not be journaled. EMetaBlob::add_dir_context() attempts
to get the result by checking CDir::STATE_{EXPORTBOUND,AUXSUBTREE}
and CDir::is_ambiguous_auth(). The difference makes the code hard
to understand and error prone.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
mds: fix race between cross-authorty rename and mds failure
If auth mds of rename srcdn fails, bystander mds may need to rollback
corresponding slave rename. If corresponding slave rename is still
work-in-progress, we should interrupt the slave rename, make it do
nothing.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
@jcsp

This comment has been minimized.

Contributor

jcsp commented Jun 1, 2017

This passed multimds run, but I'm concerned that things were being exercised properly because of #15407), so holding off on merging until testing them together.

@jcsp jcsp merged commit 20c31b3 into ceph:master Jun 15, 2017

2 of 3 checks passed

default Build finished.
Details
Signed-off-by all commits in this PR are signed
Details
Unmodifed Submodules submodules for project are unmodified
Details

@ukernel ukernel deleted the ukernel:wip-multimds-misc2 branch Jun 26, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment