summaryrefslogtreecommitdiffstats
path: root/fs/nfs/pnfs.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2014-08-21 11:09:25 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2014-09-10 12:47:01 -0700
commit5f919c9f10c1cf821ee5f414683214a361a1b98c (patch)
tree401fab5447d465efa72b750905ea31868a7d4a5b /fs/nfs/pnfs.h
parent47abadefad213bb7de9592d2e09a8bd282ddc3de (diff)
downloadop-kernel-dev-5f919c9f10c1cf821ee5f414683214a361a1b98c.zip
op-kernel-dev-5f919c9f10c1cf821ee5f414683214a361a1b98c.tar.gz
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 'fs/nfs/pnfs.h')
-rw-r--r--fs/nfs/pnfs.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index 1dd8a5e..8835b5a 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -128,8 +128,8 @@ struct pnfs_layoutdriver_type {
const struct nfs4_layoutreturn_args *args);
void (*cleanup_layoutcommit) (struct nfs4_layoutcommit_data *data);
-
- void (*encode_layoutcommit) (struct pnfs_layout_hdr *layoutid,
+ int (*prepare_layoutcommit) (struct nfs4_layoutcommit_args *args);
+ void (*encode_layoutcommit) (struct pnfs_layout_hdr *lo,
struct xdr_stream *xdr,
const struct nfs4_layoutcommit_args *args);
};
OpenPOWER on IntegriCloud