|
@@ -308,6 +308,12 @@ static int fuse_open(struct inode *inode, struct file *file)
|
|
|
|
|
|
static int fuse_release(struct inode *inode, struct file *file)
|
|
|
{
|
|
|
+ struct fuse_conn *fc = get_fuse_conn(inode);
|
|
|
+
|
|
|
+ /* see fuse_vma_close() for !writeback_cache case */
|
|
|
+ if (fc->writeback_cache)
|
|
|
+ filemap_write_and_wait(file->f_mapping);
|
|
|
+
|
|
|
if (test_bit(FUSE_I_MTIME_DIRTY, &get_fuse_inode(inode)->state))
|
|
|
fuse_flush_mtime(file, true);
|
|
|
|