|
@@ -780,12 +780,9 @@ static inline int nfsd_dosync(struct file *filp, struct dentry *dp,
|
|
int (*fsync) (struct file *, struct dentry *, int);
|
|
int (*fsync) (struct file *, struct dentry *, int);
|
|
int err;
|
|
int err;
|
|
|
|
|
|
- err = filemap_fdatawrite(inode->i_mapping);
|
|
|
|
|
|
+ err = filemap_write_and_wait(inode->i_mapping);
|
|
if (err == 0 && fop && (fsync = fop->fsync))
|
|
if (err == 0 && fop && (fsync = fop->fsync))
|
|
err = fsync(filp, dp, 0);
|
|
err = fsync(filp, dp, 0);
|
|
- if (err == 0)
|
|
|
|
- err = filemap_fdatawait(inode->i_mapping);
|
|
|
|
-
|
|
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|