I believe these two flags have entirely disjoint uses and there will be no confusion in amalgamating them. Anonymous memory (re)uses mappedtodisk for anon_exclusive. Anonymous memory does not use PG_private_2. $ git grep -El '(folio.*mappedtodisk)|PageMappedToDisk' fs/buffer.c fs/ext4/readpage.c fs/f2fs/data.c fs/f2fs/file.c fs/fuse/dev.c fs/mpage.c fs/nilfs2/file.c fs/nilfs2/page.c include/trace/events/pagemap.h mm/memory.c mm/migrate.c mm/truncate.c $ git grep -El '(folio.*private_2)|PagePrivate2' fs/btrfs/ctree.h fs/ceph/addr.c fs/netfs/buffered_read.c fs/netfs/fscache_io.c fs/netfs/io.c fs/nfs/file.c fs/nfs/fscache.h fs/nfs/write.c include/linux/netfs.h include/linux/pagemap.h mm/filemap.c mm/migrate.c The one thing that's going to stand in the way of this is that various parts of the VFS treat private_2 as a "wait for this bit to be clear", due to its use in fscache (which is going away). So my approach here is going to be: - Rename mappedtodisk to be PG_owner_priv_2 (add appropriate aliases) - Switch btrfs to use owner_priv_2 instead of private_2 - Wait for the fscache use of private2 to finish its deprecation cycle - Remove private_2 entirely Sound good?