Skip to content

Commit 33c6f23

Browse files
committed
mds: include deleted file dentry in snapdiff readdir result
Fixes: http://tracker.ceph.com/issues/70287 Signed-off-by: Venky Shankar <vshankar@redhat.com>
1 parent 0282e7f commit 33c6f23

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

src/mds/Server.cc

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12137,19 +12137,30 @@ bool Server::build_snap_diff(
1213712137
continue;
1213812138
} else {
1213912139
if (before.dn && dn->get_name() == name_before) {
12140-
if (mtime == before.mtime) {
12141-
dout(30) << __func__ << " timestamp not changed " << dn->get_name() << " "
12142-
<< dn->first << "/" << dn->last
12143-
<< " " << mtime
12144-
<< dendl;
12140+
if (before.in->ino() != in->ino()) {
12141+
dout(30) << __func__ << " inode changed " << dn->get_name() << " "
12142+
<< dn->first << "/" << dn->last
12143+
<< " " << before.mtime << " vs. " << mtime
12144+
<< dendl;
12145+
if (!insert_deleted(before)) {
12146+
break;
12147+
}
1214512148
before.reset();
12146-
continue;
1214712149
} else {
12148-
dout(30) << __func__ << " timestamp changed " << dn->get_name() << " "
12149-
<< dn->first << "/" << dn->last
12150-
<< " " << before.mtime << " vs. " << mtime
12151-
<< dendl;
12152-
before.reset();
12150+
if (mtime == before.mtime) {
12151+
dout(30) << __func__ << " timestamp not changed " << dn->get_name() << " "
12152+
<< dn->first << "/" << dn->last
12153+
<< " " << mtime
12154+
<< dendl;
12155+
before.reset();
12156+
continue;
12157+
} else {
12158+
dout(30) << __func__ << " timestamp changed " << dn->get_name() << " "
12159+
<< dn->first << "/" << dn->last
12160+
<< " " << before.mtime << " vs. " << mtime
12161+
<< dendl;
12162+
before.reset();
12163+
}
1215312164
}
1215412165
}
1215512166
dout(20) << __func__ << " new file " << dn->get_name() << " "

0 commit comments

Comments
 (0)