diff options
Diffstat (limited to 'fs/nfs/write.c')
| -rw-r--r-- | fs/nfs/write.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 49c715b4ac92..e268e3b23497 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -939,7 +939,9 @@ static int nfs_flush_multi(struct nfs_pageio_descriptor *desc)  	atomic_set(&req->wb_complete, requests);  	BUG_ON(desc->pg_lseg); -	lseg = pnfs_update_layout(desc->pg_inode, req->wb_context, IOMODE_RW, GFP_NOFS); +	lseg = pnfs_update_layout(desc->pg_inode, req->wb_context, +				  req_offset(req), desc->pg_count, +				  IOMODE_RW, GFP_NOFS);  	ClearPageError(page);  	offset = 0;  	nbytes = desc->pg_count; @@ -1013,7 +1015,9 @@ static int nfs_flush_one(struct nfs_pageio_descriptor *desc)  	}  	req = nfs_list_entry(data->pages.next);  	if ((!lseg) && list_is_singular(&data->pages)) -		lseg = pnfs_update_layout(desc->pg_inode, req->wb_context, IOMODE_RW, GFP_NOFS); +		lseg = pnfs_update_layout(desc->pg_inode, req->wb_context, +					  req_offset(req), desc->pg_count, +					  IOMODE_RW, GFP_NOFS);  	if ((desc->pg_ioflags & FLUSH_COND_STABLE) &&  	    (desc->pg_moreio || NFS_I(desc->pg_inode)->ncommit)) @@ -1032,8 +1036,6 @@ static void nfs_pageio_init_write(struct nfs_pageio_descriptor *pgio,  {  	size_t wsize = NFS_SERVER(inode)->wsize; -	pnfs_pageio_init_write(pgio, inode); -  	if (wsize < PAGE_CACHE_SIZE)  		nfs_pageio_init(pgio, inode, nfs_flush_multi, wsize, ioflags);  	else  | 
