From 1e53bcbef4618331c026202f5f38cc346616fcab Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Tue, 16 Dec 2014 15:36:04 +0800 Subject: [PATCH] mds: provide correct snaps to purge_stale_snap_data() if a directory inode has snaprealm, its parent directory's snapshot set can be not equal to its snapshot set Signed-off-by: Yan, Zheng --- src/mds/CDir.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 41d3ae40c01e..a0d57072aa15 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -1712,7 +1712,7 @@ void CDir::_omap_fetched(bufferlist& hdrbl, map& omap, in->xattrs.swap(inode_data.xattrs); in->decode_snap_blob(inode_data.snap_blob); in->old_inodes.swap(inode_data.old_inodes); - if (snaps) + if (snaps && !in->snaprealm) in->purge_stale_snap_data(*snaps); if (!undef_inode) { @@ -2015,7 +2015,7 @@ void CDir::_encode_dentry(CDentry *dn, bufferlist& bl, // marker, name, inode, [symlink string] bl.append('I'); // inode - if (in->is_multiversion() && snaps) + if (in->is_multiversion() && snaps && !in->snaprealm) in->purge_stale_snap_data(*snaps); in->encode_bare(bl); -- 2.47.3