X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=fs%2Fnfsd%2Fvfs.c;h=c165a6403df03e52219925b875ef420adcbd331a;hb=db1dd4d376134eba0e08af523b61cc566a4ea1cd;hp=6e50aaa56ca25222ab71e0b92cdd66609b5c5b61;hpb=684999149002dd046269666a390458e0acb38280;p=deliverable%2Flinux.git diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 6e50aaa56ca2..c165a6403df0 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -998,8 +998,11 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, if (!EX_ISSYNC(exp)) stable = 0; - if (stable && !EX_WGATHER(exp)) + if (stable && !EX_WGATHER(exp)) { + spin_lock(&file->f_lock); file->f_flags |= O_SYNC; + spin_unlock(&file->f_lock); + } /* Write the data. */ oldfs = get_fs(); set_fs(KERNEL_DS);