History log of /linux-6.15/fs/f2fs/data.c (Results 1 – 25 of 831)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14
# 351bc761 17-Mar-2025 Yohan Joung <[email protected]>

f2fs: optimize f2fs DIO overwrites

this is unnecessary when we know we are overwriting already allocated
blocks and the overhead of starting a transaction can be significant
especially for multithre

f2fs: optimize f2fs DIO overwrites

this is unnecessary when we know we are overwriting already allocated
blocks and the overhead of starting a transaction can be significant
especially for multithreaded workloads doing small writes.

Signed-off-by: Yohan Joung <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


Revision tags: v6.14-rc7, v6.14-rc6
# 6ad3ddbe 07-Mar-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Remove f2fs_write_data_page()

Mappings which implement writepages should not implement writepage
as it can only harm writeback patterns.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradea

f2fs: Remove f2fs_write_data_page()

Mappings which implement writepages should not implement writepage
as it can only harm writeback patterns.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 448a834f 07-Mar-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Remove check for ->writepage

We're almost able to remove a_ops->writepage. This check is unnecessary
as we'll never call into __f2fs_write_data_pages() for character
devices.

Signed-off-by:

f2fs: Remove check for ->writepage

We're almost able to remove a_ops->writepage. This check is unnecessary
as we'll never call into __f2fs_write_data_pages() for character
devices.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 1cf6b567 05-Mar-2025 Chao Yu <[email protected]>

f2fs: do sanity check on inode footer in f2fs_get_inode_page()

This patch introduces a new wrapper f2fs_get_inode_page(), then, caller
can use it to load inode block to page cache, meanwhile it will

f2fs: do sanity check on inode footer in f2fs_get_inode_page()

This patch introduces a new wrapper f2fs_get_inode_page(), then, caller
can use it to load inode block to page cache, meanwhile it will do sanity
check on inode footer.

Signed-off-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 59b59a94 04-Mar-2025 Matthew Wilcox (Oracle) <[email protected]>

fscrypt: Change fscrypt_encrypt_pagecache_blocks() to take a folio

ext4 and ceph already have a folio to pass; f2fs needs to be properly
converted but this will do for now. This removes a reference

fscrypt: Change fscrypt_encrypt_pagecache_blocks() to take a folio

ext4 and ceph already have a folio to pass; f2fs needs to be properly
converted but this will do for now. This removes a reference
to page->index and page->mapping as well as removing a call to
compound_head().

Signed-off-by: "Matthew Wilcox (Oracle)" <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Acked-by: Eric Biggers <[email protected]>
Signed-off-by: Christian Brauner <[email protected]>

show more ...


Revision tags: v6.14-rc5, v6.14-rc4
# 0cd402ba 18-Feb-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Add f2fs_find_data_folio()

Convert f2fs_find_data_page() to f2fs_find_data_folio() and add a
compatibility wrapper. Saves six hidden calls to compound_head().
This was the last caller of f2fs

f2fs: Add f2fs_find_data_folio()

Convert f2fs_find_data_page() to f2fs_find_data_folio() and add a
compatibility wrapper. Saves six hidden calls to compound_head().
This was the last caller of f2fs_get_read_data_page(), so remove
the compatibility wrapper.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 20f974cd 18-Feb-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Add f2fs_get_lock_data_folio()

Convert f2fs_get_lock_data_page() to f2fs_get_lock_data_folio() and
add a compatibility wrapper. Removes three hidden calls to
compound_head().

Signed-off-by:

f2fs: Add f2fs_get_lock_data_folio()

Convert f2fs_get_lock_data_page() to f2fs_get_lock_data_folio() and
add a compatibility wrapper. Removes three hidden calls to
compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 4ae71b19 18-Feb-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Add f2fs_get_read_data_folio()

Convert f2fs_get_read_data_page() into f2fs_get_read_data_folio() and
add a compatibility wrapper. Saves seven hidden calls to compound_head().

Signed-off-by:

f2fs: Add f2fs_get_read_data_folio()

Convert f2fs_get_read_data_page() into f2fs_get_read_data_folio() and
add a compatibility wrapper. Saves seven hidden calls to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# b8fcb842 18-Feb-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Hoist the page_folio() call to the start of f2fs_merge_page_bio()

Remove one call to compound_head() and a reference to page->mapping
by calling page_folio() early on.

Signed-off-by: Matthew

f2fs: Hoist the page_folio() call to the start of f2fs_merge_page_bio()

Remove one call to compound_head() and a reference to page->mapping
by calling page_folio() early on.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 1a58a41c 18-Feb-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Convert f2fs_in_warm_node_list() to take a folio

All its callers now have access to a folio, so pass it in. Removes
an access to page->mapping.

Signed-off-by: Matthew Wilcox (Oracle) <willy@

f2fs: Convert f2fs_in_warm_node_list() to take a folio

All its callers now have access to a folio, so pass it in. Removes
an access to page->mapping.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# fb966048 18-Feb-2025 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Convert f2fs_write_end_io() to use a folio_iter

Iterate over each folio in the bio instead of each page.
Follow the pattern in ext4 for handling bounce folios. Removes
a few calls to compound

f2fs: Convert f2fs_write_end_io() to use a folio_iter

Iterate over each folio in the bio instead of each page.
Follow the pattern in ext4 for handling bounce folios. Removes
a few calls to compound_head() and references to page->mapping.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 3147ee56 03-Mar-2025 Chao Yu <[email protected]>

f2fs: fix potential deadloop in prepare_compress_overwrite()

Jan Prusakowski reported a kernel hang issue as below:

When running xfstests on linux-next kernel (6.14.0-rc3, 6.12) I
encountered a pro

f2fs: fix potential deadloop in prepare_compress_overwrite()

Jan Prusakowski reported a kernel hang issue as below:

When running xfstests on linux-next kernel (6.14.0-rc3, 6.12) I
encountered a problem in generic/475 test where fsstress process
gets blocked in __f2fs_write_data_pages() and the test hangs.
The options I used are:

MKFS_OPTIONS -- -O compression -O extra_attr -O project_quota -O quota /dev/vdc
MOUNT_OPTIONS -- -o acl,user_xattr -o discard,compress_extension=* /dev/vdc /vdc

INFO: task kworker/u8:0:11 blocked for more than 122 seconds.
Not tainted 6.14.0-rc3-xfstests-lockdep #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:kworker/u8:0 state:D stack:0 pid:11 tgid:11 ppid:2 task_flags:0x4208160 flags:0x00004000
Workqueue: writeback wb_workfn (flush-253:0)
Call Trace:
<TASK>
__schedule+0x309/0x8e0
schedule+0x3a/0x100
schedule_preempt_disabled+0x15/0x30
__mutex_lock+0x59a/0xdb0
__f2fs_write_data_pages+0x3ac/0x400
do_writepages+0xe8/0x290
__writeback_single_inode+0x5c/0x360
writeback_sb_inodes+0x22f/0x570
wb_writeback+0xb0/0x410
wb_do_writeback+0x47/0x2f0
wb_workfn+0x5a/0x1c0
process_one_work+0x223/0x5b0
worker_thread+0x1d5/0x3c0
kthread+0xfd/0x230
ret_from_fork+0x31/0x50
ret_from_fork_asm+0x1a/0x30
</TASK>

The root cause is: once generic/475 starts toload error table to dm
device, f2fs_prepare_compress_overwrite() will loop reading compressed
cluster pages due to IO error, meanwhile it has held .writepages lock,
it can block all other writeback tasks.

Let's fix this issue w/ below changes:
- add f2fs_handle_page_eio() in prepare_compress_overwrite() to
detect IO error.
- detect cp_error earler in f2fs_read_multi_pages().

Fixes: 4c8ff7095bef ("f2fs: support data compression")
Reported-by: Jan Prusakowski <[email protected]>
Signed-off-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


Revision tags: v6.14-rc3, v6.14-rc2
# 5f95c181 04-Feb-2025 Jaegeuk Kim <[email protected]>

f2fs: add ioctl to get IO priority hint

This patch adds an ioctl to give a per-file priority hint to attach
REQ_PRIO.

Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <jaegeuk@kern

f2fs: add ioctl to get IO priority hint

This patch adds an ioctl to give a per-file priority hint to attach
REQ_PRIO.

Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


Revision tags: v6.14-rc1
# 53333cdf 02-Feb-2025 Kohei Enju <[email protected]>

f2fs: remove unnecessary null checking

When __GFP_DIRECT_RECLAIM (included in both GFP_NOIO and GFP_KERNEL) is
specified, bio_alloc_bioset() never fails to allocate a bio.
Commit 67883ade7a98 ("f2fs

f2fs: remove unnecessary null checking

When __GFP_DIRECT_RECLAIM (included in both GFP_NOIO and GFP_KERNEL) is
specified, bio_alloc_bioset() never fails to allocate a bio.
Commit 67883ade7a98 ("f2fs: remove FAULT_ALLOC_BIO") replaced
f2fs_bio_alloc() with bio_alloc_bioset(), but null checking after
bio_alloc_bioset() was still left.

Fixes: 67883ade7a98 ("f2fs: remove FAULT_ALLOC_BIO")
Signed-off-by: Kohei Enju <[email protected]>
Reviewed-by: Jens Axboe <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


Revision tags: v6.13
# 27701521 13-Jan-2025 Kairui Song <[email protected]>

mm, swap: clean up device availability check

Remove highest_bit and lowest_bit. After the HDD allocation path has been
removed, the only purpose of these two fields is to determine whether the
devi

mm, swap: clean up device availability check

Remove highest_bit and lowest_bit. After the HDD allocation path has been
removed, the only purpose of these two fields is to determine whether the
device is full or not, which can instead be determined by checking the
inuse_pages.

Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Kairui Song <[email protected]>
Reviewed-by: Baoquan He <[email protected]>
Cc: Barry Song <[email protected]>
Cc: Chis Li <[email protected]>
Cc: "Huang, Ying" <[email protected]>
Cc: Hugh Dickens <[email protected]>
Cc: Johannes Weiner <[email protected]>
Cc: Kalesh Singh <[email protected]>
Cc: Nhat Pham <[email protected]>
Cc: Ryan Roberts <[email protected]>
Cc: Yosry Ahmed <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>

show more ...


Revision tags: v6.13-rc7
# 4811fee8 08-Jan-2025 Jaegeuk Kim <[email protected]>

f2fs: remove blk_finish_plug

Let's remove unclear blk_finish_plug.

Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>


# c84c2424 13-Jan-2025 zangyangyang1 <[email protected]>

f2fs: fix using wrong 'submitted' value in f2fs_write_cache_pages

When f2fs_write_single_data_page fails, f2fs_write_cache_pages
will use the last 'submitted' value incorrectly, which will cause
'nw

f2fs: fix using wrong 'submitted' value in f2fs_write_cache_pages

When f2fs_write_single_data_page fails, f2fs_write_cache_pages
will use the last 'submitted' value incorrectly, which will cause
'nwritten' and 'wbc->nr_to_write' calculation errors

Signed-off-by: zangyangyang1 <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


Revision tags: v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7
# d217b5ce 04-Nov-2024 Yi Sun <[email protected]>

f2fs: add parameter @len to f2fs_invalidate_internal_cache()

New function can process some consecutive blocks at a time.

Signed-off-by: Yi Sun <[email protected]>
Reviewed-by: Chao Yu <chao@kernel.

f2fs: add parameter @len to f2fs_invalidate_internal_cache()

New function can process some consecutive blocks at a time.

Signed-off-by: Yi Sun <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 5f659454 22-Nov-2024 zangyangyang1 <[email protected]>

f2fs: cache more dentry pages

While traversing dir entries in dentry page, it's better to refresh current
accessed page in lru list by using FGP_ACCESSED flag, otherwise, such page
may has less chan

f2fs: cache more dentry pages

While traversing dir entries in dentry page, it's better to refresh current
accessed page in lru list by using FGP_ACCESSED flag, otherwise, such page
may has less chance to survive during memory reclaim, result in causing
additional IO when revisiting dentry page.

Signed-off-by: zangyangyang1 <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# c910a64b 28-Nov-2024 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Remove calls to folio_file_mapping()

All folios that f2fs sees belong to f2fs and not to the swapcache
so it can dereference folio->mapping directly like all other
filesystems do.

Signed-off-

f2fs: Remove calls to folio_file_mapping()

All folios that f2fs sees belong to f2fs and not to the swapcache
so it can dereference folio->mapping directly like all other
filesystems do.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 19bbd306 28-Nov-2024 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Convert __read_io_type() to take a folio

Remove the last call to page_file_mapping() as both callers can now pass
in a folio.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Revi

f2fs: Convert __read_io_type() to take a folio

Remove the last call to page_file_mapping() as both callers can now pass
in a folio.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# f58d8645 28-Nov-2024 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Use a data folio in f2fs_submit_page_bio()

Remove a call to compound_head(). We can call bio_add_folio_nofail()
here because we just allocated the bio, so we know it can't fail and
thus the e

f2fs: Use a data folio in f2fs_submit_page_bio()

Remove a call to compound_head(). We can call bio_add_folio_nofail()
here because we just allocated the bio, so we know it can't fail and
thus the error path can never be taken.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 0765b3f9 28-Nov-2024 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Use a folio more in f2fs_submit_page_bio()

Cache the result of page_folio(fio->page) in a local variable so
we don't have to keep calling it. Saves a couple of calls to
compound_head() and re

f2fs: Use a folio more in f2fs_submit_page_bio()

Cache the result of page_folio(fio->page) in a local variable so
we don't have to keep calling it. Saves a couple of calls to
compound_head() and removes an access to page->mapping.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# e0821645 28-Nov-2024 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Convert f2fs_finish_read_bio() to use folios

Use bio_for_each_folio_all() to iterate over each folio in the bio.
This lets us use folio_end_read() which saves an atomic operation and
memory ba

f2fs: Convert f2fs_finish_read_bio() to use folios

Use bio_for_each_folio_all() to iterate over each folio in the bio.
This lets us use folio_end_read() which saves an atomic operation and
memory barrier compared to marking the folio uptodate and unlocking
it as two separate operations. This also removes a few hidden calls
to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


# 87e2a15b 28-Nov-2024 Matthew Wilcox (Oracle) <[email protected]>

f2fs: Convert submit tracepoints to take a folio

Remove accesses to page->index and page->mapping as well as
unnecessary calls to page_file_mapping().

Signed-off-by: Matthew Wilcox (Oracle) <willy@

f2fs: Convert submit tracepoints to take a folio

Remove accesses to page->index and page->mapping as well as
unnecessary calls to page_file_mapping().

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>

show more ...


12345678910>>...34