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>