mds: don't update migrate_seq when importing non-auth cap

We use migrate_seq to distinguish old and new auth MDS. So we should
not change migrate_seq when importing non-auth cap.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: fix frozen check in Server::try_open_auth_dirfrag()

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: handle undefined dirfrags when opening inode

When MDS is rejoin stage, cache rejoin message can add undefined
inodes and dirfrags to the cache. These undefined objects can affect
"lookup-by-ino" processes. If an undefined dirfrag is encountered,
we should fetch it from disk.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: try purging stray inode after storing backtrace

Inode is auth pinned and can't be purged while storing backtrace,
so we should try purging stray inode after storing backtrace.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: fix cross-authorty rename race

When doing cross-authorty rename, we need to make sure bystanders
have received all messages sent by inode's original auth MDS,
then change inode's authorty. Otherwise lock messages sent by the
original/new auth MDS can arrive bystanders out of order. The fix
is: inode's original auth MDS sends notify messages to bystanders,
performs slave rename after receiving all bystanders' notify acks.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: don't journal bare dirfrag

don't journal bare dirfrag when starting scatter. also add debug
code for bare dirfrag modification.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: fix trace between scatter gather and dirfrag export

If we gather dirty scatter lock state while corresponding dirfrags
are been exporting, we may receive different dirfrag states from
two MDS and we need to find which one is the newest. The solution
is adding a new variable "migrate seq" to dirfrag, increase it by
one when dirfrag's auth MDS changes. When gathering dirty scatter
lock state, we can use "migrate seq" find the newest dirfrag state.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: fix remote wrlock rejoin

remote wrlock's target is not always inode's auth MDS. Move the
remote wrlock rejoin code out of the block for inode rejoin.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>