]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: do not try to export pin special directories
authorPatrick Donnelly <pdonnell@redhat.com>
Thu, 4 May 2017 20:59:26 +0000 (16:59 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Thu, 4 May 2017 21:22:10 +0000 (17:22 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/CInode.cc
src/mds/CInode.h

index 9a68bf11884019ef58ac0576b465dc68ada3977b..4566d7885c7fdca7f66ac9ae2dda933b67f79a1b 100644 (file)
@@ -4416,7 +4416,7 @@ private:
 
 void CInode::maybe_export_pin()
 {
-  if (g_conf->mds_bal_export_pin && is_dir()) {
+  if (g_conf->mds_bal_export_pin && is_dir() && is_normal()) {
     dout(20) << "maybe_export_pin " << *this << dendl;
     mds_rank_t pin = get_projected_inode()->export_pin;
     if (pin == mdcache->mds->get_nodeid()) {
index 05659df80c2beb72fff2cf5e2144eaa67301be74..843dedebf9042071794e26d59533290eba378b06 100644 (file)
@@ -704,6 +704,7 @@ public:
   bool is_mdsdir() const { return MDS_INO_IS_MDSDIR(inode.ino); }
   bool is_base() const { return is_root() || is_mdsdir(); }
   bool is_system() const { return inode.ino < MDS_INO_SYSTEM_BASE; }
+  bool is_normal() const { return !(is_base() || is_system() || is_stray()); }
 
   bool is_head() const { return last == CEPH_NOSNAP; }