mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
treewide: remove PagePrivate() and PG_private from comments and docs
PG_private and PagePrivate() are no longer used. Adjust related comments and documentations to refer to page/folio->private instead. hugetlbfs_reserv.rst is outdated and left unchanged. It should be rewritten. Link: https://lore.kernel.org/20260920-remove-pg_private-v5-16-bb68b6a21869@nvidia.com Signed-off-by: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: David Hildenbrand (Arm) <david@kernel.org> Assisted-by: LLM Cc: Ilya Dryomov <idryomov@gmail.com> Cc: Alex Markuze <amarkuze@redhat.com> Cc: Viacheslav Dubeyko <slava@dubeyko.com> Cc: Trond Myklebust <trondmy@kernel.org> Cc: Anna Schumaker <anna@kernel.org> Cc: Richard Weinberger <richard@nod.at> Cc: Zhihao Cheng <chengzhihao1@huawei.com> Cc: Lorenzo Stoakes <ljs@kernel.org> Cc: "Liam R. Howlett" <liam@infradead.org> Cc: Vlastimil Babka <vbabka@kernel.org> Cc: Mike Rapoport <rppt@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Michal Hocko <mhocko@suse.com>
This commit is contained in:
parent
effd0cf5f5
commit
bbe5d3b3d4
|
|
@ -325,7 +325,7 @@ NR_FREE_PAGES
|
|||
On linux-2.6.21 or later, the number of free pages is in
|
||||
vm_stat[NR_FREE_PAGES]. Used to get the number of free pages.
|
||||
|
||||
PG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask
|
||||
PG_lru|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Page attributes. These flags are used to filter various unnecessary for
|
||||
|
|
|
|||
|
|
@ -649,8 +649,8 @@ Writeback.
|
|||
|
||||
The first can be used independently to the others. The VM can try to
|
||||
release clean pages in order to reuse them. To do this it can call
|
||||
->release_folio on clean folios with the private
|
||||
flag set. Clean pages without PagePrivate and with no external references
|
||||
->release_folio on clean folios with folio->private set. Clean pages
|
||||
without folio->private set and with no external references
|
||||
will be released without notice being given to the address_space.
|
||||
|
||||
To achieve this functionality, pages need to be placed on an LRU with
|
||||
|
|
@ -674,7 +674,7 @@ filemap_fdatawait_range, to wait for all writeback to complete.
|
|||
|
||||
An address_space handler may attach extra information to a page,
|
||||
typically using the 'private' field in the 'struct page'. If such
|
||||
information is attached, the PG_Private flag should be set. This will
|
||||
information is attached, non-NULL 'private' field will
|
||||
cause various VM routines to make extra calls into the address_space
|
||||
handler to deal with that data.
|
||||
|
||||
|
|
|
|||
|
|
@ -484,7 +484,7 @@ static int nfs_write_end(const struct kiocb *iocb,
|
|||
* Partially or wholly invalidate a page
|
||||
* - Release the private state associated with a page if undergoing complete
|
||||
* page invalidation
|
||||
* - Called if either PG_private or PG_fscache is set on the page
|
||||
* - Called if either folio->private or PG_fscache is set on the page
|
||||
* - Caller holds page lock
|
||||
*/
|
||||
static void nfs_invalidate_folio(struct folio *folio, size_t offset,
|
||||
|
|
@ -555,7 +555,7 @@ static void nfs_check_dirty_writeback(struct folio *folio,
|
|||
* Attempt to clear the private state associated with a page when an error
|
||||
* occurs that requires the cached contents of an inode to be written back or
|
||||
* destroyed
|
||||
* - Called if either PG_private or fscache is set on the page
|
||||
* - Called if either page->private or fscache is set on the page
|
||||
* - Caller holds page lock
|
||||
* - Return 0 if successful, -error otherwise
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@
|
|||
* This file implements VFS file and inode operations for regular files, device
|
||||
* nodes and symlinks as well as address space operations.
|
||||
*
|
||||
* UBIFS uses 2 page flags: @PG_private and @PG_checked. @PG_private is set if
|
||||
* UBIFS uses folio->private and page flag @PG_checked. folio->private is set if
|
||||
* the page is dirty and is used for optimization purposes - dirty pages are
|
||||
* not budgeted so the flag shows that 'ubifs_write_end()' should not release
|
||||
* not budgeted so it shows that 'ubifs_write_end()' should not release
|
||||
* the budget for this page. The @PG_checked flag is set if full budgeting is
|
||||
* required for the page e.g., when it corresponds to a file hole or it is
|
||||
* beyond the file size. The budgeting is done in 'ubifs_write_begin()', because
|
||||
* it is OK to fail in this function, and the budget is released in
|
||||
* 'ubifs_write_end()'. So the @PG_private and @PG_checked flags carry
|
||||
* 'ubifs_write_end()'. So the folio->private and the @PG_checked flag carry
|
||||
* information about how the page was budgeted, to make it possible to release
|
||||
* the budget properly.
|
||||
*
|
||||
|
|
@ -1509,7 +1509,7 @@ static vm_fault_t ubifs_vm_page_mkwrite(struct vm_fault *vmf)
|
|||
*
|
||||
* At the moment we do not know whether the folio is dirty or not, so we
|
||||
* assume that it is not and budget for a new folio. We could look at
|
||||
* the @PG_private flag and figure this out, but we may race with write
|
||||
* folio->private and figure this out, but we may race with write
|
||||
* back and the folio state may change by the time we lock it, so this
|
||||
* would need additional care. We do not bother with this at the
|
||||
* moment, although it might be good idea to do. Instead, we allocate
|
||||
|
|
|
|||
|
|
@ -2049,20 +2049,21 @@ vm_fault_t finish_fault(struct vm_fault *vmf);
|
|||
*
|
||||
* A pagecache page contains an opaque `private' member, which belongs to the
|
||||
* page's address_space. Usually, this is the address of a circular list of
|
||||
* the page's disk buffers. PG_private must be set to tell the VM to call
|
||||
* into the filesystem to release these pages.
|
||||
* the page's disk buffers. It tells the VM to call into the filesystem to
|
||||
* release these pages.
|
||||
*
|
||||
* A folio may belong to an inode's memory mapping. In this case,
|
||||
* folio->mapping points to the inode, and folio->index is the file
|
||||
* offset of the folio, in units of PAGE_SIZE.
|
||||
*
|
||||
* If pagecache pages are not associated with an inode, they are said to be
|
||||
* anonymous pages. These may become associated with the swapcache, and in that
|
||||
* case PG_swapcache is set, and page->private is an offset into the swapcache.
|
||||
* If pagecache folios are not associated with an inode, they are said to be
|
||||
* anonymous folios. These may become associated with the swapcache, and in that
|
||||
* case PG_swapcache is set, and folio->private is an offset into the swapcache.
|
||||
*
|
||||
* In either case (swapcache or inode backed), the pagecache itself holds one
|
||||
* reference to the page. Setting PG_private should also increment the
|
||||
* refcount. The each user mapping also has a reference to the page.
|
||||
* reference to the folio. Attaching filesystem private data via
|
||||
* folio_attach_private() also increments the refcount. Each user mapping also
|
||||
* has a reference to the folio.
|
||||
*
|
||||
* The pagecache pages are stored in a per-mapping radix tree, which is
|
||||
* rooted at mapping->i_pages, and indexed by offset.
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ struct page {
|
|||
};
|
||||
/**
|
||||
* @private: Mapping-private opaque data.
|
||||
* Usually used for buffer_heads if PagePrivate.
|
||||
* Usually used for buffer_heads.
|
||||
* Used for swp_entry_t if swapcache flag set.
|
||||
* Indicates order in the buddy system if PageBuddy
|
||||
* or on pcp_llist.
|
||||
|
|
@ -675,7 +675,7 @@ static inline void ptdesc_pmd_pts_init(struct ptdesc *ptdesc)
|
|||
#define STRUCT_PAGE_MAX_SHIFT (order_base_2(sizeof(struct page)))
|
||||
|
||||
/*
|
||||
* page_private can be used on tail pages. However, PagePrivate is only
|
||||
* page_private can be used on tail pages. However, it is only
|
||||
* checked by the VM on the head page. So page_private on the tail pages
|
||||
* should be used for data that's ancillary to the head page (eg attaching
|
||||
* buffer heads to tail pages after attaching buffer heads to the head page)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user