mirror of
https://github.com/ceph/ceph
synced 2025-02-21 18:17:42 +00:00
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 <sage@newdream.net>
This commit is contained in:
parent
53f6ed163b
commit
9b6d96e9aa
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user