diff options
author | Jiri Kosina <jkosina@suse.cz> | 2010-08-10 07:22:08 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-08-10 07:22:08 -0400 |
commit | fb8231a8b139035476f2a8aaac837d0099b66dad (patch) | |
tree | 2875806beb96ea0cdab292146767a5085721dc6a /fs/nfs/write.c | |
parent | 426d31071ac476ea62c62656b242930c17b58c00 (diff) | |
parent | f6cec0ae58c17522a7bc4e2f39dae19f199ab534 (diff) |
Merge branch 'master' into for-next
Conflicts:
arch/arm/mach-omap1/board-nokia770.c
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 9f81bdd91c55..874972d9427c 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -700,7 +700,9 @@ int nfs_flush_incompatible(struct file *file, struct page *page) | |||
700 | req = nfs_page_find_request(page); | 700 | req = nfs_page_find_request(page); |
701 | if (req == NULL) | 701 | if (req == NULL) |
702 | return 0; | 702 | return 0; |
703 | do_flush = req->wb_page != page || req->wb_context != ctx; | 703 | do_flush = req->wb_page != page || req->wb_context != ctx || |
704 | req->wb_lock_context->lockowner != current->files || | ||
705 | req->wb_lock_context->pid != current->tgid; | ||
704 | nfs_release_request(req); | 706 | nfs_release_request(req); |
705 | if (!do_flush) | 707 | if (!do_flush) |
706 | return 0; | 708 | return 0; |
@@ -824,6 +826,7 @@ static int nfs_write_rpcsetup(struct nfs_page *req, | |||
824 | data->args.pages = data->pagevec; | 826 | data->args.pages = data->pagevec; |
825 | data->args.count = count; | 827 | data->args.count = count; |
826 | data->args.context = get_nfs_open_context(req->wb_context); | 828 | data->args.context = get_nfs_open_context(req->wb_context); |
829 | data->args.lock_context = req->wb_lock_context; | ||
827 | data->args.stable = NFS_UNSTABLE; | 830 | data->args.stable = NFS_UNSTABLE; |
828 | if (how & FLUSH_STABLE) { | 831 | if (how & FLUSH_STABLE) { |
829 | data->args.stable = NFS_DATA_SYNC; | 832 | data->args.stable = NFS_DATA_SYNC; |
@@ -1047,9 +1050,9 @@ out: | |||
1047 | void nfs_write_prepare(struct rpc_task *task, void *calldata) | 1050 | void nfs_write_prepare(struct rpc_task *task, void *calldata) |
1048 | { | 1051 | { |
1049 | struct nfs_write_data *data = calldata; | 1052 | struct nfs_write_data *data = calldata; |
1050 | struct nfs_client *clp = (NFS_SERVER(data->inode))->nfs_client; | ||
1051 | 1053 | ||
1052 | if (nfs4_setup_sequence(clp, &data->args.seq_args, | 1054 | if (nfs4_setup_sequence(NFS_SERVER(data->inode), |
1055 | &data->args.seq_args, | ||
1053 | &data->res.seq_res, 1, task)) | 1056 | &data->res.seq_res, 1, task)) |
1054 | return; | 1057 | return; |
1055 | rpc_call_start(task); | 1058 | rpc_call_start(task); |