Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -414,10 +414,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
		if (req->r_reply_info.dir_end) {
			kfree(fi->last_name);
			fi->last_name = NULL;
			if (ceph_frag_is_rightmost(frag))
			fi->next_offset = 2;
			else
				fi->next_offset = 0;
		} else {
			err = note_last_dentry(fi,
				       rinfo->dir_dname[rinfo->dir_nr-1],
@@ -468,7 +465,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
	/* more frags? */
	if (!ceph_frag_is_rightmost(frag)) {
		frag = ceph_frag_next(frag);
		off = 0;
		off = 2;
		ctx->pos = ceph_make_fpos(frag, off);
		dout("readdir next frag is %x\n", frag);
		goto more;
@@ -511,10 +508,7 @@ static void reset_readdir(struct ceph_file_info *fi, unsigned frag)
	fi->last_name = NULL;
	fi->dir_release_count = 0;
	fi->readdir_cache_idx = -1;
	if (ceph_frag_is_leftmost(frag))
	fi->next_offset = 2;  /* compensate for . and .. */
	else
		fi->next_offset = 0;
	fi->flags &= ~CEPH_F_ATEND;
}

+1 −4
Original line number Diff line number Diff line
@@ -1405,10 +1405,7 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req,
		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);
		if (ceph_frag_is_leftmost(frag))
		req->r_readdir_offset = 2;
		else
			req->r_readdir_offset = 0;
	}

	if (le32_to_cpu(rinfo->head->op) == CEPH_MDS_OP_LSSNAP) {