On Tue, Jan 6, 2026 at 12:12 AM Nanzhe Zhao <[email protected]> wrote: > > f2fs_folio_state is attached to folio->private and is expected to start > with read_pages_pending == 0. However, the structure was allocated from > ffs_entry_slab without being fully initialized, which can leave > read_pages_pending with stale values. > > Allocate the object with __GFP_ZERO so all fields are reliably zeroed at > creation time. > > Signed-off-by: Nanzhe Zhao <[email protected]>
We already have GFP_F2FS_ZERO, but it includes GFP_IO. Should we introduce another variant, such as GFP_F2FS_NOIO_ZERO (or similar)? Overall, LGTM. Reviewed-by: Barry Song <[email protected]> > --- > fs/f2fs/data.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > index 471e52c6c1e0..ab091b294fa7 100644 > --- a/fs/f2fs/data.c > +++ b/fs/f2fs/data.c > @@ -2389,7 +2389,7 @@ static struct f2fs_folio_state > *ffs_find_or_alloc(struct folio *folio) > if (ffs) > return ffs; > > - ffs = f2fs_kmem_cache_alloc(ffs_entry_slab, GFP_NOIO, true, NULL); > + ffs = f2fs_kmem_cache_alloc(ffs_entry_slab, GFP_NOIO | __GFP_ZERO, > true, NULL); > > spin_lock_init(&ffs->state_lock); > folio_attach_private(folio, ffs); > -- > 2.34.1 Thanks Barry _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
