From: Patrick Donnelly Date: Mon, 22 May 2017 15:39:49 +0000 (-0400) Subject: mds: check export pin during replay X-Git-Tag: ses5-milestone6~9^2~38^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=acde67b36a8ff04a32e240bf7ec7589224d2fb41;p=ceph.git mds: check export pin during replay Fixes: http://tracker.ceph.com/issues/20039 Signed-off-by: Patrick Donnelly --- diff --git a/src/mds/CInode.h b/src/mds/CInode.h index a446bebb8cf..030c86e62a1 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -1068,9 +1068,8 @@ public: projected_parent.pop_front(); } -private: - void maybe_export_pin(bool update=false); public: + void maybe_export_pin(bool update=false); void set_export_pin(mds_rank_t rank); mds_rank_t get_export_pin(bool inherit=true) const; bool is_exportable(mds_rank_t dest) const; diff --git a/src/mds/journal.cc b/src/mds/journal.cc index a65b45725a8..f7570c68ab2 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -549,6 +549,7 @@ void EMetaBlob::fullbit::update_inode(MDSRank *mds, CInode *in) { in->inode = inode; in->xattrs = xattrs; + in->maybe_export_pin(); if (in->inode.is_dir()) { if (!(in->dirfragtree == dirfragtree)) { dout(10) << "EMetaBlob::fullbit::update_inode dft " << in->dirfragtree << " -> "