• Fabian Frederick's avatar
    udf: allow implicit blocksize specification during mount · 70f16cef
    Fabian Frederick authored
    udf_fill_super() used udf_parse_options() to flag UDF_FLAG_BLOCKSIZE_SET
    when blocksize was specified otherwise used 512 bytes
    (bdev_logical_block_size) and 2048 bytes (UDF_DEFAULT_BLOCKSIZE)
    IOW both 1024 and 4096 specifications were required or resulted in
    
    "mount: wrong fs type, bad option, bad superblock on /dev/loop1"
    
    This patch loops through different block values but also updates
    udf_load_vrs() to return -EINVAL instead of 0 when udf_check_vsd()
    fails (and uopt->novrs = 0).
    The later being the reason for the RFC; we have that case when mounting
    a 4kb blocksize against other values but maybe VRS is not mandatory
    there ?
    
    Tested with 512, 1024, 2048 and 4096 blocksize
    Reported-by: default avatarJan Kara <jack@suse.com>
    Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    70f16cef
super.c 66.3 KB