um: hostfs: Fix writeback
authorRichard Weinberger <richard@nod.at>
Sun, 4 Aug 2013 17:23:51 +0000 (17:23 +0000)
committerRichard Weinberger <richard@nod.at>
Sat, 7 Sep 2013 08:38:29 +0000 (10:38 +0200)
We have to implement ->release() and trigger writeback from it.
Otherwise we might lose dirty pages at munmap().

Signed-off-by: Richard Weinberger <richard@nod.at>
fs/hostfs/hostfs_kern.c

index cddb052..2543728 100644 (file)
@@ -361,6 +361,13 @@ retry:
        return 0;
 }
 
+static int hostfs_file_release(struct inode *inode, struct file *file)
+{
+       filemap_write_and_wait(inode->i_mapping);
+
+       return 0;
+}
+
 int hostfs_fsync(struct file *file, loff_t start, loff_t end, int datasync)
 {
        struct inode *inode = file->f_mapping->host;
@@ -386,7 +393,7 @@ static const struct file_operations hostfs_file_fops = {
        .write          = do_sync_write,
        .mmap           = generic_file_mmap,
        .open           = hostfs_file_open,
-       .release        = NULL,
+       .release        = hostfs_file_release,
        .fsync          = hostfs_fsync,
 };