aboutsummaryrefslogtreecommitdiffstats
path: root/fs/exofs/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/exofs/file.c')
-rw-r--r--fs/exofs/file.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/fs/exofs/file.c b/fs/exofs/file.c
index 68cb23e3bb98..45ca323d8363 100644
--- a/fs/exofs/file.c
+++ b/fs/exofs/file.c
@@ -45,26 +45,8 @@ static int exofs_release_file(struct inode *inode, struct file *filp)
45static int exofs_file_fsync(struct file *filp, int datasync) 45static int exofs_file_fsync(struct file *filp, int datasync)
46{ 46{
47 int ret; 47 int ret;
48 struct inode *inode = filp->f_mapping->host;
49 struct writeback_control wbc = {
50 .sync_mode = WB_SYNC_ALL,
51 .nr_to_write = 0, /* metadata-only; caller takes care of data */
52 };
53 struct super_block *sb;
54
55 if (!(inode->i_state & I_DIRTY))
56 return 0;
57 if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
58 return 0;
59
60 ret = sync_inode(inode, &wbc);
61
62 /* This is a good place to write the sb */
63 /* TODO: Sechedule an sb-sync on create */
64 sb = inode->i_sb;
65 if (sb->s_dirt)
66 exofs_sync_fs(sb, 1);
67 48
49 ret = sync_inode_metadata(filp->f_mapping->host, 1);
68 return ret; 50 return ret;
69} 51}
70 52