diff options
author | Christoph Hellwig <hch@lst.de> | 2014-08-21 11:09:25 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-09-10 12:47:01 -0700 |
commit | 5f919c9f10c1cf821ee5f414683214a361a1b98c (patch) | |
tree | 401fab5447d465efa72b750905ea31868a7d4a5b /include/linux/nfs_xdr.h | |
parent | 47abadefad213bb7de9592d2e09a8bd282ddc3de (diff) | |
download | lwn-5f919c9f10c1cf821ee5f414683214a361a1b98c.tar.gz lwn-5f919c9f10c1cf821ee5f414683214a361a1b98c.zip |
pnfs: allow splicing pre-encoded pages into the layoutcommit args
Currently there is no XDR buffer space allocated for the per-layout driver
layoutcommit payload, which leads to server buffer overflows in the
blocklayout driver even under simple workloads. As we can't do per-layout
sizes for XDR operations we'll have to splice a previously encoded list
of pages into the XDR stream, similar to how we handle ACL buffers.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'include/linux/nfs_xdr.h')
-rw-r--r-- | include/linux/nfs_xdr.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index e563b2c976ef..f4092c6b90fb 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -279,6 +279,9 @@ struct nfs4_layoutcommit_args { __u64 lastbytewritten; struct inode *inode; const u32 *bitmask; + size_t layoutupdate_len; + struct page *layoutupdate_page; + struct page **layoutupdate_pages; }; struct nfs4_layoutcommit_res { |