|
@@ -847,9 +847,9 @@ EXPORT_SYMBOL_GPL(nfs_init_cinfo);
|
|
|
*/
|
|
|
void
|
|
|
nfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg,
|
|
|
- struct nfs_commit_info *cinfo)
|
|
|
+ struct nfs_commit_info *cinfo, u32 ds_commit_idx)
|
|
|
{
|
|
|
- if (pnfs_mark_request_commit(req, lseg, cinfo))
|
|
|
+ if (pnfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx))
|
|
|
return;
|
|
|
nfs_request_add_commit_list(req, &cinfo->mds->list, cinfo);
|
|
|
}
|
|
@@ -905,7 +905,8 @@ static void nfs_write_completion(struct nfs_pgio_header *hdr)
|
|
|
}
|
|
|
if (nfs_write_need_commit(hdr)) {
|
|
|
memcpy(&req->wb_verf, &hdr->verf.verifier, sizeof(req->wb_verf));
|
|
|
- nfs_mark_request_commit(req, hdr->lseg, &cinfo);
|
|
|
+ nfs_mark_request_commit(req, hdr->lseg, &cinfo,
|
|
|
+ 0);
|
|
|
goto next;
|
|
|
}
|
|
|
remove_req:
|
|
@@ -1560,14 +1561,15 @@ EXPORT_SYMBOL_GPL(nfs_init_commit);
|
|
|
|
|
|
void nfs_retry_commit(struct list_head *page_list,
|
|
|
struct pnfs_layout_segment *lseg,
|
|
|
- struct nfs_commit_info *cinfo)
|
|
|
+ struct nfs_commit_info *cinfo,
|
|
|
+ u32 ds_commit_idx)
|
|
|
{
|
|
|
struct nfs_page *req;
|
|
|
|
|
|
while (!list_empty(page_list)) {
|
|
|
req = nfs_list_entry(page_list->next);
|
|
|
nfs_list_remove_request(req);
|
|
|
- nfs_mark_request_commit(req, lseg, cinfo);
|
|
|
+ nfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx);
|
|
|
if (!cinfo->dreq) {
|
|
|
dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
|
|
|
dec_bdi_stat(page_file_mapping(req->wb_page)->backing_dev_info,
|
|
@@ -1598,7 +1600,7 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how,
|
|
|
return nfs_initiate_commit(NFS_CLIENT(inode), data, NFS_PROTO(inode),
|
|
|
data->mds_ops, how, 0);
|
|
|
out_bad:
|
|
|
- nfs_retry_commit(head, NULL, cinfo);
|
|
|
+ nfs_retry_commit(head, NULL, cinfo, 0);
|
|
|
cinfo->completion_ops->error_cleanup(NFS_I(inode));
|
|
|
return -ENOMEM;
|
|
|
}
|