Messages in this thread | | | From | David Howells <> | Subject | Re: [RFC PATCH 54/61] afs: Wait on PG_fscache before modifying/releasing a page | Date | Wed, 06 May 2020 15:24:32 +0100 |
| |
Matthew Wilcox <willy@infradead.org> wrote:
> > Won't that screw up ITER_MAPPING? Does that mean that ITER_MAPPING isn't > > viable? > > Can you remind me why ITER_MAPPING needs: > > "The caller must guarantee that the pages are all present and they must be > locked using PG_locked, PG_writeback or PG_fscache to prevent them from > going away or being migrated whilst they're being accessed." > > An elevated refcount prevents migration, and it also prevents the pages > from being freed. It doesn't prevent them from being truncated out of > the file, but it does ensure the pages aren't reallocated.
ITER_MAPPING relies on the mapping to maintain the pointers to the pages so that it can find them rather than being like ITER_BVEC where there's a separate list.
Truncate removes the pages from the mapping - at which point ITER_MAPPING can no longer find them.
David
| |