diff options
-rw-r--r-- | fs/nfs/write.c | 12 |
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; |