On Thu, Mar 26, 2020 at 05:24:29AM -0700, Matthew Wilcox wrote: > From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> > > By moving PG_writeback down into the low bits of the page flags, we can > use clear_bit_unlock_is_negative_byte() for writeback as well as the > lock bit. wake_up_page() then has no more callers. Given the other > code being executed between the clear and the test, this is not going > to be as dramatic a win as it was for PageLocked, but symmetry between > the two is nice and lets us remove some code. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > --- > include/linux/page-flags.h | 6 +++--- > mm/filemap.c | 19 ++++++------------- > mm/page-writeback.c | 37 ++++++++++++++++++++----------------- > 3 files changed, 29 insertions(+), 33 deletions(-) > > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index 222f6f7b2bb3..96c7d220c8cf 100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -103,13 +103,14 @@ > */ > enum pageflags { > PG_locked, /* Page is locked. Don't touch. */ > + PG_writeback, /* Page is under writeback */ Do we need a comment why these need to be in the low bits?