diff options
Diffstat (limited to 'fs/bfs/inode.c')
-rw-r--r-- | fs/bfs/inode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index cc4062d12ca2..4cf3d269e271 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c | |||
@@ -30,6 +30,7 @@ MODULE_LICENSE("GPL"); | |||
30 | #define dprintf(x...) | 30 | #define dprintf(x...) |
31 | #endif | 31 | #endif |
32 | 32 | ||
33 | static void bfs_write_super(struct super_block *s); | ||
33 | void dump_imap(const char *prefix, struct super_block *s); | 34 | void dump_imap(const char *prefix, struct super_block *s); |
34 | 35 | ||
35 | struct inode *bfs_iget(struct super_block *sb, unsigned long ino) | 36 | struct inode *bfs_iget(struct super_block *sb, unsigned long ino) |
@@ -216,6 +217,9 @@ static void bfs_put_super(struct super_block *s) | |||
216 | if (!info) | 217 | if (!info) |
217 | return; | 218 | return; |
218 | 219 | ||
220 | if (s->s_dirt) | ||
221 | bfs_write_super(s); | ||
222 | |||
219 | brelse(info->si_sbh); | 223 | brelse(info->si_sbh); |
220 | mutex_destroy(&info->bfs_lock); | 224 | mutex_destroy(&info->bfs_lock); |
221 | kfree(info->si_imap); | 225 | kfree(info->si_imap); |