pnfs-submit layoutdriver api parameter consolidation
Subsystems (2)
cover pnfs-submit layoutdriver api parameter consolidation
Compile fix. 0001-SQUASHME-pnfs-submit-fix-CONFIG_NFS_V4_1-not-set-com.patch
The read_pagelist, write_pagelist, and commit layoutdriver io operations parameters are all serviced by either nfs_write_data or nfs_read_data fields. Just pass in the data structs.
0002-SQUASHME-pnfs-submit-consolidate-read_pagelist-param.patch 0003-SQUASHME-pnfs-submit-filelayout-use-new-read_pagelis.patch 0004-SQUASHME-pnfs-submit-consolidate-write_pagelist-para.patch 0005-SQUASHME-pnfs-submit-filelayout-use-new-write_pageli.patch 0006-SQUASHME-pnfs-submit-consolidate-commit-parameters.patch 0007-SQUASHME-pnfs-submit-filelayout_commit-use-new-API.patch
Testing
CONFIG_NFS_V4_1 set:
Connectathon passes
CONFIG_NFS_V4_1 not set:
Connectathon passes
-->Andy
PATCH 1/7 SQUASHME pnfs-submit fix CONFIG_NFS_V4_1 not set compile error
From: Andy Adamson <[email protected]>
--- include/linux/nfs4_pnfs.h | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
include/linux/nfs4_pnfs.h +6 -0
@@ -84,6 +84,12 @@ layoutcommit_needed(struct nfs_inode *nfsi)#else /* CONFIG_NFS_V4_1 */ static inline bool +has_layout (struct nfs_inode *nfsi) +{ +return false; +} + +static inline bool layoutcommit_needed (struct nfs_inode *nfsi) {return 0 ;
Signature · 1 line
1.6.6
PATCH 2/7 SQUASHME pnfs-submit consolidate read_pagelist parameters
From: Andy Adamson <[email protected]>
NOTE: API change.
--- fs/nfs/pnfs.c | 17 ++++------------- include/linux/nfs4_pnfs.h | 5 +---- 2 files changed, 5 insertions(+), 17 deletions(-)
fs/nfs/pnfs.c +4 -13
@@ -1325,23 +1325,21 @@ enum pnfs_try_status pnfs_try_to_read_data(struct nfs_read_data *rdata, const struct rpc_call_ops *call_ops) { - struct nfs_readargs *args = &rdata->args; struct inode *inode = rdata->inode; -int numpages, pgcount, temp;struct nfs_server *nfss =NFS_SERVER (inode); -struct nfs_inode *nfsi =NFS_I (inode);struct pnfs_layout_segment *lseg = rdata->req->wb_lseg; +int numpages, pgcount, temp;enum pnfs_try_status trypnfs; rdata->pdata.call_ops = call_ops;dprintk ("%s: Reading ino:%lu %u@%llu\n" , - __func__, inode->i_ino, args->count, args->offset); + __func__, inode->i_ino, rdata->args.count, rdata->args.offset);get_lseg (lseg);/* Determine number of pages. */ - pgcount = args->pgbase + args->count; + pgcount = rdata->args.pgbase + rdata->args.count; temp = pgcount %PAGE_CACHE_SIZE ; numpages = pgcount /PAGE_CACHE_SIZE ;if (temp !=0 )
@@ -1350,14 +1348,7 @@ pnfs_try_to_read_data(struct nfs_read_data *rdata,dprintk ("%s: Calling layout driver read with %d pages\n" , __func__, numpages); rdata->pdata.lseg = lseg; - trypnfs = nfss->pnfs_curr_ld->ld_io_ops->read_pagelist ( - nfsi->layout, - args->pages, - args->pgbase, - numpages, - (loff_t )args->offset, - args->count, - rdata); + trypnfs = nfss->pnfs_curr_ld->ld_io_ops->read_pagelist (rdata, numpages);if (trypnfs ==PNFS_NOT_ATTEMPTED ) { rdata->pdata.lseg =NULL ;put_lseg (lseg);
include/linux/nfs4_pnfs.h +1 -4
@@ -128,10 +128,7 @@ struct layoutdriver_io_operations {* MUST be called. */ enum pnfs_try_status - (*read_pagelist) (struct pnfs_layout_type *layoutid, -struct page **pages,unsigned int pgbase, -unsigned nr_pages,loff_t offset,size_t count, -struct nfs_read_data *nfs_data); + (*read_pagelist) (struct nfs_read_data *nfs_data,unsigned nr_pages); enum pnfs_try_status (*write_pagelist) (struct pnfs_layout_type *layoutid, struct page **pages, unsigned int pgbase,
Signature · 1 line
1.6.6
PATCH 3/7 SQUASHME pnfs-submit filelayout use new read_pagelist API
From: Andy Adamson <[email protected]>
--- fs/nfs/nfs4filelayout.c | 13 ++++--------- 1 files changed, 4 insertions(+), 9 deletions(-)
fs/nfs/nfs4filelayout.c +4 -9
@@ -199,22 +199,17 @@ struct rpc_call_ops filelayout_write_call_ops = {* TODO: join with write_pagelist? */ static enum pnfs_try_status -filelayout_read_pagelist (struct pnfs_layout_type *layoutid, -struct page **pages, -unsigned int pgbase, -unsigned nr_pages, -loff_t offset, -size_t count, -struct nfs_read_data *data) +filelayout_read_pagelist (struct nfs_read_data *data,unsigned nr_pages) { -struct inode *inode =PNFS_INODE (layoutid);struct pnfs_layout_segment *lseg = data->pdata.lseg;struct nfs4_pnfs_ds *ds; +loff_t offset = data->args.offset;u32 idx;struct nfs_fh *fh;dprintk ("--> %s ino %lu nr_pages %d pgbase %u req %Zu@%llu\n" , - __func__, inode->i_ino, nr_pages, pgbase, count, offset); + __func__, data->inode->i_ino, nr_pages, + data->args.pgbase, (size_t )data->args.count, offset);/* Retrieve the correct rpc_client for the byte range */ idx =nfs4_fl_calc_ds_index (lseg, offset);
Signature · 1 line
1.6.6
PATCH 4/7 SQUASHME pnfs-submit consolidate write_pagelist parameters
From: Andy Adamson <[email protected]>
Remove the numpages calculation which is not used by the file layout driver. Layout drivers that need the number of pages can call nfs_page_array_len in their write_pagelist operation.
NOTE: API change.
--- fs/nfs/pnfs.c | 24 +++--------------------- include/linux/nfs4_pnfs.h | 5 +---- 2 files changed, 4 insertions(+), 25 deletions(-)
fs/nfs/pnfs.c +3 -21
@@ -1271,39 +1271,21 @@ enum pnfs_try_status pnfs_try_to_write_data(struct nfs_write_data *wdata, const struct rpc_call_ops *call_ops, int how) { - struct nfs_writeargs *args = &wdata->args; struct inode *inode = wdata->inode;enum pnfs_try_status trypnfs;struct nfs_server *nfss =NFS_SERVER (inode); -struct nfs_inode *nfsi =NFS_I (inode);struct pnfs_layout_segment *lseg = wdata->req->wb_lseg; -int numpages; wdata->pdata.call_ops = call_ops; wdata->pdata.how = how; -dprintk ("%s: Writing ino:%lu %u@%llu\n" , __func__, - inode->i_ino, args->count, args->offset); +dprintk ("%s: Writing ino:%lu %u@%llu (how %d)\n" , __func__, + inode->i_ino, wdata->args.count, wdata->args.offset, how);get_lseg (lseg); -/* Determine number of pages -*/ - numpages =nfs_page_array_len (args->pgbase, args->count); - -dprintk ("%s: Calling layout driver (how %d) write with %d pages\n" , - __func__, how, numpages); - wdata->pdata.lseg = lseg; - trypnfs = nfss->pnfs_curr_ld->ld_io_ops->write_pagelist ( - nfsi->layout, - args->pages, - args->pgbase, - numpages, - (loff_t )args->offset, - args->count, - how, - wdata); + trypnfs = nfss->pnfs_curr_ld->ld_io_ops->write_pagelist (wdata, how);if (trypnfs ==PNFS_NOT_ATTEMPTED ) { wdata->pdata.lseg =NULL ;
include/linux/nfs4_pnfs.h +1 -4
@@ -130,10 +130,7 @@ struct layoutdriver_io_operations {enum pnfs_try_status (*read_pagelist) (struct nfs_read_data *nfs_data,unsigned nr_pages);enum pnfs_try_status - (*write_pagelist) (struct pnfs_layout_type *layoutid, -struct page **pages,unsigned int pgbase, -unsigned nr_pages,loff_t offset,size_t count, -int sync,struct nfs_write_data *nfs_data); + (*write_pagelist) (struct nfs_write_data *nfs_data,int how);/* Consistency ops */ /* 2 problems:
Signature · 1 line
1.6.6
PATCH 5/7 SQUASHME pnfs-submit filelayout use new write_pagelist API
From: Andy Adamson <[email protected]>
--- fs/nfs/nfs4filelayout.c | 18 ++++-------------- 1 files changed, 4 insertions(+), 14 deletions(-)
fs/nfs/nfs4filelayout.c +4 -14
@@ -244,24 +244,14 @@ filelayout_read_pagelist(struct nfs_read_data *data, unsigned nr_pages)/* Perform async writes. */ static enum pnfs_try_status -filelayout_write_pagelist (struct pnfs_layout_type *layoutid, -struct page **pages, -unsigned int pgbase, -unsigned nr_pages, -loff_t offset, -size_t count, -int sync, -struct nfs_write_data *data) +filelayout_write_pagelist (struct nfs_write_data *data,int sync) { -struct inode *inode =PNFS_INODE (layoutid);struct pnfs_layout_segment *lseg = data->pdata.lseg;struct nfs4_pnfs_ds *ds; +loff_t offset = data->args.offset;u32 idx;struct nfs_fh *fh; -dprintk ("--> %s ino %lu nr_pages %d pgbase %u req %Zu@%llu sync %d\n" , - __func__, inode->i_ino, nr_pages, pgbase, count, offset, sync); -/* Retrieve the correct rpc_client for the byte range */ idx =nfs4_fl_calc_ds_index (lseg, offset); ds =nfs4_fl_prepare_ds (lseg, idx);
@@ -269,8 +259,8 @@ filelayout_write_pagelist(struct pnfs_layout_type *layoutid,printk (KERN_ERR "%s: prepare_ds failed, use MDS\n" , __func__);return PNFS_NOT_ATTEMPTED ; } -dprintk ("%s ino %lu %Zu@%llu DS:%x:%hu %s\n" , - __func__, inode->i_ino, count, offset, +dprintk ("%s ino %lu sync %d req %Zu@%llu DS:%x:%hu %s\n" , __func__, + data->inode->i_ino, sync, (size_t ) data->args.count, offset,htonl (ds->ds_ip_addr),ntohs (ds->ds_port), ds->r_addr); data->fldata.ds_nfs_client = ds->ds_clp;
Signature · 1 line
1.6.6
PATCH 6/7 SQUASHME pnfs-submit consolidate commit parameters
From: Andy Adamson <[email protected]>
NOTE: API change
--- fs/nfs/pnfs.c | 3 +-- include/linux/nfs4_pnfs.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)
fs/nfs/pnfs.c +1 -2
@@ -1362,8 +1362,7 @@ pnfs_try_to_commit(struct nfs_write_data *data, data->pdata.call_ops = call_ops; data->pdata.how = sync; data->pdata.lseg =NULL ; - trypnfs = nfss->pnfs_curr_ld->ld_io_ops->commit (NFS_I (inode)->layout, - sync, data); + trypnfs = nfss->pnfs_curr_ld->ld_io_ops->commit (data, sync);if (trypnfs ==PNFS_NOT_ATTEMPTED )_pnfs_clear_lseg_from_pages (&data->pages);else
include/linux/nfs4_pnfs.h +1 -2
@@ -138,8 +138,7 @@ struct layoutdriver_io_operations {* 2) currently the NFS code doesn't create a page array (as it does with read/write) */ enum pnfs_try_status - (*commit) (struct pnfs_layout_type *layoutid, -int sync,struct nfs_write_data *nfs_data); + (*commit) (struct nfs_write_data *nfs_data,int how);/* Layout information. For each inode, alloc_layout is executed once to retrieve an * inode specific layout structure. Each subsequent layoutget operation results in
Signature · 1 line
1.6.6
PATCH 7/7 SQUASHME pnfs-submit filelayout_commit use new API
From: Andy Adamson <[email protected]>
--- fs/nfs/nfs4filelayout.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
fs/nfs/nfs4filelayout.c +1 -2
@@ -553,8 +553,7 @@ static struct rpc_call_ops filelayout_commit_call_ops = {* Invoke the pnfs_commit_complete callback. */ enum pnfs_try_status -filelayout_commit (struct pnfs_layout_type *layoutid,int sync, -struct nfs_write_data *data) +filelayout_commit (struct nfs_write_data *data,int sync) {LIST_HEAD (head);struct nfs_page *req;
Signature · 1 line
1.6.6
Re: [PATCH 4/7] SQUASHME pnfs-submit consolidate write_pagelist parameters
In reply to [email protected]Quoted 33 lines · On Jul. 15, 2010, 19:13 +0300, [email protected] wrote:
From: Andy Adamson <[email protected]>
Remove the numpages calculation which is not used by the file layout driver. Layout drivers that need the number of pages can call
nfs_page_array_lenin theirwrite_pagelistoperation.NOTE: API change.
Signed-off-by Andy Adamson <[email protected]>--- fs/nfs/pnfs.c | 24 +++--------------------- include/linux/nfs4_pnfs.h | 5 +---- 2 files changed, 4 insertions(+), 25 deletions(-)fs/nfs/pnfs.c +0
-3@@ -1271,39 +1271,21 @@ enum pnfs_try_status pnfs_try_to_write_data(struct nfs_write_data *wdata, const struct rpc_call_ops *call_ops, int how) { - struct nfs_writeargs *args = &wdata->args; struct inode *inode = wdata->inode;enum pnfs_try_status trypnfs;struct nfs_server *nfss =NFS_SERVER (inode); -struct nfs_inode *nfsi =NFS_I (inode);struct pnfs_layout_segment *lseg = wdata->req->wb_lseg; -int numpages; wdata->pdata.call_ops = call_ops; wdata->pdata.how = how;
fs/nfs/pnfs.c enum pnfs_try_status · line 1292
Quoted 10 lines
fs/nfs/pnfs.c +2
-5-dprintk ("%s: Writing ino:%lu %u@%llu\n" , __func__, - inode->i_ino, args->count, args->offset); +dprintk ("%s: Writing ino:%lu %u@%llu (how %d)\n" , __func__, + inode->i_ino, wdata->args.count, wdata->args.offset, how);get_lseg (lseg); -/* Determine number of pages -*/ - numpages =nfs_page_array_len (args->pgbase, args->count);
Andy, removing this from the interface is a bit problematic since nfs_page_array_len is private to the nfs module and I want to leave the logic there rather than copying it to the layout driver. Also, we still pass in its equivalent to read_pagelist so for symmetry reasons it would be cleaner to pass to to the write path as well.
Benny
Quoted 34 lines
fs/nfs/pnfs.c +1
-13- -dprintk ("%s: Calling layout driver (how %d) write with %d pages\n" , - __func__, how, numpages); - wdata->pdata.lseg = lseg; - trypnfs = nfss->pnfs_curr_ld->ld_io_ops->write_pagelist ( - nfsi->layout, - args->pages, - args->pgbase, - numpages, - (loff_t )args->offset, - args->count, - how, - wdata); + trypnfs = nfss->pnfs_curr_ld->ld_io_ops->write_pagelist (wdata, how);if (trypnfs ==PNFS_NOT_ATTEMPTED ) { wdata->pdata.lseg =NULL ;include/linux/nfs4_pnfs.h +1
-4@@ -130,10 +130,7 @@ struct layoutdriver_io_operations {enum pnfs_try_status (*read_pagelist) (struct nfs_read_data *nfs_data,unsigned nr_pages);enum pnfs_try_status - (*write_pagelist) (struct pnfs_layout_type *layoutid, -struct page **pages,unsigned int pgbase, -unsigned nr_pages,loff_t offset,size_t count, -int sync,struct nfs_write_data *nfs_data); + (*write_pagelist) (struct nfs_write_data *nfs_data,int how);/* Consistency ops */ /* 2 problems:
Re: [PATCH 4/7] SQUASHME pnfs-submit consolidate write_pagelist parameters
Quoted 41 lines · Benny Halevy
Quoted 40 lines · On Jul. 15, 2010, 19:13 +0300, [email protected] wrote:
From: Andy Adamson <[email protected]>
Remove the numpages calculation which is not used by the file layout driver. Layout drivers that need the number of pages can call
nfs_page_array_lenin theirwrite_pagelistoperation.NOTE: API change.
Signed-off-by Andy Adamson <[email protected]>--- fs/nfs/pnfs.c | 24 +++--------------------- include/linux/nfs4_pnfs.h | 5 +---- 2 files changed, 4 insertions(+), 25 deletions(-)fs/nfs/pnfs.c +2
-5@@ -1271,39 +1271,21 @@ enum pnfs_try_status pnfs_try_to_write_data(struct nfs_write_data *wdata, const struct rpc_call_ops *call_ops, int how) { - struct nfs_writeargs *args = &wdata->args; struct inode *inode = wdata->inode;enum pnfs_try_status trypnfs;struct nfs_server *nfss =NFS_SERVER (inode); -struct nfs_inode *nfsi =NFS_I (inode);struct pnfs_layout_segment *lseg = wdata->req->wb_lseg; -int numpages; wdata->pdata.call_ops = call_ops; wdata->pdata.how = how; -dprintk ("%s: Writing ino:%lu %u@%llu\n" , __func__, - inode->i_ino, args->count, args->offset); +dprintk ("%s: Writing ino:%lu %u@%llu (how %d)\n" , __func__, + inode->i_ino, wdata->args.count, wdata->args.offset, how);get_lseg (lseg);
Quoted 9 lines
fs/nfs/pnfs.c enum pnfs_try_status · line 1292
Quoted 3 lines
fs/nfs/pnfs.c +0
-3-/* Determine number of pages -*/ - numpages =nfs_page_array_len (args->pgbase, args->count);Andy, removing this from the interface is a bit problematic since
nfs_page_array_lenis private to the nfs module and I want to leave the logic there rather than copying it to the layout driver. Also, we still pass in its equivalent toread_pagelistso for symmetry reasons it would be cleaner to pass to to the write path as well.
and we should use nfs_page_array_len for the read path as well. In any case the calculation is straight forward so we should either do it in the generic layer in both cases or neither.
Benny
Quoted 41 lines
Benny
Quoted 24 lines
fs/nfs/pnfs.c +1
-13- -dprintk ("%s: Calling layout driver (how %d) write with %d pages\n" , - __func__, how, numpages); - wdata->pdata.lseg = lseg; - trypnfs = nfss->pnfs_curr_ld->ld_io_ops->write_pagelist ( - nfsi->layout, - args->pages, - args->pgbase, - numpages, - (loff_t )args->offset, - args->count, - how, - wdata); + trypnfs = nfss->pnfs_curr_ld->ld_io_ops->write_pagelist (wdata, how);if (trypnfs ==PNFS_NOT_ATTEMPTED ) { wdata->pdata.lseg =NULL ;include/linux/nfs4_pnfs.h +0
-0@@ -130,10 +130,7 @@ struct layoutdriver_io_operations {enum pnfs_try_status include/linux/nfs4_pnfs.h struct layoutdriver_io_operations { · line 136
Quoted 10 lines
include/linux/nfs4_pnfs.h +1
-4(*read_pagelist) (struct nfs_read_data *nfs_data, unsigned nr_pages);enum pnfs_try_status - (*write_pagelist) (struct pnfs_layout_type *layoutid, -struct page **pages,unsigned int pgbase, -unsigned nr_pages,loff_t offset,size_t count, -int sync,struct nfs_write_data *nfs_data); + (*write_pagelist) (struct nfs_write_data *nfs_data,int how);/* Consistency ops */ /* 2 problems: --
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 4/7] SQUASHME pnfs-submit consolidate write_pagelist parameters
Ah - I see now. OK - numpages in write_pagelist.
-->Andy
On Tue, Jul 20, 2010 at 12:33 AM, Benny Halevy <[email protected]> wr= ote:
Quoted 1 line
On Jul. 20, 2010, 7:26 +0300, Benny Halevy <[email protected]> wrot=
e:
Quoted 4 lines
Quoted 4 lines · On Jul. 15, 2010, 19:13 +0300, [email protected] wrote:
Quoted 3 lines
From: Andy Adamson <[email protected]>
Remove the numpages calculation which is not used by the file layou=
t driver.
Quoted 1 line
Quoted 1 line
Quoted 1 line
Layout drivers that need the number of pages can call nfs_page_arra=
y_len in
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
their
write_pagelistoperation.NOTE: API change.
Signed-off-by Andy Adamson <[email protected]>---
=A0fs/nfs/pnfs.c =A0 =A0 =A0 =A0 =A0 =A0 | =A0 24 +++--------------=
-------
Quoted 10 lines
Quoted 10 lines
Quoted 10 lines
=A0include/linux/nfs4_pnfs.h | =A0 =A05 +---- =A02 files changed, 4 insertions(+), 25 deletions(-)
fs/nfs/pnfs.c +0
-0@@ -1271,39 +1271,21 @@ enum pnfs_try_status =A0pnfs_try_to_write_data(struct nfs_write_data *wdata,=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0const struct rpc_call_op=
s *call_ops, int how)
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
=A0{
- =A0 =A0structnfs_writeargs*args =3D&wdata->args;
=A0 =A0 =A0struct inode *inode =3Dwdata->inode;
=A0 =A0 =A0enumpnfs_try_statustrypnfs;
=A0 =A0 =A0structnfs_server*nfss =3DNFS_SERVER(inode);
- =A0 =A0structnfs_inode*nfsi =3DNFS_I(inode);
=A0 =A0 =A0structpnfs_layout_segment*lseg =3D wdata->req->wb_lseg=
;
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
- =A0 =A0int numpages;
=A0 =A0 =A0wdata->pdata.call_ops =3D
call_ops;
=A0 =A0 =A0wdata->pdata.how =3D how;- =A0 =A0dprintk("%s: Writing ino:%lu %u@%llu\n",
__func__,
- =A0 =A0 =A0 =A0 =A0 =A0inode->i_ino,args->count,args->offset);
+ =A0 =A0dprintk("%s: Writing ino:%lu %u@%llu (how %d)\n", __func__=
,
Quoted 1 line
Quoted 1 line
Quoted 1 line
+ =A0 =A0 =A0 =A0 =A0 =A0inode->i_ino,
wdata->args.count, wdata->ar=
gs.offset, how);
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
=A0 =A0 =A0get_lseg(lseg);
- =A0 =A0/* Determine number of pages
- =A0 =A0 */
- =A0 =A0numpages =3Dnfs_page_array_len(args->pgbase, args->count)=
;
Quoted 3 lines
Quoted 3 lines
Andy, removing this from the interface is a bit problematic since
nfs_page_array_lenis private to the nfs module and I want to =
leave
Quoted 2 lines
Quoted 2 lines
the logic there rather than copying it to the layout driver. Also, we still pass in its equivalent to
read_pagelistso for symmet=
ry
Quoted 4 lines
Quoted 1 line
reasons it would be cleaner to pass to to the write path as well.
and we should use
nfs_page_array_lenfor the read path as well. In any case the calculation is straight forward so we should either d=
o
Quoted 9 lines
it in the generic layer in both cases or neither.
Benny
Quoted 5 lines
Benny
Quoted 2 lines
-
- =A0 =A0dprintk("%s: Calling layout driver (how %d) write with %d =
pages\n",
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
- =A0 =A0 =A0 =A0 =A0 =A0__func__, how, numpages);
-
=A0 =A0 =A0wdata->pdata.lseg =3D lseg;
- =A0 =A0trypnfs =3D nfss->pnfs_curr_ld->ld_io_ops->write_pagelist(
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0nfsi->layout,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0args->pages,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0args->pgbase,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0numpages,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(loff_t)args->offset,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0args->count,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0how,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0wdata);
Quoted 1 line
Quoted 1 line
Quoted 1 line
+ =A0 =A0trypnfs =3D nfss->pnfs_curr_ld->ld_io_ops->write_pagelist(=
wdata, how);
Quoted 10 lines
Quoted 10 lines
Quoted 10 lines
=A0 =A0 =A0if (trypnfs =3D=3D
PNFS_NOT_ATTEMPTED) { =A0 =A0 =A0 =A0 =A0 =A0 =A0wdata->pdata.lseg =3D NULL;include/linux/nfs4_pnfs.h +0
-0@@ -130,10 +130,7 @@ struct layoutdriver_io_operations {=A0 =A0 =A0enum
pnfs_try_status
=A0 =A0 =A0(*read_pagelist) (structnfs_read_data*nfs_data, unsign=
ed nr_pages);
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
=A0 =A0 =A0enum
pnfs_try_status
- =A0 =A0(*write_pagelist) (structpnfs_layout_type*layoutid,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct page **pages, =
unsigned int pgbase,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 unsigned
nr_pages, lo=
ff_t offset, size_t count,
Quoted 1 line
Quoted 1 line
Quoted 1 line
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 int sync, struct nfs_=
write_data *nfs_data);
Quoted 1 line
Quoted 1 line
Quoted 1 line
+ =A0 =A0(*write_pagelist) (struct
nfs_write_data*nfs_data, int ho=
w);
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines
=A0 =A0 =A0/* Consistency ops */
=A0 =A0 =A0/* 2 problems:--
To unsubscribe from this list: send the line "unsubscribe linux-nfs"=
in
Quoted 4 lines
Quoted 2 lines
the body of a message to [email protected]
More majordomo info at =A0http://vger.kernel.org/majordomo-info.html--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" =
in
Quoted 3 lines
the body of a message to [email protected]
More majordomo info at =A0http://vger.kernel.org/majordomo-info.html