Message ID | 20201109115410.605880-2-wqu@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: paramater refactors for data and metadata endio call backs | expand |
On 9.11.20 г. 13:54 ч., Qu Wenruo wrote: > Parameter @phy_offset is the offset against the io_bio->logical (which > is the disk bytenr). > > @phy_offset is mostly for data io to lookup the csum in btrfs_io_bio. > > But for metadata, it's completely useless as metadata stores their own > csum in its btrfs_header. > > Remove this useless parameter from btrfs_validate_metadata_buffer(). > > Just an extra note for parameters @start and @end, they are not utilized > at all for current sectorsize == PAGE_SIZE, as we can grab eb directly > from page. > > But those two parameters are very important for later subpage support, > thus @start/@len are not touched here. > > Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: Nikolay Borisov <nborisov@suse.com>
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index c70a52b44ceb..bd6e357dd280 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -524,7 +524,7 @@ static int check_tree_block_fsid(struct extent_buffer *eb) return 1; } -int btrfs_validate_metadata_buffer(struct btrfs_io_bio *io_bio, u64 phy_offset, +int btrfs_validate_metadata_buffer(struct btrfs_io_bio *io_bio, struct page *page, u64 start, u64 end, int mirror) { diff --git a/fs/btrfs/disk-io.h b/fs/btrfs/disk-io.h index 238b45223f2e..76ede62737fd 100644 --- a/fs/btrfs/disk-io.h +++ b/fs/btrfs/disk-io.h @@ -79,7 +79,7 @@ void btrfs_btree_balance_dirty(struct btrfs_fs_info *fs_info); void btrfs_btree_balance_dirty_nodelay(struct btrfs_fs_info *fs_info); void btrfs_drop_and_free_fs_root(struct btrfs_fs_info *fs_info, struct btrfs_root *root); -int btrfs_validate_metadata_buffer(struct btrfs_io_bio *io_bio, u64 phy_offset, +int btrfs_validate_metadata_buffer(struct btrfs_io_bio *io_bio, struct page *page, u64 start, u64 end, int mirror); blk_status_t btrfs_submit_metadata_bio(struct inode *inode, struct bio *bio, diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index b4381d7ca52c..bd5a22bfee68 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -2928,7 +2928,7 @@ static void end_bio_extent_readpage(struct bio *bio) start, end, mirror); else ret = btrfs_validate_metadata_buffer(io_bio, - offset, page, start, end, mirror); + page, start, end, mirror); if (ret) uptodate = 0; else
Parameter @phy_offset is the offset against the io_bio->logical (which is the disk bytenr). @phy_offset is mostly for data io to lookup the csum in btrfs_io_bio. But for metadata, it's completely useless as metadata stores their own csum in its btrfs_header. Remove this useless parameter from btrfs_validate_metadata_buffer(). Just an extra note for parameters @start and @end, they are not utilized at all for current sectorsize == PAGE_SIZE, as we can grab eb directly from page. But those two parameters are very important for later subpage support, thus @start/@len are not touched here. Signed-off-by: Qu Wenruo <wqu@suse.com> --- fs/btrfs/disk-io.c | 2 +- fs/btrfs/disk-io.h | 2 +- fs/btrfs/extent_io.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)