On Fri, May 31, 2013 at 11:39:01AM -0700, Dave Hansen wrote: > > From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > > __remove_mapping() only deals with pages with mappings, meaning > page cache and swap cache. > > At this point, the page has been removed from the mapping's radix > tree, and we need to ensure that any fs-specific (or swap- > specific) resources are freed up. > > We will be using this function from a second location in a > following patch. > > Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > Acked-by: Mel Gorman <mgorman@xxxxxxx> Reviewed-by: Minchan Kim <minchan@xxxxxxxxxx> Again, a nitpick. Sorry. > --- > > linux.git-davehans/mm/vmscan.c | 28 +++++++++++++++++++--------- > 1 file changed, 19 insertions(+), 9 deletions(-) > > diff -puN mm/vmscan.c~free_mapping_page mm/vmscan.c > --- linux.git/mm/vmscan.c~free_mapping_page 2013-05-30 16:07:51.461115968 -0700 > +++ linux.git-davehans/mm/vmscan.c 2013-05-30 16:07:51.465116144 -0700 > @@ -497,6 +497,24 @@ static int __remove_mapping(struct addre > return 1; > } > > +/* > + * Release any resources the mapping had tied up in > + * the page. It could be a one line. > + */ > +static void mapping_release_page(struct address_space *mapping, > + struct page *page) > +{ > + if (PageSwapCache(page)) { > + swapcache_free_page_entry(page); > + } else { > + void (*freepage)(struct page *); > + freepage = mapping->a_ops->freepage; > + mem_cgroup_uncharge_cache_page(page); > + if (freepage != NULL) > + freepage(page); > + } > +} > + > static int lock_remove_mapping(struct address_space *mapping, struct page *page) > { > int ret; > @@ -510,15 +528,7 @@ static int lock_remove_mapping(struct ad > if (!ret) > return 0; > > - if (PageSwapCache(page)) { > - swapcache_free_page_entry(page); > - } else { > - void (*freepage)(struct page *); > - freepage = mapping->a_ops->freepage; > - mem_cgroup_uncharge_cache_page(page); > - if (freepage != NULL) > - freepage(page); > - } > + mapping_release_page(mapping, page); > return ret; > } > > _ > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>