diff options
| author | Boaz Harrosh <bharrosh@panasas.com> | 2011-10-31 14:45:06 -0700 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-11-02 23:56:00 -0400 | 
| commit | 4cdc685c7d06f659ef6c336d4242005cdd8df401 (patch) | |
| tree | af4074fae08ad9d24b035b54ab065f90bae31b5f /fs/nfs/objlayout/objlayout.c | |
| parent | 994c0e992522c123298b4a91b72f5e67ba2d1123 (diff) | |
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: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/objlayout/objlayout.c')
| -rw-r--r-- | fs/nfs/objlayout/objlayout.c | 16 | 
1 files changed, 7 insertions, 9 deletions
| diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c index 1d06f8e2adea..1300736e0fb4 100644 --- a/fs/nfs/objlayout/objlayout.c +++ b/fs/nfs/objlayout/objlayout.c @@ -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); | 
