Re: [PATCH v1 07/12] f2fs: cache: use node cache

From: Chao Yu

Date: Mon Aug 24 2026 - 03:15:00 EST


On 8/23/26 20:57, Wenjie Qi wrote:
Hi Chao,

entry = fn->entry;
f2fs_cache_get(entry);
spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);

f2fs_cache_wait_writeback(entry);

The entry reference keeps the entry allocated, but the waiter does not hold
the entry lock. After WRITEBACK is cleared, invalidation can detach the
entry and set `entry->cache` to NULL. `f2fs_cache_wait_writeback()` checks
and uses `entry->cache` through separate accesses.

Does the reference taken here also guarantee that the parent cache remains
attached across the wait helper's check and use?

Do you mean race like this?

- f2fs_wait_on_node_caches_writeback
- f2fs_cache_get
- f2fs_cache_wait_writeback
- checked entry->cache, it's valid
- f2fs_truncate_cache
- f2fs_do_truncate_cache
- entry->cache = NULL
- f2fs_cache_wait_writeback_cond accesses
invalid entry->cache

Thanks,