diff options
-rw-r--r-- | fs/udf/super.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c index b9e719de0704..28ed3f5ebd70 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -688,8 +688,12 @@ static int udf_check_anchor_block(struct super_block *sb, sector_t block, | |||
688 | uint16_t ident; | 688 | uint16_t ident; |
689 | uint32_t location; | 689 | uint32_t location; |
690 | 690 | ||
691 | if (varconv) | 691 | if (varconv) { |
692 | if (udf_fixed_to_variable(block) >= | ||
693 | sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits) | ||
694 | return 0; | ||
692 | bh = sb_bread(sb, udf_fixed_to_variable(block)); | 695 | bh = sb_bread(sb, udf_fixed_to_variable(block)); |
696 | } | ||
693 | else | 697 | else |
694 | bh = sb_bread(sb, block); | 698 | bh = sb_bread(sb, block); |
695 | 699 | ||