Re: [PATCH 31/34] nfs: convert put_page() to put_user_page*()

2019-08-04 Thread Calum Mackay

On 03/08/2019 2:41 am, John Hubbard wrote:

On 8/2/19 6:27 PM, Calum Mackay wrote:

On 02/08/2019 3:20 am, john.hubb...@gmail.com wrote:

...

Since it's static, and only called twice, might it be better to change its two 
callers [nfs_direct_{read,write}_schedule_iovec()] to call put_user_pages() 
directly, and remove nfs_direct_release_pages() entirely?

thanks,
calum.



     void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo,

  
Hi Calum,


Absolutely! Is it OK to add your reviewed-by, with the following incremental
patch made to this one?


Thanks John; looks good.

Reviewed-by: Calum Mackay 



diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index b00b89dda3c5..c0c1b9f2c069 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -276,11 +276,6 @@ ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter 
*iter)
 return nfs_file_direct_write(iocb, iter);
  }
  
-static void nfs_direct_release_pages(struct page **pages, unsigned int npages)

-{
-   put_user_pages(pages, npages);
-}
-
  void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo,
   struct nfs_direct_req *dreq)
  {
@@ -510,7 +505,7 @@ static ssize_t nfs_direct_read_schedule_iovec(struct 
nfs_direct_req *dreq,
 pos += req_len;
 dreq->bytes_left -= req_len;
 }
-   nfs_direct_release_pages(pagevec, npages);
+   put_user_pages(pagevec, npages);
 kvfree(pagevec);
 if (result < 0)
 break;
@@ -933,7 +928,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct 
nfs_direct_req *dreq,
 pos += req_len;
 dreq->bytes_left -= req_len;
 }
-   nfs_direct_release_pages(pagevec, npages);
+   put_user_pages(pagevec, npages);
 kvfree(pagevec);
 if (result < 0)
 break;



thanks,


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 31/34] nfs: convert put_page() to put_user_page*()

2019-08-02 Thread John Hubbard
On 8/2/19 6:27 PM, Calum Mackay wrote:
> On 02/08/2019 3:20 am, john.hubb...@gmail.com wrote:
... 
> Since it's static, and only called twice, might it be better to change its 
> two callers [nfs_direct_{read,write}_schedule_iovec()] to call 
> put_user_pages() directly, and remove nfs_direct_release_pages() entirely?
> 
> thanks,
> calum.
> 
> 
>>     void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo,
>>
 
Hi Calum,

Absolutely! Is it OK to add your reviewed-by, with the following incremental
patch made to this one?

diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index b00b89dda3c5..c0c1b9f2c069 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -276,11 +276,6 @@ ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter 
*iter)
return nfs_file_direct_write(iocb, iter);
 }
 
-static void nfs_direct_release_pages(struct page **pages, unsigned int npages)
-{
-   put_user_pages(pages, npages);
-}
-
 void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo,
  struct nfs_direct_req *dreq)
 {
@@ -510,7 +505,7 @@ static ssize_t nfs_direct_read_schedule_iovec(struct 
nfs_direct_req *dreq,
pos += req_len;
dreq->bytes_left -= req_len;
}
-   nfs_direct_release_pages(pagevec, npages);
+   put_user_pages(pagevec, npages);
kvfree(pagevec);
if (result < 0)
break;
@@ -933,7 +928,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct 
nfs_direct_req *dreq,
pos += req_len;
dreq->bytes_left -= req_len;
}
-   nfs_direct_release_pages(pagevec, npages);
+   put_user_pages(pagevec, npages);
kvfree(pagevec);
if (result < 0)
break;



thanks,
-- 
John Hubbard
NVIDIA
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 31/34] nfs: convert put_page() to put_user_page*()

2019-08-02 Thread Calum Mackay

On 02/08/2019 3:20 am, john.hubb...@gmail.com wrote:

From: John Hubbard 

For pages that were retained via get_user_pages*(), release those pages
via the new put_user_page*() routines, instead of via put_page() or
release_pages().

This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
("mm: introduce put_user_page*(), placeholder versions").

Cc: Trond Myklebust 
Cc: Anna Schumaker 
Cc: linux-...@vger.kernel.org
Signed-off-by: John Hubbard 
---
  fs/nfs/direct.c | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 0cb442406168..b00b89dda3c5 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -278,9 +278,7 @@ ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter 
*iter)
  
  static void nfs_direct_release_pages(struct page **pages, unsigned int npages)

  {
-   unsigned int i;
-   for (i = 0; i < npages; i++)
-   put_page(pages[i]);
+   put_user_pages(pages, npages);
  }


Since it's static, and only called twice, might it be better to change 
its two callers [nfs_direct_{read,write}_schedule_iovec()] to call 
put_user_pages() directly, and remove nfs_direct_release_pages() entirely?


thanks,
calum.


  
  void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo,



___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 31/34] nfs: convert put_page() to put_user_page*()

2019-08-01 Thread john . hubbard
From: John Hubbard 

For pages that were retained via get_user_pages*(), release those pages
via the new put_user_page*() routines, instead of via put_page() or
release_pages().

This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
("mm: introduce put_user_page*(), placeholder versions").

Cc: Trond Myklebust 
Cc: Anna Schumaker 
Cc: linux-...@vger.kernel.org
Signed-off-by: John Hubbard 
---
 fs/nfs/direct.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 0cb442406168..b00b89dda3c5 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -278,9 +278,7 @@ ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter 
*iter)
 
 static void nfs_direct_release_pages(struct page **pages, unsigned int npages)
 {
-   unsigned int i;
-   for (i = 0; i < npages; i++)
-   put_page(pages[i]);
+   put_user_pages(pages, npages);
 }
 
 void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo,
-- 
2.22.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel