From 9b6d96e9aab411901344fe4169dcb06c74522d79 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 4 Nov 2010 22:19:53 -0700 Subject: [PATCH] mds: fix inode version used for inest in decode_lock_state 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 --- src/mds/CInode.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 0737bd635b956..39eea3a8ece77 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -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); } } } -- 2.39.5