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 <[email protected]>
Fixes: 07ca76067308 ("mm/munlock: maintain page->mlock_count while unevictable")
Signed-off-by: Hugh Dickins <[email protected]>
---
include/linux/mm_types.h | 8 +-------
mm/swap.c | 4 ++--
2 files changed, 3 insertions(+), 9 deletions(-)
--- 5.18-pre/include/linux/mm_types.h
+++ linux/include/linux/mm_types.h
@@ -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;
--- 5.18-pre/mm/swap.c
+++ linux/mm/swap.c
@@ -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);
}