Btrfs: zero page past end of inline file items
When btrfs_get_extent is reading inline file items for readpage, it needs to copy the inline extent into the page. If the inline extent doesn't cover all of the page, that means there is a hole in the file, or that our file is smaller than one page. readpage does zeroing for the case where the file is smaller than one page, but nobody is currently zeroing for the case where there is a hole after the inline item. This commit changes btrfs_get_extent to zero fill the page past the end of the inline item. Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
50a9b214bc
commit
93c82d5750
|
@ -4233,6 +4233,11 @@ again:
|
|||
map = kmap(page);
|
||||
read_extent_buffer(leaf, map + pg_offset, ptr,
|
||||
copy_size);
|
||||
if (pg_offset + copy_size < PAGE_CACHE_SIZE) {
|
||||
memset(map + pg_offset + copy_size, 0,
|
||||
PAGE_CACHE_SIZE - pg_offset -
|
||||
copy_size);
|
||||
}
|
||||
kunmap(page);
|
||||
}
|
||||
flush_dcache_page(page);
|
||||
|
|
Loading…
Reference in New Issue