mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
f2fs: Convert f2fs_load_compressed_page() to f2fs_load_compressed_folio()
The only caller already has a folio, so pass it in. Copy the entire size of the folio to support large block sizes. Remove two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
75de20f41f
commit
842974808a
|
|
@ -1964,25 +1964,25 @@ void f2fs_cache_compressed_page(struct f2fs_sb_info *sbi, struct page *page,
|
|||
f2fs_folio_put(cfolio, true);
|
||||
}
|
||||
|
||||
bool f2fs_load_compressed_page(struct f2fs_sb_info *sbi, struct page *page,
|
||||
bool f2fs_load_compressed_folio(struct f2fs_sb_info *sbi, struct folio *folio,
|
||||
block_t blkaddr)
|
||||
{
|
||||
struct page *cpage;
|
||||
struct folio *cfolio;
|
||||
bool hitted = false;
|
||||
|
||||
if (!test_opt(sbi, COMPRESS_CACHE))
|
||||
return false;
|
||||
|
||||
cpage = f2fs_pagecache_get_page(COMPRESS_MAPPING(sbi),
|
||||
cfolio = f2fs_filemap_get_folio(COMPRESS_MAPPING(sbi),
|
||||
blkaddr, FGP_LOCK | FGP_NOWAIT, GFP_NOFS);
|
||||
if (cpage) {
|
||||
if (PageUptodate(cpage)) {
|
||||
if (!IS_ERR(cfolio)) {
|
||||
if (folio_test_uptodate(cfolio)) {
|
||||
atomic_inc(&sbi->compress_page_hit);
|
||||
memcpy(page_address(page),
|
||||
page_address(cpage), PAGE_SIZE);
|
||||
memcpy(folio_address(folio),
|
||||
folio_address(cfolio), folio_size(folio));
|
||||
hitted = true;
|
||||
}
|
||||
f2fs_put_page(cpage, 1);
|
||||
f2fs_folio_put(cfolio, true);
|
||||
}
|
||||
|
||||
return hitted;
|
||||
|
|
|
|||
|
|
@ -2286,8 +2286,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
|
|||
|
||||
f2fs_wait_on_block_writeback(inode, blkaddr);
|
||||
|
||||
if (f2fs_load_compressed_page(sbi, folio_page(folio, 0),
|
||||
blkaddr)) {
|
||||
if (f2fs_load_compressed_folio(sbi, folio, blkaddr)) {
|
||||
if (atomic_dec_and_test(&dic->remaining_pages)) {
|
||||
f2fs_decompress_cluster(dic, true);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -4479,7 +4479,7 @@ void f2fs_invalidate_compress_pages_range(struct f2fs_sb_info *sbi,
|
|||
block_t blkaddr, unsigned int len);
|
||||
void f2fs_cache_compressed_page(struct f2fs_sb_info *sbi, struct page *page,
|
||||
nid_t ino, block_t blkaddr);
|
||||
bool f2fs_load_compressed_page(struct f2fs_sb_info *sbi, struct page *page,
|
||||
bool f2fs_load_compressed_folio(struct f2fs_sb_info *sbi, struct folio *folio,
|
||||
block_t blkaddr);
|
||||
void f2fs_invalidate_compress_pages(struct f2fs_sb_info *sbi, nid_t ino);
|
||||
#define inc_compr_inode_stat(inode) \
|
||||
|
|
@ -4535,8 +4535,8 @@ static inline void f2fs_invalidate_compress_pages_range(struct f2fs_sb_info *sbi
|
|||
block_t blkaddr, unsigned int len) { }
|
||||
static inline void f2fs_cache_compressed_page(struct f2fs_sb_info *sbi,
|
||||
struct page *page, nid_t ino, block_t blkaddr) { }
|
||||
static inline bool f2fs_load_compressed_page(struct f2fs_sb_info *sbi,
|
||||
struct page *page, block_t blkaddr) { return false; }
|
||||
static inline bool f2fs_load_compressed_folio(struct f2fs_sb_info *sbi,
|
||||
struct folio *folio, block_t blkaddr) { return false; }
|
||||
static inline void f2fs_invalidate_compress_pages(struct f2fs_sb_info *sbi,
|
||||
nid_t ino) { }
|
||||
#define inc_compr_inode_stat(inode) do { } while (0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user