mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
f2fs: use f2fs_filemap_get_folio() instead of f2fs_pagecache_get_page()
Let's use f2fs_filemap_get_folio() instead of f2fs_pagecache_get_page() in ra_data_block() and move_data_block(), then remove f2fs_pagecache_get_page() since it has no user. Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
3b7e73ddc0
commit
e0b89d00ea
|
|
@ -2961,16 +2961,6 @@ static inline struct folio *f2fs_filemap_get_folio(
|
|||
return __filemap_get_folio(mapping, index, fgp_flags, gfp_mask);
|
||||
}
|
||||
|
||||
static inline struct page *f2fs_pagecache_get_page(
|
||||
struct address_space *mapping, pgoff_t index,
|
||||
fgf_t fgp_flags, gfp_t gfp_mask)
|
||||
{
|
||||
if (time_to_inject(F2FS_M_SB(mapping), FAULT_PAGE_GET))
|
||||
return NULL;
|
||||
|
||||
return pagecache_get_page(mapping, index, fgp_flags, gfp_mask);
|
||||
}
|
||||
|
||||
static inline void f2fs_folio_put(struct folio *folio, bool unlock)
|
||||
{
|
||||
if (IS_ERR_OR_NULL(folio))
|
||||
|
|
|
|||
23
fs/f2fs/gc.c
23
fs/f2fs/gc.c
|
|
@ -1211,7 +1211,7 @@ static int ra_data_block(struct inode *inode, pgoff_t index)
|
|||
struct address_space *mapping = f2fs_is_cow_file(inode) ?
|
||||
F2FS_I(inode)->atomic_inode->i_mapping : inode->i_mapping;
|
||||
struct dnode_of_data dn;
|
||||
struct folio *folio;
|
||||
struct folio *folio, *efolio;
|
||||
struct f2fs_io_info fio = {
|
||||
.sbi = sbi,
|
||||
.ino = inode->i_ino,
|
||||
|
|
@ -1266,14 +1266,15 @@ static int ra_data_block(struct inode *inode, pgoff_t index)
|
|||
|
||||
f2fs_wait_on_block_writeback(inode, dn.data_blkaddr);
|
||||
|
||||
fio.encrypted_page = f2fs_pagecache_get_page(META_MAPPING(sbi),
|
||||
dn.data_blkaddr,
|
||||
efolio = f2fs_filemap_get_folio(META_MAPPING(sbi), dn.data_blkaddr,
|
||||
FGP_LOCK | FGP_CREAT, GFP_NOFS);
|
||||
if (!fio.encrypted_page) {
|
||||
err = -ENOMEM;
|
||||
if (IS_ERR(efolio)) {
|
||||
err = PTR_ERR(efolio);
|
||||
goto put_folio;
|
||||
}
|
||||
|
||||
fio.encrypted_page = &efolio->page;
|
||||
|
||||
err = f2fs_submit_page_bio(&fio);
|
||||
if (err)
|
||||
goto put_encrypted_page;
|
||||
|
|
@ -1313,7 +1314,7 @@ static int move_data_block(struct inode *inode, block_t bidx,
|
|||
struct dnode_of_data dn;
|
||||
struct f2fs_summary sum;
|
||||
struct node_info ni;
|
||||
struct folio *folio, *mfolio;
|
||||
struct folio *folio, *mfolio, *efolio;
|
||||
block_t newaddr;
|
||||
int err = 0;
|
||||
bool lfs_mode = f2fs_lfs_mode(fio.sbi);
|
||||
|
|
@ -1407,14 +1408,16 @@ static int move_data_block(struct inode *inode, block_t bidx,
|
|||
goto up_out;
|
||||
}
|
||||
|
||||
fio.encrypted_page = f2fs_pagecache_get_page(META_MAPPING(fio.sbi),
|
||||
newaddr, FGP_LOCK | FGP_CREAT, GFP_NOFS);
|
||||
if (!fio.encrypted_page) {
|
||||
err = -ENOMEM;
|
||||
efolio = f2fs_filemap_get_folio(META_MAPPING(fio.sbi), newaddr,
|
||||
FGP_LOCK | FGP_CREAT, GFP_NOFS);
|
||||
if (IS_ERR(efolio)) {
|
||||
err = PTR_ERR(efolio);
|
||||
f2fs_folio_put(mfolio, true);
|
||||
goto recover_block;
|
||||
}
|
||||
|
||||
fio.encrypted_page = &efolio->page;
|
||||
|
||||
/* write target block */
|
||||
f2fs_wait_on_page_writeback(fio.encrypted_page, DATA, true, true);
|
||||
memcpy(page_address(fio.encrypted_page),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user