|
@@ -1511,7 +1511,8 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req,
|
|
ceph_fill_dirfrag(d_inode(parent), rinfo->dir_dir);
|
|
ceph_fill_dirfrag(d_inode(parent), rinfo->dir_dir);
|
|
}
|
|
}
|
|
|
|
|
|
- if (ceph_frag_is_leftmost(frag) && req->r_readdir_offset == 2) {
|
|
|
|
|
|
+ if (ceph_frag_is_leftmost(frag) && req->r_readdir_offset == 2 &&
|
|
|
|
+ !(rinfo->hash_order && req->r_path2)) {
|
|
/* note dir version at start of readdir so we can tell
|
|
/* note dir version at start of readdir so we can tell
|
|
* if any dentries get dropped */
|
|
* if any dentries get dropped */
|
|
req->r_dir_release_cnt = atomic64_read(&ci->i_release_count);
|
|
req->r_dir_release_cnt = atomic64_read(&ci->i_release_count);
|