From: Sage Weil Date: Mon, 26 Jul 2010 18:44:59 +0000 (-0700) Subject: mds: restore CInode::get_oldest_snap() X-Git-Tag: v0.21~46 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fa48a1a8d9d8bbf4716f34ed10b75ac65ddbe7d8;p=ceph.git mds: restore CInode::get_oldest_snap() It's either 'first', for the first for the oldest old_inode. --- diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 6726d249268c..88b9f71dc8d0 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -1454,6 +1454,14 @@ pair CInode::authority() // SNAP +snapid_t CInode::get_oldest_snap() +{ + snapid_t t = first; + if (!old_inodes.empty()) + t = old_inodes.begin()->second.first; + return MIN(t, first); +} + old_inode_t& CInode::cow_old_inode(snapid_t follows, inode_t *pi) { assert(follows >= first); diff --git a/src/mds/CInode.h b/src/mds/CInode.h index f4b9b37528a9..e1aec5ee30b3 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -166,6 +166,7 @@ public: inode.nlink > 1 || // there are remote links, possibly snapped, that will need to find me old_inodes.size(); // once multiversion, always multiversion. until old_inodes gets cleaned out. } + snapid_t get_oldest_snap(); loff_t last_journaled; // log offset for the last time i was journaled //loff_t last_open_journaled; // log offset for the last journaled EOpen