Thread (30 messages) 30 messages, 4 authors, 2021-03-23

Re: [PATCH v4 02/28] mm: Add an unlock function for PG_private_2/PG_fscache

From: Matthew Wilcox <willy@infradead.org>
Date: 2021-03-16 23:34:15
Also in: ceph-devel, linux-cifs, linux-fsdevel, linux-nfs, lkml

On Tue, Mar 16, 2021 at 08:38:00PM +0000, David Howells wrote:
Matthew Wilcox [off-list ref] wrote:
quoted
So ... a page with both flags cleared should have a refcount of N.
A page with one or both flags set should have a refcount of N+1.
...
How is a poor filesystem supposed to make that true?  Also btrfs has this
problem since it uses private_2 for its own purposes.
It's simpler if it's N+2 for both patches set.  Btw, patch 13 adds that - and
possibly that should be merged into an earlier patch.
So ...

static inline int page_has_private(struct page *page)
{
	unsigned long flags = page->flags;
	return ((flags >> PG_private) & 1) + ((flags >> PG_private_2) & 1);
}

perhaps?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help