diff options
-rw-r--r-- | fs/bfs/inode.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index 1d2bfafcad7c..cc4062d12ca2 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c | |||
@@ -390,6 +390,18 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
390 | - le32_to_cpu(bfs_sb->s_start)) >> BFS_BSIZE_BITS; | 390 | - le32_to_cpu(bfs_sb->s_start)) >> BFS_BSIZE_BITS; |
391 | info->si_freei = 0; | 391 | info->si_freei = 0; |
392 | info->si_lf_eblk = 0; | 392 | info->si_lf_eblk = 0; |
393 | |||
394 | /* can we read the last block? */ | ||
395 | bh = sb_bread(s, info->si_blocks - 1); | ||
396 | if (!bh) { | ||
397 | printf("Last block not available: %lu\n", info->si_blocks - 1); | ||
398 | iput(inode); | ||
399 | ret = -EIO; | ||
400 | kfree(info->si_imap); | ||
401 | goto out; | ||
402 | } | ||
403 | brelse(bh); | ||
404 | |||
393 | bh = NULL; | 405 | bh = NULL; |
394 | for (i = BFS_ROOT_INO; i <= info->si_lasti; i++) { | 406 | for (i = BFS_ROOT_INO; i <= info->si_lasti; i++) { |
395 | struct bfs_inode *di; | 407 | struct bfs_inode *di; |