@@ -253,13 +253,7 @@ struct folio {
struct {
/* public: */
unsigned long flags;
- union {
- struct list_head lru;
- struct {
- void *__filler;
- unsigned int mlock_count;
- };
- };
+ struct list_head lru;
struct address_space *mapping;
pgoff_t index;
void *private;
@@ -1026,13 +1026,13 @@ static void __pagevec_lru_add_fn(struct
folio_clear_active(folio);
folio_set_unevictable(folio);
/*
- * folio->mlock_count = !!folio_test_mlocked(folio)?
+ * page->mlock_count = !!PageMlocked(page)?
* But that leaves __mlock_page() in doubt whether another
* actor has already counted the mlock or not. Err on the
* safe side, underestimate, let page reclaim fix it, rather
* than leaving a page on the unevictable LRU indefinitely.
*/
- folio->mlock_count = 0;
+ folio_page(folio, 0)->mlock_count = 0;
if (!was_unevictable)
__count_vm_events(UNEVICTABLE_PGCULLED, nr_pages);
}
Stephen reports that 'make htmldocs' currently issues two warnings: include/linux/mm_types.h:275: warning: Function parameter or member '__filler' not described in 'folio' include/linux/mm_types.h:275: warning: Function parameter or member 'mlock_count' not described in 'folio' Certainly __filler doesn't want documenting there, and all but one use of mlock_count is through page->mlock_count at present: so I think it's best just to remove them both from struct folio for now, and sort out the right way to document folio->mlock_count once that is the one true way. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Fixes: 07ca76067308 ("mm/munlock: maintain page->mlock_count while unevictable") Signed-off-by: Hugh Dickins <hughd@google.com> --- include/linux/mm_types.h | 8 +------- mm/swap.c | 4 ++-- 2 files changed, 3 insertions(+), 9 deletions(-)