diff options
Diffstat (limited to 'fs/logfs/file.c')
| -rw-r--r-- | fs/logfs/file.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/logfs/file.c b/fs/logfs/file.c index c2ad7028def4..b548c87a86f1 100644 --- a/fs/logfs/file.c +++ b/fs/logfs/file.c @@ -219,11 +219,20 @@ long logfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg)  	}  } -int logfs_fsync(struct file *file, int datasync) +int logfs_fsync(struct file *file, loff_t start, loff_t end, int datasync)  {  	struct super_block *sb = file->f_mapping->host->i_sb; +	struct inode *inode = file->f_mapping->host; +	int ret; + +	ret = filemap_write_and_wait_range(inode->i_mapping, start, end); +	if (ret) +		return ret; +	mutex_lock(&inode->i_mutex);  	logfs_write_anchor(sb); +	mutex_unlock(&inode->i_mutex); +  	return 0;  }  |