Re: [RESEND PATCH] gfs2: do not evict glocks with populated address spaces
Guilherme Giacomo Simoes <[email protected]>
| Newsgroups | dev.linux.lists.gfs2,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Andreas Gruenbacher <[email protected]> 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