aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/pohmelfs/inode.c
diff options
context:
space:
mode:
authorEvgeniy Polyakov <zbr@ioremap.net>2009-03-27 08:04:24 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-04-17 14:06:30 -0400
commitcee9bb2ebdc1697f9be7ee5bdd6867daaa712179 (patch)
tree370cc93935bf1ed377d2e696d3c297e399d9246d /drivers/staging/pohmelfs/inode.c
parente504342448375ffd73dec2b540a5aaf5da6f8439 (diff)
Staging: Pohmelfs: Sync fs before killing it, since dentry cache is shrunk before writeback is invoked via generic_shutdown_super()
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/pohmelfs/inode.c')
-rw-r--r--drivers/staging/pohmelfs/inode.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c
index 3fef09fd712..af99f6620b7 100644
--- a/drivers/staging/pohmelfs/inode.c
+++ b/drivers/staging/pohmelfs/inode.c
@@ -1908,11 +1908,29 @@ static int pohmelfs_get_sb(struct file_system_type *fs_type,
1908 mnt); 1908 mnt);
1909} 1909}
1910 1910
1911/*
1912 * We need this to sync all inodes earlier, since when writeback
1913 * is invoked from the umount/mntput path dcache is already shrunk,
1914 * see generic_shutdown_super(), and no inodes can access the path.
1915 */
1916static void pohmelfs_kill_super(struct super_block *sb)
1917{
1918 struct writeback_control wbc = {
1919 .sync_mode = WB_SYNC_ALL,
1920 .range_start = 0,
1921 .range_end = LLONG_MAX,
1922 .nr_to_write = LONG_MAX,
1923 };
1924 generic_sync_sb_inodes(sb, &wbc);
1925
1926 kill_anon_super(sb);
1927}
1928
1911static struct file_system_type pohmel_fs_type = { 1929static struct file_system_type pohmel_fs_type = {
1912 .owner = THIS_MODULE, 1930 .owner = THIS_MODULE,
1913 .name = "pohmel", 1931 .name = "pohmel",
1914 .get_sb = pohmelfs_get_sb, 1932 .get_sb = pohmelfs_get_sb,
1915 .kill_sb = kill_anon_super, 1933 .kill_sb = pohmelfs_kill_super,
1916}; 1934};
1917 1935
1918/* 1936/*