On Tue, 24 May 2011, huang jun wrote: > hi,all > There is an assert(dnl->is_primary()) in function "rejoin_walk()". > why should the dnl must be primary if we want to continue rejoin > operation? or the assert() crashed. The rejoin_walk() method traverse subtrees for which we are _not_ auth, and the only dentries and inodes we should have in those subtrees after recovery are ancestors of subtrees that we are auth for, which implies they are primary. If it encounters a non-primary dentry here, there is a bug earlier in recovery.. probably in trim_non_auth()? > I want to know whether the status of the replica subtree root > directory's dentry should be primary? Directory inode parent dentries will always be primary; multiple hard links to a directory are not allowed. > And we assume one dentry in directory is a remote link ,then place > this dentry in a fragment, can we create the replicas of this fragment > in other MDSs? Any dentry can be replicated (primary, remote, or null) once the MDS is active. Does that answer your question? sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html