mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 07:10:27 +00:00
btrfs: convert get_next_extent_buffer() to take a folio
The old page API is being gradually replaced and converted to use folio to improve code readability and avoid repeated conversion between page and folio. Use folio_pos instead of page_offset, which is more consistent with folio usage. Signed-off-by: Li Zetao <lizetao1@huawei.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
266a9361a4
commit
d4aeb5f7a7
@ -4041,17 +4041,17 @@ void memmove_extent_buffer(const struct extent_buffer *dst,
|
||||
|
||||
#define GANG_LOOKUP_SIZE 16
|
||||
static struct extent_buffer *get_next_extent_buffer(
|
||||
const struct btrfs_fs_info *fs_info, struct page *page, u64 bytenr)
|
||||
const struct btrfs_fs_info *fs_info, struct folio *folio, u64 bytenr)
|
||||
{
|
||||
struct extent_buffer *gang[GANG_LOOKUP_SIZE];
|
||||
struct extent_buffer *found = NULL;
|
||||
u64 page_start = page_offset(page);
|
||||
u64 cur = page_start;
|
||||
u64 folio_start = folio_pos(folio);
|
||||
u64 cur = folio_start;
|
||||
|
||||
ASSERT(in_range(bytenr, page_start, PAGE_SIZE));
|
||||
ASSERT(in_range(bytenr, folio_start, PAGE_SIZE));
|
||||
lockdep_assert_held(&fs_info->buffer_lock);
|
||||
|
||||
while (cur < page_start + PAGE_SIZE) {
|
||||
while (cur < folio_start + PAGE_SIZE) {
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
@ -4063,7 +4063,7 @@ static struct extent_buffer *get_next_extent_buffer(
|
||||
goto out;
|
||||
for (i = 0; i < ret; i++) {
|
||||
/* Already beyond page end */
|
||||
if (gang[i]->start >= page_start + PAGE_SIZE)
|
||||
if (gang[i]->start >= folio_start + PAGE_SIZE)
|
||||
goto out;
|
||||
/* Found one */
|
||||
if (gang[i]->start >= bytenr) {
|
||||
@ -4096,7 +4096,7 @@ static int try_release_subpage_extent_buffer(struct page *page)
|
||||
* with spinlock rather than RCU.
|
||||
*/
|
||||
spin_lock(&fs_info->buffer_lock);
|
||||
eb = get_next_extent_buffer(fs_info, page, cur);
|
||||
eb = get_next_extent_buffer(fs_info, page_folio(page), cur);
|
||||
if (!eb) {
|
||||
/* No more eb in the page range after or at cur */
|
||||
spin_unlock(&fs_info->buffer_lock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user