|
@@ -1344,6 +1344,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
|
|
|
udf_err(sb, "error loading logical volume descriptor: "
|
|
|
"Partition table too long (%u > %lu)\n", table_len,
|
|
|
sb->s_blocksize - sizeof(*lvd));
|
|
|
+ ret = 1;
|
|
|
goto out_bh;
|
|
|
}
|
|
|
|
|
@@ -1388,8 +1389,10 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
|
|
|
UDF_ID_SPARABLE,
|
|
|
strlen(UDF_ID_SPARABLE))) {
|
|
|
if (udf_load_sparable_map(sb, map,
|
|
|
- (struct sparablePartitionMap *)gpm) < 0)
|
|
|
+ (struct sparablePartitionMap *)gpm) < 0) {
|
|
|
+ ret = 1;
|
|
|
goto out_bh;
|
|
|
+ }
|
|
|
} else if (!strncmp(upm2->partIdent.ident,
|
|
|
UDF_ID_METADATA,
|
|
|
strlen(UDF_ID_METADATA))) {
|
|
@@ -2000,6 +2003,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
|
|
|
if (!silent)
|
|
|
pr_notice("Rescanning with blocksize %d\n",
|
|
|
UDF_DEFAULT_BLOCKSIZE);
|
|
|
+ brelse(sbi->s_lvid_bh);
|
|
|
+ sbi->s_lvid_bh = NULL;
|
|
|
uopt.blocksize = UDF_DEFAULT_BLOCKSIZE;
|
|
|
ret = udf_load_vrs(sb, &uopt, silent, &fileset);
|
|
|
}
|