1

mm: remove PG_error

The PG_error bit is now unused; delete it and free up a bit in
page->flags.

Link: https://lkml.kernel.org/r/20240807193528.1865100-2-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Matthew Wilcox (Oracle) 2024-08-07 20:35:26 +01:00 committed by Andrew Morton
parent 420e05d0de
commit 09022bc196
4 changed files with 2 additions and 8 deletions

View File

@ -182,7 +182,6 @@ u64 stable_page_flags(const struct page *page)
#endif #endif
u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked); u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked);
u |= kpf_copy_bit(k, KPF_ERROR, PG_error);
u |= kpf_copy_bit(k, KPF_DIRTY, PG_dirty); u |= kpf_copy_bit(k, KPF_DIRTY, PG_dirty);
u |= kpf_copy_bit(k, KPF_UPTODATE, PG_uptodate); u |= kpf_copy_bit(k, KPF_UPTODATE, PG_uptodate);
u |= kpf_copy_bit(k, KPF_WRITEBACK, PG_writeback); u |= kpf_copy_bit(k, KPF_WRITEBACK, PG_writeback);

View File

@ -66,8 +66,6 @@
* PG_referenced, PG_reclaim are used for page reclaim for anonymous and * PG_referenced, PG_reclaim are used for page reclaim for anonymous and
* file-backed pagecache (see mm/vmscan.c). * file-backed pagecache (see mm/vmscan.c).
* *
* PG_error is set to indicate that an I/O error occurred on this page.
*
* PG_arch_1 is an architecture specific page state bit. The generic code * PG_arch_1 is an architecture specific page state bit. The generic code
* guarantees that this bit is cleared for a page when it first is entered into * guarantees that this bit is cleared for a page when it first is entered into
* the page cache. * the page cache.
@ -103,7 +101,6 @@ enum pageflags {
PG_waiters, /* Page has waiters, check its waitqueue. Must be bit #7 and in the same byte as "PG_locked" */ PG_waiters, /* Page has waiters, check its waitqueue. Must be bit #7 and in the same byte as "PG_locked" */
PG_active, PG_active,
PG_workingset, PG_workingset,
PG_error,
PG_owner_priv_1, /* Owner use. If pagecache, fs may use*/ PG_owner_priv_1, /* Owner use. If pagecache, fs may use*/
PG_arch_1, PG_arch_1,
PG_reserved, PG_reserved,
@ -183,7 +180,7 @@ enum pageflags {
*/ */
/* At least one page in this folio has the hwpoison flag set */ /* At least one page in this folio has the hwpoison flag set */
PG_has_hwpoisoned = PG_error, PG_has_hwpoisoned = PG_active,
PG_large_rmappable = PG_workingset, /* anon or file-backed */ PG_large_rmappable = PG_workingset, /* anon or file-backed */
}; };
@ -506,7 +503,6 @@ static inline int TestClearPage##uname(struct page *page) { return 0; }
__PAGEFLAG(Locked, locked, PF_NO_TAIL) __PAGEFLAG(Locked, locked, PF_NO_TAIL)
FOLIO_FLAG(waiters, FOLIO_HEAD_PAGE) FOLIO_FLAG(waiters, FOLIO_HEAD_PAGE)
PAGEFLAG(Error, error, PF_NO_TAIL) TESTCLEARFLAG(Error, error, PF_NO_TAIL)
FOLIO_FLAG(referenced, FOLIO_HEAD_PAGE) FOLIO_FLAG(referenced, FOLIO_HEAD_PAGE)
FOLIO_TEST_CLEAR_FLAG(referenced, FOLIO_HEAD_PAGE) FOLIO_TEST_CLEAR_FLAG(referenced, FOLIO_HEAD_PAGE)
__FOLIO_SET_FLAG(referenced, FOLIO_HEAD_PAGE) __FOLIO_SET_FLAG(referenced, FOLIO_HEAD_PAGE)

View File

@ -100,7 +100,6 @@
#define __def_pageflag_names \ #define __def_pageflag_names \
DEF_PAGEFLAG_NAME(locked), \ DEF_PAGEFLAG_NAME(locked), \
DEF_PAGEFLAG_NAME(waiters), \ DEF_PAGEFLAG_NAME(waiters), \
DEF_PAGEFLAG_NAME(error), \
DEF_PAGEFLAG_NAME(referenced), \ DEF_PAGEFLAG_NAME(referenced), \
DEF_PAGEFLAG_NAME(uptodate), \ DEF_PAGEFLAG_NAME(uptodate), \
DEF_PAGEFLAG_NAME(dirty), \ DEF_PAGEFLAG_NAME(dirty), \

View File

@ -7,7 +7,7 @@
*/ */
#define KPF_LOCKED 0 #define KPF_LOCKED 0
#define KPF_ERROR 1 #define KPF_ERROR 1 /* Now unused */
#define KPF_REFERENCED 2 #define KPF_REFERENCED 2
#define KPF_UPTODATE 3 #define KPF_UPTODATE 3
#define KPF_DIRTY 4 #define KPF_DIRTY 4