udf: support 2048-byte spacing of VRS descriptors on 4K media
authorSteven J. Magnani <steve.magnani@digidescorp.com>
Thu, 11 Jul 2019 13:38:52 +0000 (08:38 -0500)
committerJan Kara <jack@suse.cz>
Wed, 31 Jul 2019 10:04:42 +0000 (12:04 +0200)
commit6fbacb8539a6659d446a9efabb538cfc007c1427
tree5f9649197f4f6df4c766a0a629e11dafc16f5843
parentba54aef0313322d9eea0fca648170d5a3c906de4
udf: support 2048-byte spacing of VRS descriptors on 4K media

Some UDF creators (specifically Microsoft, but perhaps others) mishandle
the ECMA-167 corner case that requires descriptors within a Volume
Recognition Sequence to be placed at 4096-byte intervals on media where
the block size is 4K. Instead, the descriptors are placed at the 2048-
byte interval mandated for media with smaller blocks. This nonconformity
currently prevents Linux from recognizing the filesystem as UDF.

Modify the driver to tolerate a misformatted VRS on 4K media.

[JK: Simplified descriptor checking]
Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Tested-by: Steven J. Magnani <steve@digidescorp.com>
Link: https://lore.kernel.org/r/20190711133852.16887-2-steve@digidescorp.com
Signed-off-by: Jan Kara <jack@suse.cz>
fs/udf/super.c