|
@@ -917,14 +917,13 @@ static int wait_for_concurrent_writes(struct file *file)
|
|
|
__be32
|
|
|
nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
|
|
|
loff_t offset, struct kvec *vec, int vlen,
|
|
|
- unsigned long *cnt, int *stablep)
|
|
|
+ unsigned long *cnt, int stable)
|
|
|
{
|
|
|
struct svc_export *exp;
|
|
|
struct inode *inode;
|
|
|
mm_segment_t oldfs;
|
|
|
__be32 err = 0;
|
|
|
int host_err;
|
|
|
- int stable = *stablep;
|
|
|
int use_wgather;
|
|
|
loff_t pos = offset;
|
|
|
unsigned int pflags = current->flags;
|
|
@@ -945,7 +944,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
|
|
|
use_wgather = (rqstp->rq_vers == 2) && EX_WGATHER(exp);
|
|
|
|
|
|
if (!EX_ISSYNC(exp))
|
|
|
- stable = 0;
|
|
|
+ stable = NFS_UNSTABLE;
|
|
|
|
|
|
if (stable && !use_wgather)
|
|
|
flags |= RWF_SYNC;
|
|
@@ -1014,7 +1013,7 @@ __be32 nfsd_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
|
|
__be32
|
|
|
nfsd_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
|
|
|
loff_t offset, struct kvec *vec, int vlen, unsigned long *cnt,
|
|
|
- int *stablep)
|
|
|
+ int stable)
|
|
|
{
|
|
|
__be32 err = 0;
|
|
|
|
|
@@ -1027,7 +1026,7 @@ nfsd_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
|
|
|
goto out;
|
|
|
trace_write_opened(rqstp, fhp, offset, vlen);
|
|
|
err = nfsd_vfs_write(rqstp, fhp, file, offset, vec, vlen, cnt,
|
|
|
- stablep);
|
|
|
+ stable);
|
|
|
trace_write_io_done(rqstp, fhp, offset, vlen);
|
|
|
} else {
|
|
|
err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_WRITE, &file);
|
|
@@ -1037,7 +1036,7 @@ nfsd_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
|
|
|
trace_write_opened(rqstp, fhp, offset, vlen);
|
|
|
if (cnt)
|
|
|
err = nfsd_vfs_write(rqstp, fhp, file, offset, vec, vlen,
|
|
|
- cnt, stablep);
|
|
|
+ cnt, stable);
|
|
|
trace_write_io_done(rqstp, fhp, offset, vlen);
|
|
|
fput(file);
|
|
|
}
|