summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2015-08-27 19:17:33 -0400
committerTrond Myklebust <trond.myklebust@primarydata.com>2015-08-27 19:17:33 -0400
commit0bdb8fa6ecb4a356f26c6874db51b5488706e088 (patch)
tree65b579349f1b2044cc174c4d514237c63027fa43 /fs
parent1090c3bf81ef12eb22383d4b6627d372ce5115d9 (diff)
downloadlinux-stable-0bdb8fa6ecb4a356f26c6874db51b5488706e088.tar.gz
linux-stable-0bdb8fa6ecb4a356f26c6874db51b5488706e088.tar.bz2
linux-stable-0bdb8fa6ecb4a356f26c6874db51b5488706e088.zip
NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return must notify of layout return
It's not sufficient to just mark the layout segment for layout return. We also need to set the NFS_LAYOUT_RETURN_BEFORE_CLOSE flag in the layout header. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/pnfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 914c1daf08df..4eec540de9ea 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1717,6 +1717,8 @@ pnfs_mark_matching_lsegs_return(struct pnfs_layout_hdr *lo,
lseg->pls_range.length);
set_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags);
mark_lseg_invalid(lseg, tmp_list);
+ set_bit(NFS_LAYOUT_RETURN_BEFORE_CLOSE,
+ &lo->plh_flags);
}
}