mds: drop dirty dentries in deleted directory

opened dirfrags and null dirty dentries in deleted directory inode
prevent MDCache::eval_stray() from purging the delete inode.

It's safe to not commit null dirty dentries in deleted directory to
corresponding dirfrag objects, because these dirfrag objects will be
deleted soon.

Fixes: #10164
Signed-off-by: Yan, Zheng <zyan@redhat.com>
mds: drop dentry leases in deleted directory

we will never link dentry in deleted directory to inode, so it's
OK to remove client leases prematurely. This optimization allows
us to purge deleted directory inode earlier.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
mds: set dirfrag version when fetching dirfrag is skipped

Signed-off-by: Yan, Zheng <zyan@redhat.com>
Merge pull request #3071 from ceph/wip-10164

mds: drop dirty dentries in deleted directory

Reviewed-by: Greg Farnum <gfarnum@redhat.com>