Commit a78600e7 authored by Yan, Zheng's avatar Yan, Zheng Committed by Ilya Dryomov

ceph: simplify 'offset in frag'

don't distinguish leftmost frag from other frags. always use 2 as
first entry's offset.
Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
parent 1cd42a42
...@@ -414,10 +414,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx) ...@@ -414,10 +414,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
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;
if (ceph_frag_is_rightmost(frag)) fi->next_offset = 2;
fi->next_offset = 2;
else
fi->next_offset = 0;
} else { } else {
err = note_last_dentry(fi, err = note_last_dentry(fi,
rinfo->dir_dname[rinfo->dir_nr-1], rinfo->dir_dname[rinfo->dir_nr-1],
...@@ -468,7 +465,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx) ...@@ -468,7 +465,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
/* more frags? */ /* more frags? */
if (!ceph_frag_is_rightmost(frag)) { if (!ceph_frag_is_rightmost(frag)) {
frag = ceph_frag_next(frag); frag = ceph_frag_next(frag);
off = 0; off = 2;
ctx->pos = ceph_make_fpos(frag, off); ctx->pos = ceph_make_fpos(frag, off);
dout("readdir next frag is %x\n", frag); dout("readdir next frag is %x\n", frag);
goto more; goto more;
...@@ -511,10 +508,7 @@ static void reset_readdir(struct ceph_file_info *fi, unsigned frag) ...@@ -511,10 +508,7 @@ static void reset_readdir(struct ceph_file_info *fi, unsigned frag)
fi->last_name = NULL; fi->last_name = NULL;
fi->dir_release_count = 0; fi->dir_release_count = 0;
fi->readdir_cache_idx = -1; fi->readdir_cache_idx = -1;
if (ceph_frag_is_leftmost(frag)) fi->next_offset = 2; /* compensate for . and .. */
fi->next_offset = 2; /* compensate for . and .. */
else
fi->next_offset = 0;
fi->flags &= ~CEPH_F_ATEND; fi->flags &= ~CEPH_F_ATEND;
} }
......
...@@ -1405,10 +1405,7 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req, ...@@ -1405,10 +1405,7 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req,
dout("readdir_prepopulate got new frag %x -> %x\n", dout("readdir_prepopulate got new frag %x -> %x\n",
frag, le32_to_cpu(rinfo->dir_dir->frag)); frag, le32_to_cpu(rinfo->dir_dir->frag));
frag = le32_to_cpu(rinfo->dir_dir->frag); frag = le32_to_cpu(rinfo->dir_dir->frag);
if (ceph_frag_is_leftmost(frag)) req->r_readdir_offset = 2;
req->r_readdir_offset = 2;
else
req->r_readdir_offset = 0;
} }
if (le32_to_cpu(rinfo->head->op) == CEPH_MDS_OP_LSSNAP) { if (le32_to_cpu(rinfo->head->op) == CEPH_MDS_OP_LSSNAP) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment