mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +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:
@@ -146,11 +146,11 @@ static int generic_remap_check_len(struct inode *inode_in,
|
||||
}
|
||||
|
||||
/* Read a page's worth of file data into the page cache. */
|
||||
static struct folio *vfs_dedupe_get_folio(struct inode *inode, loff_t pos)
|
||||
static struct folio *vfs_dedupe_get_folio(struct file *file, loff_t pos)
|
||||
{
|
||||
struct folio *folio;
|
||||
|
||||
folio = read_mapping_folio(inode->i_mapping, pos >> PAGE_SHIFT, NULL);
|
||||
folio = read_mapping_folio(file->f_mapping, pos >> PAGE_SHIFT, file);
|
||||
if (IS_ERR(folio))
|
||||
return folio;
|
||||
if (!folio_test_uptodate(folio)) {
|
||||
@@ -187,8 +187,8 @@ static void vfs_unlock_two_folios(struct folio *folio1, struct folio *folio2)
|
||||
* Compare extents of two files to see if they are the same.
|
||||
* Caller must have locked both inodes to prevent write races.
|
||||
*/
|
||||
static int vfs_dedupe_file_range_compare(struct inode *src, loff_t srcoff,
|
||||
struct inode *dest, loff_t dstoff,
|
||||
static int vfs_dedupe_file_range_compare(struct file *src, loff_t srcoff,
|
||||
struct file *dest, loff_t dstoff,
|
||||
loff_t len, bool *is_same)
|
||||
{
|
||||
bool same = true;
|
||||
@@ -224,8 +224,8 @@ static int vfs_dedupe_file_range_compare(struct inode *src, loff_t srcoff,
|
||||
* someone is invalidating pages on us and we lose.
|
||||
*/
|
||||
if (!folio_test_uptodate(src_folio) || !folio_test_uptodate(dst_folio) ||
|
||||
src_folio->mapping != src->i_mapping ||
|
||||
dst_folio->mapping != dest->i_mapping) {
|
||||
src_folio->mapping != src->f_mapping ||
|
||||
dst_folio->mapping != dest->f_mapping) {
|
||||
same = false;
|
||||
goto unlock;
|
||||
}
|
||||
@@ -333,8 +333,8 @@ int generic_remap_file_range_prep(struct file *file_in, loff_t pos_in,
|
||||
if (remap_flags & REMAP_FILE_DEDUP) {
|
||||
bool is_same = false;
|
||||
|
||||
ret = vfs_dedupe_file_range_compare(inode_in, pos_in,
|
||||
inode_out, pos_out, *len, &is_same);
|
||||
ret = vfs_dedupe_file_range_compare(file_in, pos_in,
|
||||
file_out, pos_out, *len, &is_same);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (!is_same)
|
||||
|
Reference in New Issue
Block a user