From 998badb1930f404ac4745bb31ea91075805b7a0b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 3 Aug 2008 15:04:51 -0700 Subject: [PATCH] mds: fix open_parent addition in rename --- src/mds/Server.cc | 2 +- src/mds/snap.cc | 9 +++++++-- src/mds/snap.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index bd4f6a6e06a28..482d2a3d794d6 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -3837,7 +3837,7 @@ void Server::_rename_apply(MDRequest *mdr, CDentry *srcdn, CDentry *destdn, CDen SnapRealm *oldparent = srcdn->dir->inode->find_snaprealm(); realm->past_parents[oldlast].ino = oldparent->inode->ino(); realm->past_parents[oldlast].first = realm->current_parent_since; - realm->open_past_parents[srcdn->dir->inode->ino()] = oldparent; + realm->add_open_past_parent(oldparent); dout(10) << " adding past_parent [" << realm->past_parents[oldlast].first << "," << oldlast << "] = " << realm->past_parents[oldlast].ino << " on " << *realm << dendl; } diff --git a/src/mds/snap.cc b/src/mds/snap.cc index bd528678ed452..cfd08bfaf5291 100644 --- a/src/mds/snap.cc +++ b/src/mds/snap.cc @@ -27,6 +27,12 @@ << ".cache.snaprealm(" << inode->ino() \ << " seq " << seq << " " << this << ") " +void SnapRealm::add_open_past_parent(SnapRealm *parent) +{ + open_past_parents[parent->inode->ino()] = parent; + parent->inode->get(CInode::PIN_PASTSNAPPARENT); +} + bool SnapRealm::_open_parents(Context *finish, snapid_t first, snapid_t last) { dout(10) << "open_parents [" << first << "," << last << "]" << dendl; @@ -57,8 +63,7 @@ bool SnapRealm::_open_parents(Context *finish, snapid_t first, snapid_t last) } assert(parent->snaprealm); // hmm! if (!open_past_parents.count(p->second.ino)) { - open_past_parents[p->second.ino] = parent->snaprealm; - parent->get(CInode::PIN_PASTSNAPPARENT); + add_open_past_parent(parent->snaprealm); } if (!parent->snaprealm->_open_parents(finish, p->second.first, p->first)) return false; diff --git a/src/mds/snap.h b/src/mds/snap.h index cf10645f41930..928905181ff43 100644 --- a/src/mds/snap.h +++ b/src/mds/snap.h @@ -152,6 +152,7 @@ struct SnapRealm { return true; } bool have_past_parents_open(snapid_t first=1, snapid_t last=CEPH_NOSNAP); + void add_open_past_parent(SnapRealm *parent); void close_parents(); void build_snap_set(set& s, -- 2.39.5