Messages in this thread | | | Date | Mon, 3 Oct 2011 17:16:15 +0530 | Subject | UDF: alternate anchor block detection | From | Amit Sahrawat <> |
| |
While mounting UDF media, when the primary AVDP is not found at block 256, UDF code tries to read-in the alternate AVDP. In the function udf_find_anchor, udf_scan_anchors is called 3 times, where each call to udf_scan_anchors read 12 blocks. In case there is no alternate AVDP stored, a total of 36 blocks are read before mount fails - causing time delay for Mount Failure.
1) After first call to udf_scan_anchors and before the second call there is varconv conversion, for the older drivers, which skips 7 blocks after every 32 blocks. What are these older drivers? Do we still require this code?
2) After varconv conversion, why is there a third call to udf_scan_anchors? In the 1st call and 3rd call to udf_scan_anchors, exactly same blocks are read, so this 3rd call seems to be redundant.
I suggest this modified code for udf_find_anchor :- lastblock = udf_scan_anchors(sb,udf_variable_to_fixed(sbi->s_last_block),fileset); if (lastblock) goto out; else { /* VARCONV didn't help. Clear it. */ UDF_CLEAR_FLAG(sb, UDF_FLAG_VARCONV); return 0; }
Please share your opinion to the above '2' points.
Thanks & Regards, Amit Sahrawat
| |