diff options
author | Qu Wenruo <wqu@suse.com> | 2021-04-06 03:36:00 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2021-04-19 18:25:22 +0300 |
commit | 2f3186d8eed5ef6c9234b05c0e67023fec6edd4d (patch) | |
tree | c22ce7490981d3439807a400b750412108df54c8 /lib/mpi/mpi-sub-ui.c | |
parent | fb686c6824dd6294ca772b92424b8fba666e7d00 (diff) | |
download | linux-2f3186d8eed5ef6c9234b05c0e67023fec6edd4d.tar.xz |
btrfs: introduce end_bio_subpage_eb_writepage() function
The new function, end_bio_subpage_eb_writepage(), will handle the
metadata writeback endio.
The major differences involved are:
- How to grab extent buffer
Now page::private is a pointer to btrfs_subpage, we can no longer grab
extent buffer directly.
Thus we need to use the bv_offset to locate the extent buffer manually
and iterate through the whole range.
- Use btrfs_subpage_end_writeback() caller
This helper will handle the subpage writeback for us.
Since this function is executed under endio context, when grabbing
extent buffers it can't grab eb->refs_lock as that lock is not designed
to be grabbed under hardirq context.
So here introduce a helper, find_extent_buffer_nolock(), for such
situation, and convert find_extent_buffer() to use that helper.
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'lib/mpi/mpi-sub-ui.c')
0 files changed, 0 insertions, 0 deletions