Re: [RESEND PATCH] gfs2: do not evict glocks with populated address spaces

From: Guilherme Giacomo Simoes

Date: Tue Feb 03 2026 - 06:43:19 EST


Andreas Gruenbacher <agruenba@xxxxxxxxxx> wrote:
> > Metadata glocks may have associated address spaces used as caches. Avoid
> > reclaiming such glocks under memory pressure while their mappings are
> > still populated or their state is not unlocked, as this can lead to
> > invalid page cache state and GLOCK_BUG_ON().
>
> What invalid page cache state and GLOCK_BUG_ON() errors is this about, exactly?
On __gfs2_glock_put() (fs/gfs2/glock.c) the GLOCK_BUG_ON() is triggered under
memory pressure while the glock is still locked or the glock is populated with
metadata caches.

This happens because the __gfs2_glock_put() can't truncate pages with a private
datas (truncate_inode_pages_final(mapping) is failed), how the metadata is a
private folio, the GLOCK_BUG_ON(gl, !mapping_empty(mapping)) is trigged.

> This leaks a glock reference, so it's definitely wrong.
But this glock is a private folio with metadata or is still locked. I think
this can't be evictable