|
@@ -257,6 +257,23 @@ v9fs_file_write(struct file *filp, const char __user * data,
|
|
|
return total;
|
|
|
}
|
|
|
|
|
|
+static int v9fs_file_fsync(struct file *filp, struct dentry *dentry,
|
|
|
+ int datasync)
|
|
|
+{
|
|
|
+ struct p9_fid *fid;
|
|
|
+ struct p9_wstat wstat;
|
|
|
+ int retval;
|
|
|
+
|
|
|
+ P9_DPRINTK(P9_DEBUG_VFS, "filp %p dentry %p datasync %x\n", filp,
|
|
|
+ dentry, datasync);
|
|
|
+
|
|
|
+ fid = filp->private_data;
|
|
|
+ v9fs_blank_wstat(&wstat);
|
|
|
+
|
|
|
+ retval = p9_client_wstat(fid, &wstat);
|
|
|
+ return retval;
|
|
|
+}
|
|
|
+
|
|
|
static const struct file_operations v9fs_cached_file_operations = {
|
|
|
.llseek = generic_file_llseek,
|
|
|
.read = do_sync_read,
|
|
@@ -266,6 +283,7 @@ static const struct file_operations v9fs_cached_file_operations = {
|
|
|
.release = v9fs_dir_release,
|
|
|
.lock = v9fs_file_lock,
|
|
|
.mmap = generic_file_readonly_mmap,
|
|
|
+ .fsync = v9fs_file_fsync,
|
|
|
};
|
|
|
|
|
|
const struct file_operations v9fs_file_operations = {
|
|
@@ -276,4 +294,5 @@ const struct file_operations v9fs_file_operations = {
|
|
|
.release = v9fs_dir_release,
|
|
|
.lock = v9fs_file_lock,
|
|
|
.mmap = generic_file_readonly_mmap,
|
|
|
+ .fsync = v9fs_file_fsync,
|
|
|
};
|