NFSv4.1: shift pnfs_update_layout locations
Move the pnfs_update_layout call location to nfs_pageio_do_add_request(). Grab the lseg sent in the doio function to nfs_read_rpcsetup and attach it to each nfs_read_data so it can be sent to the layout driver. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Andy Adamson <andros@citi.umich.edu> Signed-off-by: Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by: Fred Isaman <iisaman@citi.umich.edu> Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Tao Guo <guotao@nrchpc.ac.cn> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
committed by
Trond Myklebust
parent
94ad1c80e2
commit
bae724ef95
@@ -20,6 +20,7 @@
|
||||
#include <linux/nfs_mount.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include "pnfs.h"
|
||||
|
||||
static struct kmem_cache *nfs_page_cachep;
|
||||
|
||||
@@ -213,7 +214,7 @@ nfs_wait_on_request(struct nfs_page *req)
|
||||
*/
|
||||
void nfs_pageio_init(struct nfs_pageio_descriptor *desc,
|
||||
struct inode *inode,
|
||||
int (*doio)(struct inode *, struct list_head *, unsigned int, size_t, int),
|
||||
int (*doio)(struct inode *, struct list_head *, unsigned int, size_t, int, struct pnfs_layout_segment *),
|
||||
size_t bsize,
|
||||
int io_flags)
|
||||
{
|
||||
@@ -315,7 +316,9 @@ static void nfs_pageio_doio(struct nfs_pageio_descriptor *desc)
|
||||
nfs_page_array_len(desc->pg_base,
|
||||
desc->pg_count),
|
||||
desc->pg_count,
|
||||
desc->pg_ioflags);
|
||||
desc->pg_ioflags,
|
||||
desc->pg_lseg);
|
||||
desc->pg_lseg = NULL;
|
||||
if (error < 0)
|
||||
desc->pg_error = error;
|
||||
else
|
||||
|
Reference in New Issue
Block a user