• Naohiro Aota's avatar
    btrfs: drop unnecessary ASSERT from btrfs_submit_direct() · 42b5d73b
    Naohiro Aota authored
    When on SINGLE block group, btrfs_get_io_geometry() will return "the
    size of the block group - the offset of the logical address within the
    block group" as geom.len. Since we allow up to 8 GiB zone size on zoned
    filesystem, we can have up to 8 GiB block group, so can have up to 8 GiB
    geom.len as well. With this setup, we easily hit the "ASSERT(geom.len <=
    INT_MAX);".
    
    The ASSERT looks like to guard btrfs_bio_clone_partial() and bio_trim()
    which both take "int" (now u64 due to the previous patch). So to be
    precise the ASSERT should check if clone_len <= UINT_MAX. But actually,
    clone_len is already capped by bio.bi_iter.bi_size which is unsigned
    int. So the ASSERT is not necessary.
    
    Drop the ASSERT and properly compare submit_len and geom.len in u64.
    Then, let the implicit casting to convert it to u64.
    Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    42b5d73b
inode.c 305 KB