diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-06-05 18:32:03 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-06-05 18:38:47 -0400 |
commit | 9bce008bae8b57bc7b007bcc2071d1247a527120 (patch) | |
tree | a9321dc576008102345f3b7d5df7859e5155233e /include | |
parent | cdf66442fab82916fe38f928b4f91815195a294c (diff) |
NFS: Fix a commit bug
The new commit code fails to copy the verifier into the wb_verf field
of _all_ the nfs_page structures; it only copies it into the first entry.
The consequence is that most requests end up failing to match in
nfs_commit_release.
Fix is to copy the verifier into the req->wb_verf field in
nfs_write_completion.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Fred Isaman <iisaman@netapp.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nfs_xdr.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 7519baef025b..8aadd90b808a 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -1237,6 +1237,7 @@ struct nfs_pgio_header { | |||
1237 | struct list_head rpc_list; | 1237 | struct list_head rpc_list; |
1238 | atomic_t refcnt; | 1238 | atomic_t refcnt; |
1239 | struct nfs_page *req; | 1239 | struct nfs_page *req; |
1240 | struct nfs_writeverf *verf; | ||
1240 | struct pnfs_layout_segment *lseg; | 1241 | struct pnfs_layout_segment *lseg; |
1241 | loff_t io_start; | 1242 | loff_t io_start; |
1242 | const struct rpc_call_ops *mds_ops; | 1243 | const struct rpc_call_ops *mds_ops; |
@@ -1274,6 +1275,7 @@ struct nfs_write_data { | |||
1274 | struct nfs_write_header { | 1275 | struct nfs_write_header { |
1275 | struct nfs_pgio_header header; | 1276 | struct nfs_pgio_header header; |
1276 | struct nfs_write_data rpc_data; | 1277 | struct nfs_write_data rpc_data; |
1278 | struct nfs_writeverf verf; | ||
1277 | }; | 1279 | }; |
1278 | 1280 | ||
1279 | struct nfs_mds_commit_info { | 1281 | struct nfs_mds_commit_info { |