]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: mark inode clean when purging dentries for deleted snaps
authorSage Weil <sage@newdream.net>
Wed, 13 Aug 2008 22:39:54 +0000 (15:39 -0700)
committerSage Weil <sage@newdream.net>
Wed, 13 Aug 2008 22:39:54 +0000 (15:39 -0700)
src/mds/CDir.cc

index dbba58f2dfc0309c401e4efeaddc135d9537ca2b..3fec129a1e14552f36419ca56eeb9dcf6a6685be 100644 (file)
@@ -536,6 +536,8 @@ void CDir::purge_stale_snap_data(const set<snapid_t>& snaps)
     if (p == snaps.end() ||
        *p > dn->last) {
       dout(10) << " purging " << *dn << dendl;
+      if (dn->is_primary() && dn->inode->is_dirty())
+       dn->inode->mark_clean();
       remove_dentry(dn);
     }
   }
@@ -1404,6 +1406,8 @@ void CDir::_commit(version_t want)
       set<snapid_t>::const_iterator p = snaps->lower_bound(dn->first);
       if (p == snaps->end() || *p > dn->last) {
        dout(10) << " purging " << *dn << dendl;
+       if (dn->is_primary() && dn->inode->is_dirty())
+         dn->inode->mark_clean();
        remove_dentry(dn);
        continue;
       }