]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: check export pin during replay 15205/head
authorPatrick Donnelly <pdonnell@redhat.com>
Mon, 22 May 2017 15:39:49 +0000 (11:39 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Tue, 30 May 2017 16:09:22 +0000 (09:09 -0700)
Fixes: http://tracker.ceph.com/issues/20039
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/CInode.h
src/mds/journal.cc

index a446bebb8cf31e28df4d325de18e8ac7f43558b8..030c86e62a14539430d8771c265c1139d655ad43 100644 (file)
@@ -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;
index a65b45725a877a0356a194a8b117dbd6c76aa94b..f7570c68ab2d2a0ce566305cf91f4765d8519af3 100644 (file)
@@ -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 << " -> "