diff options
| -rw-r--r-- | fs/fuse/file.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 69de9b860c39..530b1e804a32 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c | |||
| @@ -308,6 +308,12 @@ static int fuse_open(struct inode *inode, struct file *file) | |||
| 308 | 308 | ||
| 309 | static int fuse_release(struct inode *inode, struct file *file) | 309 | static int fuse_release(struct inode *inode, struct file *file) |
| 310 | { | 310 | { |
| 311 | struct fuse_conn *fc = get_fuse_conn(inode); | ||
| 312 | |||
| 313 | /* see fuse_vma_close() for !writeback_cache case */ | ||
| 314 | if (fc->writeback_cache) | ||
| 315 | filemap_write_and_wait(file->f_mapping); | ||
| 316 | |||
| 311 | if (test_bit(FUSE_I_MTIME_DIRTY, &get_fuse_inode(inode)->state)) | 317 | if (test_bit(FUSE_I_MTIME_DIRTY, &get_fuse_inode(inode)->state)) |
| 312 | fuse_flush_mtime(file, true); | 318 | fuse_flush_mtime(file, true); |
| 313 | 319 | ||
