aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/filelayout/filelayout.c
diff options
context:
space:
mode:
authorWeston Andros Adamson <dros@primarydata.com>2014-09-10 15:48:01 -0400
committerTom Haynes <loghyr@primarydata.com>2015-02-03 14:06:44 -0500
commit180bb5ec06ce3a95dccc751fbf6bf11d3003da98 (patch)
treee73fcf03e30e0bdb6b2e97767782fa53a0912ff7 /fs/nfs/filelayout/filelayout.c
parent2176bf4269a37a7742230ed6c91668241bfe1b2b (diff)
pnfs: release lseg in pnfs_generic_pg_cleanup
This is needed to support mirrored writes - the first write can't just trash the lseg, we need to keep it around until all mirrors have written. Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
Diffstat (limited to 'fs/nfs/filelayout/filelayout.c')
-rw-r--r--fs/nfs/filelayout/filelayout.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c
index 5d2eadc65167..2af32fc39d60 100644
--- a/fs/nfs/filelayout/filelayout.c
+++ b/fs/nfs/filelayout/filelayout.c
@@ -933,12 +933,14 @@ static const struct nfs_pageio_ops filelayout_pg_read_ops = {
933 .pg_init = filelayout_pg_init_read, 933 .pg_init = filelayout_pg_init_read,
934 .pg_test = filelayout_pg_test, 934 .pg_test = filelayout_pg_test,
935 .pg_doio = pnfs_generic_pg_readpages, 935 .pg_doio = pnfs_generic_pg_readpages,
936 .pg_cleanup = pnfs_generic_pg_cleanup,
936}; 937};
937 938
938static const struct nfs_pageio_ops filelayout_pg_write_ops = { 939static const struct nfs_pageio_ops filelayout_pg_write_ops = {
939 .pg_init = filelayout_pg_init_write, 940 .pg_init = filelayout_pg_init_write,
940 .pg_test = filelayout_pg_test, 941 .pg_test = filelayout_pg_test,
941 .pg_doio = pnfs_generic_pg_writepages, 942 .pg_doio = pnfs_generic_pg_writepages,
943 .pg_cleanup = pnfs_generic_pg_cleanup,
942}; 944};
943 945
944static u32 select_bucket_index(struct nfs4_filelayout_segment *fl, u32 j) 946static u32 select_bucket_index(struct nfs4_filelayout_segment *fl, u32 j)