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
>>
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
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
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/
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
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
>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:
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
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
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
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
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
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
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
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
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/
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
@
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,
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
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
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
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
+
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
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
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
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
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
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.
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
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
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
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/
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
@@
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
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|
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
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
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
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
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
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
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
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/
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
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
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,
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
@@ -
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
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
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
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.
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
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
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 +++
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 +
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
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
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
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
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 --
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
@@
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
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 --
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 |
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 +-
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
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(
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
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
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
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
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
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
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,
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
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 ++
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
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
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
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
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 (!
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
___
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
83 matches
Mail list logo