All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [f2fs-dev] [PING][PATCH] f2fs: force out‑place update for all writes on compressed file
       [not found] <5de3d9c8-e847-422f-a9e4-31ac2a1b5c2e@amlogic.com>
@ 2026-09-07  7:08 ` Chao Yu via Linux-f2fs-devel
  2026-09-07  8:45   ` Jiucheng Xu via Linux-f2fs-devel
  0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2026-09-07  7:08 UTC (permalink / raw)
  To: Jiucheng Xu, Jaegeuk Kim; +Cc: linux-f2fs-devel

On 9/2/26 11:18, Jiucheng Xu wrote:
> Hi f2fs maintainers,

Jiucheng,

Sorry for delay reply.

> 
> Gentle ping for this patch:
> Link: https://lore.kernel.org/r/20260826-origin-dev-v1-1-c21271a82100@amlogic.com
> 
> For compressed file, compressed write may fail and fall back to raw
> write.
> If in-place update(IPU) is allowed, raw data could be written into disk
> before cluster metadata is updated from compressed state to raw state.
> Sudden power-cut during this window will result in inconsistency:
> raw data on disk but metadata still expects compressed content,
> which causes decompression failure when reading the file later.

I didn't get it, can you please describe the issue w/ call stack in race condition?

> 
> To eliminate this risk completely, force out-place update for all
> write operations on compressed file, so IPU will never be used.
> 
> Could you please take a look at your convenience?
> Any comments are welcome.
> 
> Thanks,
> Jiucheng
> 



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [f2fs-dev] [PING][PATCH] f2fs: force out‑place update for all writes on compressed file
  2026-09-07  7:08 ` [f2fs-dev] [PING][PATCH] f2fs: force out‑place update for all writes on compressed file Chao Yu via Linux-f2fs-devel
@ 2026-09-07  8:45   ` Jiucheng Xu via Linux-f2fs-devel
  2026-09-07 10:38     ` Chao Yu via Linux-f2fs-devel
  0 siblings, 1 reply; 3+ messages in thread
From: Jiucheng Xu via Linux-f2fs-devel @ 2026-09-07  8:45 UTC (permalink / raw)
  To: Chao Yu, Jaegeuk Kim; +Cc: linux-f2fs-devel

On 9/7/2026 3:08 PM, Chao Yu wrote:
> [ EXTERNAL EMAIL ]
> 
> On 9/2/26 11:18, Jiucheng Xu wrote:
> 
> Jiucheng,
> 
> Sorry for delay reply.
> 
> 
> I didn't get it, can you please describe the issue w/ call stack in race
> condition?
>
Hi Chao,

Thanks for your time, The call stack is shown as below:

-Thread A                                         - Thread B
 - f2fs_write_multi_pages                          -
f2fs_down_write(&sbi->cp_rwsem);
  - f2fs_write_compressed_pages                    - ...
   - f2fs_trylock_op                               - ...
    - f2fs_down_read_trylock(&sbi->cp_rwsem);      - ...
  - f2fs_write_raw_pages                           - ...

Thread B acquires the lock first, which causes Thread A to fail lock
acquisition and fall back to raw‑data write.
IPU_FORCE is enabled on 16G eMMC platforms, so f2fs_write_raw_pages()
overwrites the original compressed data in‑place.
The in‑memory node has been updated with raw‑data addresses, while the
node metadata stored on eMMC still remains in compressed state.
If a power‑cut occurs before the node is flushed to disk, on‑disk
inconsistency arises: The data on disk is raw, but metadata
still treats it as a compressed cluster and decompression will fail.




_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [f2fs-dev] [PING][PATCH] f2fs: force out‑place update for all writes on compressed file
  2026-09-07  8:45   ` Jiucheng Xu via Linux-f2fs-devel
@ 2026-09-07 10:38     ` Chao Yu via Linux-f2fs-devel
  0 siblings, 0 replies; 3+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2026-09-07 10:38 UTC (permalink / raw)
  To: Jiucheng Xu, Jaegeuk Kim; +Cc: linux-f2fs-devel

On 9/7/26 16:45, Jiucheng Xu wrote:
> On 9/7/2026 3:08 PM, Chao Yu wrote:
>> [ EXTERNAL EMAIL ]
>>
>> On 9/2/26 11:18, Jiucheng Xu wrote:
>>
>> Jiucheng,
>>
>> Sorry for delay reply.
>>
>>
>> I didn't get it, can you please describe the issue w/ call stack in race
>> condition?
>>
> Hi Chao,
> 
> Thanks for your time, The call stack is shown as below:
> 
> -Thread A                                         - Thread B
>   - f2fs_write_multi_pages                          -
> f2fs_down_write(&sbi->cp_rwsem);
>    - f2fs_write_compressed_pages                    - ...
>     - f2fs_trylock_op                               - ...
>      - f2fs_down_read_trylock(&sbi->cp_rwsem);      - ...
>    - f2fs_write_raw_pages                           - ...
> 
> Thread B acquires the lock first, which causes Thread A to fail lock
> acquisition and fall back to raw‑data write.
> IPU_FORCE is enabled on 16G eMMC platforms, so f2fs_write_raw_pages()
> overwrites the original compressed data in‑place.
> The in‑memory node has been updated with raw‑data addresses, while the
> node metadata stored on eMMC still remains in compressed state.
> If a power‑cut occurs before the node is flushed to disk, on‑disk
> inconsistency arises: The data on disk is raw, but metadata
> still treats it as a compressed cluster and decompression will fail.

Ah, now, I see, thanks for your explanation, can you add above callstack
in commit message as well?

Thanks,


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-09-07 10:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <5de3d9c8-e847-422f-a9e4-31ac2a1b5c2e@amlogic.com>
2026-09-07  7:08 ` [f2fs-dev] [PING][PATCH] f2fs: force out‑place update for all writes on compressed file Chao Yu via Linux-f2fs-devel
2026-09-07  8:45   ` Jiucheng Xu via Linux-f2fs-devel
2026-09-07 10:38     ` Chao Yu via Linux-f2fs-devel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.