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

Commit 4cdc685c authored by Boaz Harrosh's avatar Boaz Harrosh Committed by Trond Myklebust
Browse files

pnfs-obj: Remove redundant EOF from objlayout_io_state



The EOF calculation was done on .read_pagelist(), cached
in objlayout_io_state->eof, and set in objlayout_read_done()
into nfs_read_data->res.eof.

So set it directly into nfs_read_data->res.eof and avoid
the extra member.

Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 994c0e99
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -287,17 +287,14 @@ static void _rpc_read_complete(struct work_struct *work)
void
objlayout_read_done(struct objlayout_io_state *state, ssize_t status, bool sync)
{
	int eof = state->eof;
	struct nfs_read_data *rdata;
	struct nfs_read_data *rdata = state->rpcdata;

	state->status = status;
	dprintk("%s: Begin status=%zd eof=%d\n", __func__, status, eof);
	rdata = state->rpcdata;
	dprintk("%s: Begin status=%zd eof=%d\n", __func__,
		status, rdata->res.eof);
	rdata->task.tk_status = status;
	if (status >= 0) {
	if (status >= 0)
		rdata->res.count = status;
		rdata->res.eof = eof;
	}
	objlayout_iodone(state);
	/* must not use state after this point */

@@ -330,11 +327,14 @@ objlayout_read_pagelist(struct nfs_read_data *rdata)
			status = 0;
			rdata->res.count = 0;
			rdata->res.eof = 1;
			/*FIXME: do we need to call pnfs_ld_read_done() */
			goto out;
		}
		count = eof - offset;
	}

	rdata->res.eof = (offset + count) >= eof;

	state = objlayout_alloc_io_state(NFS_I(rdata->inode)->layout,
					 rdata->args.pages, rdata->args.pgbase,
					 offset, count,
@@ -345,8 +345,6 @@ objlayout_read_pagelist(struct nfs_read_data *rdata)
		goto out;
	}

	state->eof = state->offset + state->count >= eof;

	status = objio_read_pagelist(state);
 out:
	dprintk("%s: Return status %Zd\n", __func__, status);
+0 −1
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ struct objlayout_io_state {

	void *rpcdata;
	int status;             /* res */
	int eof;                /* res */
	int committed;          /* res */

	/* Error reporting (layout_return) */