]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix snap lookups in CInode encoding
authorGreg Farnum <gregf@hq.newdream.net>
Tue, 20 Jul 2010 22:52:43 +0000 (15:52 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Fri, 23 Jul 2010 21:37:48 +0000 (14:37 -0700)
src/mds/CInode.cc

index cc46ba540540aa722bb78dc4637afb4005e8213e..6726d249268c725ec740cf49a2610e7479085cc1 100644 (file)
@@ -1610,6 +1610,11 @@ int CInode::encode_inodestat(bufferlist& bl, Session *session,
 
     map<snapid_t,old_inode_t>::iterator p = old_inodes.lower_bound(snapid);
     if (p != old_inodes.end()) {
+      if (p->second.first > snapid) {
+        if  (p != old_inodes.begin())
+          --p;
+        else dout(0) << "old_inode.begin() starts after snapid!" << dendl;
+      }
       dout(15) << "encode_inodestat snapid " << snapid
               << " to old_inode [" << p->second.first << "," << p->first << "]" 
               << " " << p->second.inode.rstat