Thread (20 messages) 20 messages, 3 authors, 2013-08-22

Re: [patch 4/9] mm + fs: prepare for non-page entries in page cache radix trees

From: Johannes Weiner <hannes@cmpxchg.org>
Date: 2013-08-22 07:20:41
Also in: linux-fsdevel, lkml

On Tue, Aug 20, 2013 at 01:59:10PM -0700, Andrew Morton wrote:
On Sat, 17 Aug 2013 15:31:18 -0400 Johannes Weiner [off-list ref] wrote:
quoted
shmem mappings already contain exceptional entries where swap slot
information is remembered.

To be able to store eviction information for regular page cache,
prepare every site dealing with the radix trees directly to handle
entries other than pages.

The common lookup functions will filter out non-page entries and
return NULL for page cache holes, just as before.  But provide a raw
version of the API which returns non-page entries as well, and switch
shmem over to use it.


...

-/**
- * find_get_page - find and get a page reference
- * @mapping: the address_space to search
- * @offset: the page index
- *
- * Is there a pagecache struct page at the given (mapping, offset) tuple?
- * If yes, increment its refcount and return it; if no, return NULL.
- */
-struct page *find_get_page(struct address_space *mapping, pgoff_t offset)
+struct page *__find_get_page(struct address_space *mapping, pgoff_t offset)
 {
 	void **pagep;
 	struct page *page;
@@ -812,24 +828,31 @@ out:
 
 	return page;
 }
-EXPORT_SYMBOL(find_get_page);
+EXPORT_SYMBOL(__find_get_page);
Deleting the interface documentation for a global, exported-to-modules
function was a bit rude.

And it does need documentation, to tell people that it can return the
non-pages.
I didn't really delete documentation as much as moving it to the new
find_get_page() definition (the above is a rename).  But yeah, I
should probably add some documentation to the new function as well.
Does it have the same handling of non-pages as __find_get_pages()?  It
had better, given the naming!
Yes, the only difference is single vs. multi lookup.  The underscore
versions may return non-pages, the traditional interface filters them.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help