|
@@ -105,8 +105,11 @@ static void nfs_writedata_free(struct nfs_write_data *wdata)
|
|
|
call_rcu_bh(&wdata->task.u.tk_rcu, nfs_writedata_rcu_free);
|
|
|
}
|
|
|
|
|
|
-void nfs_writedata_release(void *wdata)
|
|
|
+void nfs_writedata_release(void *data)
|
|
|
{
|
|
|
+ struct nfs_write_data *wdata = data;
|
|
|
+
|
|
|
+ put_nfs_open_context(wdata->args.context);
|
|
|
nfs_writedata_free(wdata);
|
|
|
}
|
|
|
|
|
@@ -816,7 +819,7 @@ static void nfs_write_rpcsetup(struct nfs_page *req,
|
|
|
data->args.pgbase = req->wb_pgbase + offset;
|
|
|
data->args.pages = data->pagevec;
|
|
|
data->args.count = count;
|
|
|
- data->args.context = req->wb_context;
|
|
|
+ data->args.context = get_nfs_open_context(req->wb_context);
|
|
|
data->args.stable = NFS_UNSTABLE;
|
|
|
if (how & FLUSH_STABLE) {
|
|
|
data->args.stable = NFS_DATA_SYNC;
|
|
@@ -1153,8 +1156,11 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data)
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
|
|
|
-void nfs_commit_release(void *wdata)
|
|
|
+void nfs_commit_release(void *data)
|
|
|
{
|
|
|
+ struct nfs_write_data *wdata = data;
|
|
|
+
|
|
|
+ put_nfs_open_context(wdata->args.context);
|
|
|
nfs_commit_free(wdata);
|
|
|
}
|
|
|
|
|
@@ -1197,6 +1203,7 @@ static void nfs_commit_rpcsetup(struct list_head *head,
|
|
|
/* Note: we always request a commit of the entire inode */
|
|
|
data->args.offset = 0;
|
|
|
data->args.count = 0;
|
|
|
+ data->args.context = get_nfs_open_context(first->wb_context);
|
|
|
data->res.count = 0;
|
|
|
data->res.fattr = &data->fattr;
|
|
|
data->res.verf = &data->verf;
|