]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix inode version used for inest in decode_lock_state
authorSage Weil <sage@newdream.net>
Fri, 5 Nov 2010 05:19:53 +0000 (22:19 -0700)
committerSage Weil <sage@newdream.net>
Fri, 5 Nov 2010 05:19:53 +0000 (22:19 -0700)
We need to pass the inode rstat's version into finish_scatter_update, not
the shadowed local variable.  Otherwise we don't update the dirfrag when
we should.

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

index 0737bd635b956d73e1447b7aacee29b608653fad..39eea3a8ece774eb464bfafc8806c01b9950dcc4 100644 (file)
@@ -1298,7 +1298,8 @@ void CInode::decode_lock_state(int type, bufferlist& bl)
                     << " on " << *dir << dendl;
            dir->first = fgfirst;
            fnode_t *pf = dir->get_projected_fnode();
-           finish_scatter_update(&filelock, dir, dirstat.version, pf->accounted_fragstat.version);
+           finish_scatter_update(&filelock, dir,
+                                 inode.dirstat.version, pf->accounted_fragstat.version);
          }
        }
       }
@@ -1350,7 +1351,8 @@ void CInode::decode_lock_state(int type, bufferlist& bl)
                     << " on " << *dir << dendl;
            dir->first = fgfirst;
            fnode_t *pf = dir->get_projected_fnode();
-           finish_scatter_update(&nestlock, dir, rstat.version, pf->accounted_rstat.version);
+           finish_scatter_update(&nestlock, dir,
+                                 inode.rstat.version, pf->accounted_rstat.version);
          }
        }
       }