mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-04 04:04:19 +00:00
btrfs: remove unused btrfs_folio_start_writer_lock()
This function is not really suitable to lock a folio, as it lacks the proper mapping checks, thus the locked folio may not even belong to btrfs. And due to the above reason, the last user inside lock_delalloc_folios() is already removed, and we can remove this function. Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
70958a949d
commit
8511074c42
@ -295,26 +295,6 @@ static void btrfs_subpage_clamp_range(struct folio *folio, u64 *start, u32 *len)
|
||||
orig_start + orig_len) - *start;
|
||||
}
|
||||
|
||||
static void btrfs_subpage_start_writer(const struct btrfs_fs_info *fs_info,
|
||||
struct folio *folio, u64 start, u32 len)
|
||||
{
|
||||
struct btrfs_subpage *subpage = folio_get_private(folio);
|
||||
const int start_bit = subpage_calc_start_bit(fs_info, folio, locked, start, len);
|
||||
const int nbits = (len >> fs_info->sectorsize_bits);
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
btrfs_subpage_assert(fs_info, folio, start, len);
|
||||
|
||||
spin_lock_irqsave(&subpage->lock, flags);
|
||||
ASSERT(atomic_read(&subpage->readers) == 0);
|
||||
ASSERT(bitmap_test_range_all_zero(subpage->bitmaps, start_bit, nbits));
|
||||
bitmap_set(subpage->bitmaps, start_bit, nbits);
|
||||
ret = atomic_add_return(nbits, &subpage->writers);
|
||||
ASSERT(ret == nbits);
|
||||
spin_unlock_irqrestore(&subpage->lock, flags);
|
||||
}
|
||||
|
||||
static bool btrfs_subpage_end_and_test_writer(const struct btrfs_fs_info *fs_info,
|
||||
struct folio *folio, u64 start, u32 len)
|
||||
{
|
||||
@ -351,33 +331,6 @@ static bool btrfs_subpage_end_and_test_writer(const struct btrfs_fs_info *fs_inf
|
||||
return last;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lock a folio for delalloc page writeback.
|
||||
*
|
||||
* Return -EAGAIN if the page is not properly initialized.
|
||||
* Return 0 with the page locked, and writer counter updated.
|
||||
*
|
||||
* Even with 0 returned, the page still need extra check to make sure
|
||||
* it's really the correct page, as the caller is using
|
||||
* filemap_get_folios_contig(), which can race with page invalidating.
|
||||
*/
|
||||
int btrfs_folio_start_writer_lock(const struct btrfs_fs_info *fs_info,
|
||||
struct folio *folio, u64 start, u32 len)
|
||||
{
|
||||
if (unlikely(!fs_info) || !btrfs_is_subpage(fs_info, folio->mapping)) {
|
||||
folio_lock(folio);
|
||||
return 0;
|
||||
}
|
||||
folio_lock(folio);
|
||||
if (!folio_test_private(folio) || !folio_get_private(folio)) {
|
||||
folio_unlock(folio);
|
||||
return -EAGAIN;
|
||||
}
|
||||
btrfs_subpage_clamp_range(folio, &start, &len);
|
||||
btrfs_subpage_start_writer(fs_info, folio, start, len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle different locked folios:
|
||||
*
|
||||
|
@ -100,8 +100,6 @@ void btrfs_subpage_start_reader(const struct btrfs_fs_info *fs_info,
|
||||
void btrfs_subpage_end_reader(const struct btrfs_fs_info *fs_info,
|
||||
struct folio *folio, u64 start, u32 len);
|
||||
|
||||
int btrfs_folio_start_writer_lock(const struct btrfs_fs_info *fs_info,
|
||||
struct folio *folio, u64 start, u32 len);
|
||||
void btrfs_folio_end_writer_lock(const struct btrfs_fs_info *fs_info,
|
||||
struct folio *folio, u64 start, u32 len);
|
||||
void btrfs_folio_set_writer_lock(const struct btrfs_fs_info *fs_info,
|
||||
|
Loading…
Reference in New Issue
Block a user