Fix false positives for small files
Fix false positives for small files

It seems that btrfs saves files <=2048 bytes in a different way. Result is a "broken" list of extents which cannot be used for comparing,
so that even files with different sizes resulted in the same checksum. With this change, the size is an essential part of the checksum.
I didn't see any false positive anymore.

    $ for i in $(seq 9000); do dd bs=$i of=/tmp/$(printf "ff-%07d.dat" $i) if=/dev/urandom count=1; done

    a1ab2bbd8df06d05aa4a9507d8caa1886fbd0cef /tmp/ff-0000001.dat
    a1ab2bbd8df06d05aa4a9507d8caa1886fbd0cef /tmp/ff-0000002.dat
    a1ab2bbd8df06d05aa4a9507d8caa1886fbd0cef /tmp/ff-0000003.dat
    [...]
    a1ab2bbd8df06d05aa4a9507d8caa1886fbd0cef /tmp/ff-0002046.dat
    a1ab2bbd8df06d05aa4a9507d8caa1886fbd0cef /tmp/ff-0002047.dat
    a1ab2bbd8df06d05aa4a9507d8caa1886fbd0cef /tmp/ff-0002048.dat
    a99c8d0c242e0dd2a9a445ce1ceba78afb515e28 /tmp/ff-0002049.dat
    1470d563f96af56a1d42525c4e476d91fa61b0f2 /tmp/ff-0002050.dat
    b17813f50aa3eeb9986c36887910bdff85cdd579 /tmp/ff-0002051.dat

pwaller/fienode