mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
Merge tag 'folio-5.18b' of git://git.infradead.org/users/willy/pagecache
Pull filesystem folio updates from Matthew Wilcox: "Primarily this series converts some of the address_space operations to take a folio instead of a page. Notably: - a_ops->is_partially_uptodate() takes a folio instead of a page and changes the type of the 'from' and 'count' arguments to make it obvious they're bytes. - a_ops->invalidatepage() becomes ->invalidate_folio() and has a similar type change. - a_ops->launder_page() becomes ->launder_folio() - a_ops->set_page_dirty() becomes ->dirty_folio() and adds the address_space as an argument. There are a couple of other misc changes up front that weren't worth separating into their own pull request" * tag 'folio-5.18b' of git://git.infradead.org/users/willy/pagecache: (53 commits) fs: Remove aops ->set_page_dirty fb_defio: Use noop_dirty_folio() fs: Convert __set_page_dirty_no_writeback to noop_dirty_folio fs: Convert __set_page_dirty_buffers to block_dirty_folio nilfs: Convert nilfs_set_page_dirty() to nilfs_dirty_folio() mm: Convert swap_set_page_dirty() to swap_dirty_folio() ubifs: Convert ubifs_set_page_dirty to ubifs_dirty_folio f2fs: Convert f2fs_set_node_page_dirty to f2fs_dirty_node_folio f2fs: Convert f2fs_set_data_page_dirty to f2fs_dirty_data_folio f2fs: Convert f2fs_set_meta_page_dirty to f2fs_dirty_meta_folio afs: Convert afs_dir_set_page_dirty() to afs_dir_dirty_folio() btrfs: Convert extent_range_redirty_for_io() to use folios fs: Convert trivial uses of __set_page_dirty_nobuffers to filemap_dirty_folio btrfs: Convert from set_page_dirty to dirty_folio fscache: Convert fscache_set_page_dirty() to fscache_dirty_folio() fs: Add aops->dirty_folio fs: Remove aops->launder_page orangefs: Convert launder_page to launder_folio nfs: Convert from launder_page to launder_folio fuse: Convert from launder_page to launder_folio ...
This commit is contained in:
@@ -531,6 +531,24 @@ static inline struct folio *filemap_get_folio(struct address_space *mapping,
|
||||
return __filemap_get_folio(mapping, index, 0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* filemap_lock_folio - Find and lock a folio.
|
||||
* @mapping: The address_space to search.
|
||||
* @index: The page index.
|
||||
*
|
||||
* Looks up the page cache entry at @mapping & @index. If a folio is
|
||||
* present, it is returned locked with an increased refcount.
|
||||
*
|
||||
* Context: May sleep.
|
||||
* Return: A folio or %NULL if there is no folio in the cache for this
|
||||
* index. Will not return a shadow, swap or DAX entry.
|
||||
*/
|
||||
static inline struct folio *filemap_lock_folio(struct address_space *mapping,
|
||||
pgoff_t index)
|
||||
{
|
||||
return __filemap_get_folio(mapping, index, FGP_LOCK, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* find_get_page - find and get a page reference
|
||||
* @mapping: the address_space to search
|
||||
@@ -738,15 +756,15 @@ extern int read_cache_pages(struct address_space *mapping,
|
||||
struct list_head *pages, filler_t *filler, void *data);
|
||||
|
||||
static inline struct page *read_mapping_page(struct address_space *mapping,
|
||||
pgoff_t index, void *data)
|
||||
pgoff_t index, struct file *file)
|
||||
{
|
||||
return read_cache_page(mapping, index, NULL, data);
|
||||
return read_cache_page(mapping, index, NULL, file);
|
||||
}
|
||||
|
||||
static inline struct folio *read_mapping_folio(struct address_space *mapping,
|
||||
pgoff_t index, void *data)
|
||||
pgoff_t index, struct file *file)
|
||||
{
|
||||
return read_cache_folio(mapping, index, NULL, data);
|
||||
return read_cache_folio(mapping, index, NULL, file);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1006,6 +1024,7 @@ static inline void cancel_dirty_page(struct page *page)
|
||||
}
|
||||
bool folio_clear_dirty_for_io(struct folio *folio);
|
||||
bool clear_page_dirty_for_io(struct page *page);
|
||||
void folio_invalidate(struct folio *folio, size_t offset, size_t length);
|
||||
int __must_check folio_write_one(struct folio *folio);
|
||||
static inline int __must_check write_one_page(struct page *page)
|
||||
{
|
||||
@@ -1013,7 +1032,7 @@ static inline int __must_check write_one_page(struct page *page)
|
||||
}
|
||||
|
||||
int __set_page_dirty_nobuffers(struct page *page);
|
||||
int __set_page_dirty_no_writeback(struct page *page);
|
||||
bool noop_dirty_folio(struct address_space *mapping, struct folio *folio);
|
||||
|
||||
void page_endio(struct page *page, bool is_write, int err);
|
||||
|
||||
|
Reference in New Issue
Block a user