Skip to content

Commit

Permalink
btrfs: unlock all the pages with successful inline extent creation
Browse files Browse the repository at this point in the history
Since 4750af3 ("btrfs: prevent extent_clear_unlock_delalloc() to
unlock page not locked by __process_pages_contig()") we have been
unlocking the locked page manually instead of via
extent_clear_unlock_delalloc() because of subpage blocksize support.
However we actually disable inline extent creation for subpage blocksize
support, so this behavior isn't necessary.  Remove this code and
comment, if at some point the subpage blocksize code grows support for
inline extents this can be re-evaluated.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
josefbacik authored and kdave committed May 7, 2024
1 parent 6eecfa2 commit 0332967
Showing 1 changed file with 1 addition and 14 deletions.
15 changes: 1 addition & 14 deletions fs/btrfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1358,24 +1358,11 @@ static noinline int cow_file_range(struct btrfs_inode *inode,
* range.
*/
extent_clear_unlock_delalloc(inode, start, end,
locked_page,
NULL,
EXTENT_LOCKED | EXTENT_DELALLOC |
EXTENT_DELALLOC_NEW | EXTENT_DEFRAG |
EXTENT_DO_ACCOUNTING, PAGE_UNLOCK |
PAGE_START_WRITEBACK | PAGE_END_WRITEBACK);
/*
* locked_page is locked by the caller of
* writepage_delalloc(), not locked by
* __process_pages_contig().
*
* We can't let __process_pages_contig() to unlock it,
* as it doesn't have any subpage::writers recorded.
*
* Here we manually unlock the page, since the caller
* can't determine if it's an inline extent or a
* compressed extent.
*/
unlock_page(locked_page);
ret = 1;
goto done;
} else if (ret < 0) {
Expand Down

0 comments on commit 0332967

Please sign in to comment.