]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: bump rstat version in predirty_journal_parents
authorSage Weil <sage@newdream.net>
Tue, 12 Oct 2010 03:51:19 +0000 (20:51 -0700)
committerSage Weil <sage@newdream.net>
Tue, 12 Oct 2010 03:32:31 +0000 (20:32 -0700)
When we propagate the rstat to inode in predirty_journal_parents (because
we hold the nestlock), bump the rstat version as well.  This avoids
confusing any replicas, who expect the rstat to have a new version or to
remain unchanged when the lock scatters.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/MDCache.cc

index 4603966150ff72b580526eee79b1f22d12d0e8da..691bb4ec3e23c2acb4b8b6a763619be6cfce87b1 100644 (file)
@@ -1875,6 +1875,10 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob,
        project_rstat_frag_to_inode(p->second.rstat, p->second.accounted_rstat, p->second.first, p->first, pin, true);//false);
       parent->dirty_old_rstat.clear();
       project_rstat_frag_to_inode(pf->rstat, pf->accounted_rstat, parent->first, CEPH_NOSNAP, pin, true);//false);
+      
+      // bump version
+      pi->rstat.version++;
+      pf->rstat.version = pf->accounted_rstat.version = pi->rstat.version;
     }
 
     // next parent!