aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/write.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 7f8732e3198..1af4d82c495 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -872,10 +872,14 @@ static int nfs_write_rpcsetup(struct nfs_page *req,
872 data->args.context = get_nfs_open_context(req->wb_context); 872 data->args.context = get_nfs_open_context(req->wb_context);
873 data->args.lock_context = req->wb_lock_context; 873 data->args.lock_context = req->wb_lock_context;
874 data->args.stable = NFS_UNSTABLE; 874 data->args.stable = NFS_UNSTABLE;
875 if (how & (FLUSH_STABLE | FLUSH_COND_STABLE)) { 875 switch (how & (FLUSH_STABLE | FLUSH_COND_STABLE)) {
876 data->args.stable = NFS_DATA_SYNC; 876 case 0:
877 if (!nfs_need_commit(NFS_I(inode))) 877 break;
878 data->args.stable = NFS_FILE_SYNC; 878 case FLUSH_COND_STABLE:
879 if (nfs_need_commit(NFS_I(inode)))
880 break;
881 default:
882 data->args.stable = NFS_FILE_SYNC;
879 } 883 }
880 884
881 data->res.fattr = &data->fattr; 885 data->res.fattr = &data->fattr;