Deny block cloning is dbuf size doesn't match BP size.
I don't know an easy way to shrink down dbuf size, so just deny block cloning
into dbufs that don't match our BP's size.
This fixes the following situation:
- Create a small file, eg. 1kB of random bytes. Its dbuf will be 1kB.
- Create a larger file, eg. 2kB of random bytes. Its dbuf will be 2kB.
- Truncate the large file to 0. Its dbuf will remain 2kB.
- Clone the small file into the large file. Small file's BP lsize is 1kB, but the large file's dbuf is 2kB.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Pawel Jakub Dawidek <pawel@dawidek.net>
Closes #14825