|
@@ -336,7 +336,10 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir)
|
|
|
if (req->r_reply_info.dir_end) {
|
|
if (req->r_reply_info.dir_end) {
|
|
|
kfree(fi->last_name);
|
|
kfree(fi->last_name);
|
|
|
fi->last_name = NULL;
|
|
fi->last_name = NULL;
|
|
|
- fi->next_offset = 2;
|
|
|
|
|
|
|
+ if (ceph_frag_is_rightmost(frag))
|
|
|
|
|
+ fi->next_offset = 2;
|
|
|
|
|
+ else
|
|
|
|
|
+ fi->next_offset = 0;
|
|
|
} else {
|
|
} else {
|
|
|
rinfo = &req->r_reply_info;
|
|
rinfo = &req->r_reply_info;
|
|
|
err = note_last_dentry(fi,
|
|
err = note_last_dentry(fi,
|