Re: [f2fs-dev] [External Mail] Re: [External Mail] Re: [External Mail] Re: [PATCH] f2fs: prevent the current section from being selected as a victim during garbage collection

2025-03-31 Thread Chao Yu via Linux-f2fs-devel
On 4/1/25 09:51, yohan.joung wrote: >> From: Chao Yu >> Sent: Monday, March 31, 2025 8:36 PM >> To: 정요한(JOUNG YOHAN) Mobile AE ; linux-f2fs- >> de...@lists.sourceforge.net >> Cc: c...@kernel.org; jaeg...@kernel.org; jyh...@gmail.com; linux- >> ker...@vger.kernel.org; 김필현(KIM PILHYUN) Mobile AE >>

[f2fs-dev] [PATCH 143/153] f2fs: Use a folio in f2fs_wait_on_block_writeback()

2025-03-31 Thread Matthew Wilcox (Oracle)
Fetch a folio from the pagecache and use it. Removes two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/segment.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 88890755a394..49cb5d282c45 1

Re: [f2fs-dev] [PATCH] f2fs: support to disable linear lookup fallback

2025-03-31 Thread Chao Yu via Linux-f2fs-devel
On 4/1/25 00:31, Daniel Lee wrote: > On Sun, Mar 30, 2025 at 7:54 PM Chao Yu wrote: >> >> After commit 91b587ba79e1 ("f2fs: Introduce linear search for >> dentries"), f2fs forced to use linear lookup whenever a hash-based >> lookup fails on casefolded directory, it may affect performance >> for sc

[f2fs-dev] [PATCH 035/153] f2fs: Use a folio in read_normal_summaries()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get a folio instead of a page. Saves a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/segment.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 61888496eaa9..66d5dc15b281 100644 --- a/fs/

[f2fs-dev] [PATCH 134/153] f2fs: Convert f2fs_put_page_dic() to f2fs_put_folio_dic()

2025-03-31 Thread Matthew Wilcox (Oracle)
The only caller has a folio, so pass it in. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/compress.c | 9 - fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index a4cd957f6a

[f2fs-dev] [PATCH 051/153] highmem: Add memcpy_folio()

2025-03-31 Thread Matthew Wilcox (Oracle)
The folio equivalent of memcpy_page(). It should correctly and efficiently manage large folios: - If one, neither or both is highmem - If (either or both) offset+len crosses a page boundary - If the two offsets are congruent or not Signed-off-by: Matthew Wilcox (Oracle) --- include/linux/hi

[f2fs-dev] [External Mail] Re: [External Mail] Re: [External Mail] Re: [PATCH] f2fs: prevent the current section from being selected as a victim during garbage collection

2025-03-31 Thread yohan.joung
>From: Chao Yu >Sent: Monday, March 31, 2025 8:36 PM >To: 정요한(JOUNG YOHAN) Mobile AE ; linux-f2fs- >de...@lists.sourceforge.net >Cc: c...@kernel.org; jaeg...@kernel.org; jyh...@gmail.com; linux- >ker...@vger.kernel.org; 김필현(KIM PILHYUN) Mobile AE >Subject: [External Mail] Re: [External Mail] Re:

[f2fs-dev] [PATCH 091/153] f2fs: Pass a folio to f2fs_move_inline_dirents()

2025-03-31 Thread Matthew Wilcox (Oracle)
Pass the folio through do_convert_inline_dir() to f2fs_move_inline_dirents(). Remove a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c

[f2fs-dev] [PATCH 152/153] f2fs: Use a folio in flush_inline_data()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get a folio from the page cache and use it throughout. Removes six calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 53ad48075

[f2fs-dev] [PATCH 068/153] f2fs: Use a folio in f2fs_recover_inode_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Save four hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index e63bfdd807b3..225006e6ba32 100644 --- a/fs/f2fs/node.c +++ b/fs/f2

[f2fs-dev] [PATCH 019/153] f2fs: Use a folio in f2fs_ra_meta_pages_cond()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a call to find_get_page(). Saves two hidden calls to compound_head(). Change f2fs_folio_put() to check for IS_ERR_OR_NULL to handle the case where we got an error pointer back from filemap_get_folio(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 8 fs/f2fs

[f2fs-dev] [PATCH 133/153] f2fs: Pass a folio to inline_data_addr()

2025-03-31 Thread Matthew Wilcox (Oracle)
All callers now have a folio, so pass it in. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/dir.c| 2 +- fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/inline.c | 26 +- fs/f2fs/inode.c | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/fs/f2fs/dir.c

[f2fs-dev] [PATCH 031/153] f2fs: Use a folio in f2fs_get_valid_checkpoint()

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert validate_checkpoint() to return a folio and use it throughout f2fs_get_valid_checkpoint(). Saves five hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 38 +++--- 1 file changed, 19 insertions(+), 19 deleti

[f2fs-dev] [PATCH 104/153] f2fs: Use a folio in f2fs_read_inline_dir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 58f427e9d1f7..fda56c7e848e 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inl

[f2fs-dev] [PATCH 122/153] f2fs: Pass a folio to f2fs_has_enough_room()

2025-03-31 Thread Matthew Wilcox (Oracle)
The only caller already has a folio so pass it in. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/dir.c| 4 ++-- fs/f2fs/f2fs.h | 2 +- fs/f2fs/inline.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 5c02d55563e3..aa3c18a39cd7

[f2fs-dev] [PATCH 086/153] f2fs: Use a folio in __find_data_block()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a call to f2fs_get_inode_page(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 5904a40fbf51..733802a53444 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/

[f2fs-dev] [PATCH 103/153] f2fs: Use a folio in f2fs_empty_inline_dir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 8e175e5ee23f..58f427e9d1f7 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c @

[f2fs-dev] [PATCH 094/153] f2fs: Use a folio in f2fs_truncate_xattr_node()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index cc4c3ba98140..d1fa244c9fa7 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1242,

[f2fs-dev] [PATCH 023/153] f2fs: Use a folio in f2fs_update_meta_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Grab a folio instead of a page. Saves two hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/segment.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 272490a50a04..41b9a69c995c 100644 --- a

[f2fs-dev] [PATCH 092/153] f2fs: Pass a folio to f2fs_move_rehashed_dirents()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove seven hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 9bcea1ea1c95..1bc6a0d61f7e 100644 --- a/fs/f2fs/inline.c

[f2fs-dev] [PATCH 148/153] f2fs: Convert dnode_of_data->node_page to node_folio

2025-03-31 Thread Matthew Wilcox (Oracle)
All assignments to this struct member are conversions from a folio so convert it to be a folio and convert all users. At the same time, convert data_blkaddr() to take a folio as all callers now have a folio. Remove eight calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2

[f2fs-dev] [PATCH 071/153] f2fs: Use a folio in write_all_xattrs()

2025-03-31 Thread Matthew Wilcox (Oracle)
Removes three hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/xattr.c | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c index c691b35618ad..d58b1e44e133 100644 --- a/fs/f2fs/xattr.c +

[f2fs-dev] [PATCH 080/153] f2fs: Convert f2fs_move_node_page() to f2fs_move_node_folio()

2025-03-31 Thread Matthew Wilcox (Oracle)
Pass the folio in from the one caller and use it throughout. Removes eight hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 2 +- fs/f2fs/gc.c | 2 +- fs/f2fs/node.c | 20 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) dif

[f2fs-dev] [PATCH 088/153] f2fs: Pass a folio to make_empty_dir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Pass the folio into make_empty_dir() and then into f2fs_get_new_data_folio(). Removes a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 18 +- fs/f2fs/dir.c | 8 fs/f2fs/f2fs.h | 2 +- 3 files changed, 14 insertions(+), 14 deletio

[f2fs-dev] [PATCH 098/153] f2fs: Remove f2fs_get_xnode_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
All callers have now been converted to call f2fs_get_xnode_folio(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 1 - fs/f2fs/node.c | 8 2 files changed, 9 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 9257ea0f2ecf..cf61763e2209 100644 --- a/fs/f2fs/f2

[f2fs-dev] [PATCH 137/153] f2fs: Use a folio in f2fs_truncate_meta_inode_pages()

2025-03-31 Thread Matthew Wilcox (Oracle)
Fetch a folio from the pagecache instead of a page. Removes two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 014ef580c0e4..3603523f0c25 100

[f2fs-dev] [PATCH 001/153] f2fs: Use a folio in f2fs_compress_free_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert the incoming page to a folio and operate on it. Removes a reference to page->mapping which is going away soon. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/compress.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress

[f2fs-dev] [PATCH 113/153] f2fs: Use a folio in f2fs_recover_inline_xattr()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 2db41552ae76..b451374c255a 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.

[f2fs-dev] [PATCH 111/153] f2fs: Pass a folio to write_all_xattrs()

2025-03-31 Thread Matthew Wilcox (Oracle)
Also convert in_page to in_folio. Save five hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/xattr.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c index 9dd0d90355f7..43f363

[f2fs-dev] [PATCH 048/153] f2fs: Use a folio in f2fs_get_new_data_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get folios from the pagecache instead of pages. Remove five calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 23e37207ed90..9c

[f2fs-dev] [PATCH 046/153] f2fs: Use a folio in f2fs_readdir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get a folio instead of a page and use it throughout. Also put the folio before checking the error so we only have to do it once. Saves two hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/dir.c | 17 +++-- 1 file changed, 7 insertions(+), 10 delet

[f2fs-dev] [PATCH 144/153] f2fs: Pass a folio to f2fs_init_read_extent_tree()

2025-03-31 Thread Matthew Wilcox (Oracle)
The only caller alredy has a folio so pass it in. Remove two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/extent_cache.c | 8 fs/f2fs/f2fs.h | 2 +- fs/f2fs/inode.c| 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/

[f2fs-dev] [PATCH 082/153] f2fs: Use a folio in is_alive()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove four calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/gc.c | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 5c58e6a306f4..b18fecd2c352 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@

[f2fs-dev] [PATCH 032/153] f2fs: Use a folio in f2fs_get_node_info()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get a folio instead of a page. Saves a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 7c42dd5cd68b..7e32763cc51e 100644 --- a/fs/f2fs

[f2fs-dev] [PATCH 003/153] f2fs: Introduce fio_inode()

2025-03-31 Thread Matthew Wilcox (Oracle)
This helper returns the inode associated with the f2fs_io_info. That's a relatively common thing to want, mildly awkward to get and provides one place to change if we decide to record it directly, or change fio->page to fio->folio. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c|

[f2fs-dev] [PATCH 118/153] f2fs: Pass a folio to f2fs_recover_inline_xattr()

2025-03-31 Thread Matthew Wilcox (Oracle)
The caller has a folio, so pass it in. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 2 +- fs/f2fs/node.c | 6 +++--- fs/f2fs/recovery.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 0fe764c30eac..8e700621ee9d 1

[f2fs-dev] [PATCH 054/153] f2fs: Remove f2fs_get_lock_data_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
All callers have now been converted to f2fs_get_lock_data_folio(), so remove this wrapper. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 8 1 file changed, 8 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 2dcc3b48221b..ca6ad66c9078 100644 --- a/fs/f2fs/f2

[f2fs-dev] [PATCH 081/153] f2fs: Convert __write_node_page() to __write_node_folio()

2025-03-31 Thread Matthew Wilcox (Oracle)
All three callers now have a folio so pass it in. Removes two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 25 - 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 20d62994cf46..f

[f2fs-dev] [PATCH 018/153] f2fs: Use a folio in f2fs_ra_meta_pages()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove three hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index 75aad6ccd9d0..1a5fbecd9356 100644 --- a/fs/f2fs/check

[f2fs-dev] [PATCH 000/153] f2fs folio conversions for 6.16

2025-03-31 Thread Matthew Wilcox (Oracle)
Sorry for the length of this series. Each patch in this series builds, but obviously I haven't done any testing. It should be easy to bisect to any mistakes I've made. This conversion isn't complete; I estimate another 100 or so patches will be needed. Matthew Wilcox (Oracle) (153): f2fs: Use

[f2fs-dev] [PATCH 142/153] f2fs: Use a folio in redirty_blocks()

2025-03-31 Thread Matthew Wilcox (Oracle)
Support large folios & simplify the loops in redirty_blocks(). Use the folio APIs and remove four calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/file.c | 38 -- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/fs/f2

[f2fs-dev] [PATCH 153/153] f2fs: Convert clear_node_page_dirty() to clear_node_folio_dirty()

2025-03-31 Thread Matthew Wilcox (Oracle)
Both callers have a folio so pass it in, removing five calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 753ecca6d511..5232e43db779 100644

[f2fs-dev] [PATCH] f2fs-tools: apportion atomic write's total delay to its operations

2025-03-31 Thread Daeho Jeong
From: Daeho Jeong To utilize the delay option of atomic write more useful, need to apportion it to each operation of it. Signed-off-by: Daeho Jeong --- tools/f2fs_io/f2fs_io.c | 16 +++- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tools/f2fs_io/f2fs_io.c b/tools/

[f2fs-dev] [PATCH 013/153] f2fs: Use f2fs_folio_wait_writeback()

2025-03-31 Thread Matthew Wilcox (Oracle)
There were some missing conversions from f2fs_wait_on_page_writeback() to f2fs_folio_wait_writeback(). Saves a call to compound_head() at each callsite. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 3 +-- fs/f2fs/data.c | 4 ++-- fs/f2fs/file.c | 2 +- 3 files c

[f2fs-dev] [PATCH 123/153] f2fs: Convert dnode_of_data->inode_page to inode_folio

2025-03-31 Thread Matthew Wilcox (Oracle)
Also rename inode_page_locked to inode_folio_locked. Removes five calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 12 ++-- fs/f2fs/inline.c | 6 +++--- fs/f2fs/node.c | 14 +++--- fs/f2fs/recovery.c | 1

[f2fs-dev] [PATCH 078/153] f2fs: Pass a folio to f2fs_ra_node_pages()

2025-03-31 Thread Matthew Wilcox (Oracle)
Removes a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index e29828c2f7b5..5df3065c18ea 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -623,

[f2fs-dev] [PATCH 072/153] f2fs: Use a folio in f2fs_recover_xattr_data()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 3b73562c77f6..ac3fa0147e1e 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -

[f2fs-dev] [PATCH 062/153] f2fs: Use a folio in f2fs_convert_inline_inode()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index ad92e9008781..4b0a7062a0e0 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2f

[f2fs-dev] [PATCH 132/153] f2fs: Pass a folio to __recover_inline_status()

2025-03-31 Thread Matthew Wilcox (Oracle)
The only caller has a folio so pass it in. Removes two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inode.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index cbfd536efe20..eda71c432cca 100644

[f2fs-dev] [PATCH 036/153] f2fs: Remove f2fs_get_meta_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
All callers have now been converted to f2fs_get_meta_folio() so we can remove this wrapper. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 6 -- 1 file changed, 6 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 1f8a7338dc76..3c632154bd6e 100644 --- a/fs/f2fs/f2f

[f2fs-dev] [PATCH 115/153] f2fs: Pass a folio to f2fs_getxattr()

2025-03-31 Thread Matthew Wilcox (Oracle)
The one caller of __f2fs_get_acl() which passes a non-NULL page already has a folio, so pass it in, then into f2fs_getxattr(), which lets us pass it to lookup_all_xattrs(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/acl.c | 8 fs/f2fs/xattr.c | 12 ++-- fs/f2fs/xattr.

[f2fs-dev] [PATCH 150/153] f2fs: Convert fsync_node_entry->page to folio

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert all callers to set/get a folio instead of a page. Removes five calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c| 2 +- fs/f2fs/f2fs.h| 4 ++-- fs/f2fs/node.c| 25 + fs/f2fs/segment.c | 2 +- 4 files changed, 17 in

[f2fs-dev] [PATCH 100/153] f2fs: Use a folio in f2fs_read_inline_data()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 55c0b82d43d5..245cbff2ca2c 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inl

[f2fs-dev] [PATCH 108/153] f2fs: Pass folios to f2fs_init_acl()

2025-03-31 Thread Matthew Wilcox (Oracle)
The one caller already has folios, so pass them in, and further pass them to __f2fs_set_acl() and f2fs_acl_create(). There should be no change to the generated code for this commit. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/acl.c | 27 +-- fs/f2fs/acl.h | 10 +++

[f2fs-dev] [PATCH 149/153] f2fs: Pass a folio to get_dnode_addr()

2025-03-31 Thread Matthew Wilcox (Oracle)
All callers except __get_inode_rdev() and __set_inode_rdev() now have a folio, but the only callers of those two functions do have a folio, so pass the folio to them and then into get_dnode_addr(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 10 +

[f2fs-dev] [PATCH 112/153] f2fs: Use a folio in read_inline_xattr()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/xattr.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c index 43f363f0658b..28b32728a113 100644 --- a/fs/f2fs/xattr.c +++ b/fs/f2fs/xattr

[f2fs-dev] [PATCH 066/153] f2fs: Convert read_node_page() to read_node_folio()

2025-03-31 Thread Matthew Wilcox (Oracle)
Both callers now have a folio, so pass it in and remove the conversion back to a folio. Removes two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 19 +-- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2

[f2fs-dev] [PATCH 095/153] f2fs: Pass folios to set_new_dnode()

2025-03-31 Thread Matthew Wilcox (Oracle)
Removes a lot of conversions of folios into pages. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 8 fs/f2fs/f2fs.h | 6 +++--- fs/f2fs/file.c | 2 +- fs/f2fs/inline.c | 4 ++-- fs/f2fs/node.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git

[f2fs-dev] [PATCH 021/153] f2fs: Use a folio in get_next_nat_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Call f2fs_grab_meta_folio() instead of f2fs_grab_meta_page(). Saves a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 0b2e24ad620d..7c42d

[f2fs-dev] [PATCH 030/153] f2fs: Use a folio in validate_checkpoint()

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert get_checkpoint_version() to take a folio and use it throughout validate_checkpoint(). Saves five hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --

[f2fs-dev] [PATCH 057/153] f2fs: Use a folio in make_empty_dir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove two hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/dir.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 1e939c251752..2cc4ad636290 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@

[f2fs-dev] [PATCH 025/153] f2fs: Use a folio in write_compacted_summaries()

2025-03-31 Thread Matthew Wilcox (Oracle)
Grab a folio instead of a page. Saves four hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/segment.c | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 3e6acb9ab610..baf24

[f2fs-dev] [PATCH 128/153] f2fs: Pass a folio to f2fs_parent_dir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert all the callers to pass a folio. Removes three calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/dir.c | 7 ++- fs/f2fs/f2fs.h | 2 +- fs/f2fs/namei.c | 34 +- 3 files changed, 20 insertions(+), 23 deletions(-) diff --

[f2fs-dev] [PATCH 074/153] f2fs: Use folios in f2fs_get_dnode_of_data()

2025-03-31 Thread Matthew Wilcox (Oracle)
Pass the folio into __get_node_folio() and f2fs_get_node_page_ra() which becomes f2fs_get_node_folio_ra(). That function has no callers outside node.c, so make it static. Removes seven calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 1 - fs/f2fs/node.c |

[f2fs-dev] [PATCH 017/153] f2fs: Pass a folio to next_blkaddr_of_node()

2025-03-31 Thread Matthew Wilcox (Oracle)
Pass the folio into sanity_check_node_footer() so that we can pass it further into next_blkaddr_of_node(). Removes a lot of conversions from folio->page. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 8 +--- fs/f2fs/node.h | 4 ++-- fs/f2fs/recovery.c | 10 +-

[f2fs-dev] [PATCH 102/153] f2fs: Use a folio in f2fs_find_in_inline_dir()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove two calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/inline.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 13ede6ccc312..8e175e5ee23f 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/i

[f2fs-dev] [PATCH 008/153] f2fs: Use a folio in move_data_block()

2025-03-31 Thread Matthew Wilcox (Oracle)
Fetch a folio from the pagecache instead of a page and operate on it throughout. Removes eight calls to compound_head() and an access to page->mapping. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/gc.c | 33 + 1 file changed, 17 insertions(+), 16 deletions(

[f2fs-dev] [PATCH 028/153] f2fs: Use a folio in build_sit_entries()

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert get_current_sit_page() to get_current_sit_folio() and then use the folio in build_sit_entries(). Saves a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/segment.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/f

[f2fs-dev] [PATCH 020/153] f2fs: Use a folio in write_orphan_inodes()

2025-03-31 Thread Matthew Wilcox (Oracle)
Call f2fs_grab_meta_folio() instead of f2fs_grab_meta_page(). Removes four hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/c

[f2fs-dev] [PATCH 058/153] f2fs: Remove f2fs_get_new_data_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
All callers have been converted to call f2fs_get_new_data_folio() so delete this wrapper. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 7 --- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 52ca44b3c687

[f2fs-dev] [PATCH 027/153] f2fs: Add f2fs_get_meta_folio()

2025-03-31 Thread Matthew Wilcox (Oracle)
Convert f2fs_get_meta_page() to f2fs_get_meta_folio() and add f2fs_get_meta_page() as a wrapper. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 4 ++-- fs/f2fs/f2fs.h | 8 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/checkpoint.c b/fs/f

[f2fs-dev] [PATCH 038/153] f2fs: Pass an address to scan_nat_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Remove a conversion from folio to page by passing in the address of the first byte rather than the struct page containing it. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index

[f2fs-dev] [PATCH 067/153] f2fs: Pass a folio to f2fs_inode_chksum_verify()

2025-03-31 Thread Matthew Wilcox (Oracle)
Both callers now have a folio, so pass it in. Removes three calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/f2fs.h | 2 +- fs/f2fs/inode.c | 16 fs/f2fs/node.c | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/fs/f2fs/f2

[f2fs-dev] [PATCH 065/153] f2fs: Use a folio in f2fs_ra_node_page()

2025-03-31 Thread Matthew Wilcox (Oracle)
Save a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/node.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 5fe8f48b2ac5..083863557414 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1436,

[f2fs-dev] [PATCH 052/153] f2fs: Use a folio in __clone_blkaddrs()

2025-03-31 Thread Matthew Wilcox (Oracle)
Removes five hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/file.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 25f69a308dde..5529b740c37f 100644 --- a/fs/f2fs/file.c

[f2fs-dev] [PATCH 009/153] f2fs: Use a folio in f2fs_quota_read()

2025-03-31 Thread Matthew Wilcox (Oracle)
Support arbitrary size folios and remove a few hidden calls to compound_head(). Also remove an unnecessary test of the uptodaate flag; if mapping_read_folio_gfp() cannot bring the folio uptodate, it will return an error. Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/super.c | 36 ++

[f2fs-dev] [PATCH 029/153] f2fs: Use a folio in f2fs_recover_orphan_inodes()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get a folio instead of a page and use it throughout. Saves two hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/checkpoint.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index 50

[f2fs-dev] [PATCH 042/153] f2fs: Use a folio in change_curseg()

2025-03-31 Thread Matthew Wilcox (Oracle)
Get a folio and use it. Saves a call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/f2fs/segment.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index a3d4903cfb0b..88890755a394 100644 --- a/fs/f2fs/segm

Re: [f2fs-dev] [External Mail] Re: [External Mail] Re: [External Mail] Re: [PATCH] f2fs: prevent the current section from being selected as a victim during garbage collection

2025-03-31 Thread Chao Yu via Linux-f2fs-devel
On 3/31/25 13:13, yohan.joung wrote: >> On 2025/3/28 15:25, yohan.joung wrote: On 2025/3/28 11:40, yohan.joung wrote: >> From: Chao Yu >> Sent: Thursday, March 27, 2025 10:48 PM >> To: 정요한(JOUNG YOHAN) Mobile AE ; Yohan Joung >> ; jaeg...@kernel.org; daeh...@gmail.com >> C

[f2fs-dev] [PATCH] f2fs: support to disable linear lookup fallback

2025-03-31 Thread Chao Yu via Linux-f2fs-devel
After commit 91b587ba79e1 ("f2fs: Introduce linear search for dentries"), f2fs forced to use linear lookup whenever a hash-based lookup fails on casefolded directory, it may affect performance for scenarios: a) create a new file w/ filename it doesn't exist in directory, b) lookup a file which may

Re: [f2fs-dev] [PATCH 0/9] f2fs: first steps towards mount API conversion

2025-03-31 Thread Chao Yu via Linux-f2fs-devel
On 3/29/25 12:18, Eric Sandeen wrote: > I was working on next steps for this, and I have a followup question. > > Today, several mount options are simply ignored if the on-disk format > does not support them. For example: > > case Opt_compress_mode: > if (!

[f2fs-dev] Proszę o kontakt

2025-03-31 Thread Adrian Liszka via Linux-f2fs-devel
Dzień dobry, Czy jest możliwość nawiązania współpracy z Państwem? Z chęcią porozmawiam z osobą zajmującą się działaniami związanymi ze sprzedażą. Pomagamy skutecznie pozyskiwać nowych klientów. Zapraszam do kontaktu. Z pozdrowieniami Adrian Liszka ___

Re: [f2fs-dev] [PATCH v2 1/2] f2fs: zone: fix to calculate first_zoned_segno correctly

2025-03-31 Thread Chao Yu via Linux-f2fs-devel
On 3/28/25 11:29, Jaegeuk Kim wrote: > It seems this patch breaks the multi-partition cases. Which case did you test w/ this patch? Thanks, > > On 03/25, Chao Yu wrote: >> A zoned device can has both conventional zones and sequential zones, >> so we should not treat first segment of zoned devic