• Mikulas Patocka's avatar
    dm snapshot: cope with chunk size larger than origin · 8e87b9b8
    Mikulas Patocka authored
    Under some special conditions the snapshot hash_size is calculated as zero.
    This patch instead sets a minimum value of 64, the same as for the
    pending exception table.
    
    rounddown_pow_of_two(0) is an undefined operation (it expands to shift
    by -1).  init_exception_table with an argument of 0 would fail with -ENOMEM.
    
    The way to trigger the problem is to create a snapshot with a chunk size
    that is larger than the origin device.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    8e87b9b8
dm-snap.c 34.1 KB