Thread (50 messages) 50 messages, 7 authors, 2018-06-27

Re: [Patch v2 02/15] CIFS: Add support for direct pages in rdata

From: Tom Talpey <tom@talpey.com>
Date: 2018-06-26 15:21:09
Also in: linux-cifs, lkml

On 6/25/2018 5:01 PM, Jason Gunthorpe wrote:
On Sat, Jun 23, 2018 at 09:50:20PM -0400, Tom Talpey wrote:
quoted
On 5/30/2018 3:47 PM, Long Li wrote:
quoted
From: Long Li <longli@microsoft.com>

Add a function to allocate rdata without allocating pages for data
transfer. This gives the caller an option to pass a number of pages
that point to the data buffer.

rdata is still reponsible for free those pages after it's done.
"Caller" is still responsible? Or is the rdata somehow freeing itself
via another mechanism?
quoted
Signed-off-by: Long Li <longli@microsoft.com>
  fs/cifs/cifsglob.h |  2 +-
  fs/cifs/file.c     | 23 ++++++++++++++++++++---
  2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 8d16c3e..56864a87 100644
+++ b/fs/cifs/cifsglob.h
@@ -1179,7 +1179,7 @@ struct cifs_readdata {
  	unsigned int			tailsz;
  	unsigned int			credits;
  	unsigned int			nr_pages;
-	struct page			*pages[];
+	struct page			**pages;
Technically speaking, these are syntactically equivalent. It may not
be worth changing this historic definition.
[] is a C99 'flex array', it has a different allocation behavior than
** and is not interchangeable..
In that case, it's an even better reason to not change the declaration.

Tom.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help