From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx> When opening remote inode, C_MDC_RetryOpenRemoteIno is used as onfinish context for discovering remote inode. When it is called, the MDS may already have the inode. Signed-off-by: Yan, Zheng <zheng.z.yan@xxxxxxxxx> --- src/mds/MDCache.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 236a0b9..9557436 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -7049,7 +7049,11 @@ public: C_MDC_RetryOpenRemoteIno(MDCache *mdc, inodeno_t i, Context *c, bool wx) : mdcache(mdc), ino(i), want_xlocked(wx), onfinish(c) {} void finish(int r) { - mdcache->open_remote_ino(ino, onfinish, want_xlocked); + if (mdcache->get_inode(ino)) { + onfinish->finish(0); + delete onfinish; + } else + mdcache->open_remote_ino(ino, onfinish, want_xlocked); } }; -- 1.7.11.7 -- 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