ceph: don't fill readdir cache for LSSNAP reply

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
Yan, Zheng 2017-07-26 12:07:51 +08:00 committed by Ilya Dryomov
parent 9a86962b35
commit 8d45b911a9
1 changed files with 11 additions and 8 deletions

View File

@ -1516,15 +1516,18 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req,
rinfo->dir_nr, parent);
if (rinfo->dir_dir)
ceph_fill_dirfrag(d_inode(parent), rinfo->dir_dir);
}
if (ceph_frag_is_leftmost(frag) && req->r_readdir_offset == 2 &&
!(rinfo->hash_order && last_hash)) {
/* note dir version at start of readdir so we can tell
* if any dentries get dropped */
req->r_dir_release_cnt = atomic64_read(&ci->i_release_count);
req->r_dir_ordered_cnt = atomic64_read(&ci->i_ordered_count);
req->r_readdir_cache_idx = 0;
if (ceph_frag_is_leftmost(frag) &&
req->r_readdir_offset == 2 &&
!(rinfo->hash_order && last_hash)) {
/* note dir version at start of readdir so we can
* tell if any dentries get dropped */
req->r_dir_release_cnt =
atomic64_read(&ci->i_release_count);
req->r_dir_ordered_cnt =
atomic64_read(&ci->i_ordered_count);
req->r_readdir_cache_idx = 0;
}
}
cache_ctl.index = req->r_readdir_cache_idx;