aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf/partition.c
diff options
context:
space:
mode:
authorNamjae Jeon <linkinjeon@gmail.com>2011-10-23 06:28:32 -0400
committerJan Kara <jack@suse.cz>2011-10-31 18:49:30 -0400
commit3080a74ea39eece6ac21aae768c48ab8b1f89ac1 (patch)
treec78cfad4ca9387b11bb7cef7b050c475ca25f592 /fs/udf/partition.c
parent6360e21f943172bb71772ec150b96a9e787a535f (diff)
udf: Skip mirror metadata FE loading when metadata FE is ok
It is not necessary to load mirror metadata FE when metadata FE is OK. So try to read it only the first time udf_get_pblock_meta25() fails to map the block from metadata FE. Signed-off-by: Ashish Sangwan <ashishsangwan2@gmail.com> Signed-off-by: Namjae Jeon <linkinjeon@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf/partition.c')
-rw-r--r--fs/udf/partition.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/udf/partition.c b/fs/udf/partition.c
index f3e472c67709..b526f25c04c9 100644
--- a/fs/udf/partition.c
+++ b/fs/udf/partition.c
@@ -321,8 +321,14 @@ uint32_t udf_get_pblock_meta25(struct super_block *sb, uint32_t block,
321 /* We shouldn't mount such media... */ 321 /* We shouldn't mount such media... */
322 BUG_ON(!inode); 322 BUG_ON(!inode);
323 retblk = udf_try_read_meta(inode, block, partition, offset); 323 retblk = udf_try_read_meta(inode, block, partition, offset);
324 if (retblk == 0xFFFFFFFF) { 324 if (retblk == 0xFFFFFFFF && mdata->s_metadata_fe) {
325 udf_warn(sb, "error reading from METADATA, trying to read from MIRROR\n"); 325 udf_warn(sb, "error reading from METADATA, trying to read from MIRROR\n");
326 if (!mdata->s_mirror_loaded_flag) {
327 mdata->s_mirror_fe = udf_find_metadata_inode_efe(sb,
328 mdata->s_mirror_file_loc, map->s_partition_num);
329 mdata->s_mirror_loaded_flag = 1;
330 }
331
326 inode = mdata->s_mirror_fe; 332 inode = mdata->s_mirror_fe;
327 if (!inode) 333 if (!inode)
328 return 0xFFFFFFFF; 334 return 0xFFFFFFFF;