Files
tegra-linux-noble/include/linux
Minchan Kim 97cecb5a25 mm: introduce delete_from_page_cache()
Presently we increase the page refcount in add_to_page_cache() but don't
decrease it in remove_from_page_cache().  Such asymmetry adds confusion,
requiring that callers notice it and a comment explaining why they release
a page reference.  It's not a good API.

A long time ago, Hugh tried it (http://lkml.org/lkml/2004/10/24/140) but
gave up because reiser4's drop_page() had to unlock the page between
removing it from page cache and doing the page_cache_release().  But now
the situation is changed.  I think at least things in current mainline
don't have any obstacles.  The problem is for out-of-mainline filesystems
- if they have done such things as reiser4, this patch could be a problem
but they will discover this at compile time since we remove
remove_from_page_cache().

This patch:

This function works as just wrapper remove_from_page_cache().  The
difference is that it decreases page references in itself.  So caller have
to make sure it has a page reference before calling.

This patch is ready for removing remove_from_page_cache().

Signed-off-by: Minchan Kim <minchan.kim@gmail.com>
Cc: Christoph Hellwig <hch@infradead.org>
Acked-by: Hugh Dickins <hughd@google.com>
Acked-by: Mel Gorman <mel@csn.ul.ie>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Reviewed-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Edward Shishkin <edward.shishkin@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-03-22 17:44:02 -07:00
..
2011-03-18 23:38:50 -07:00
2011-01-31 14:03:00 -08:00
2011-03-22 17:43:59 -07:00
2011-02-16 13:30:48 +01:00
2011-02-16 13:30:48 +01:00
2011-02-03 15:39:16 -08:00
2011-03-14 19:12:20 -04:00
2011-03-17 21:31:32 -04:00
2011-03-04 17:53:39 -08:00
2011-03-05 10:56:00 +01:00
2011-02-23 00:53:26 +00:00
2011-03-20 14:50:53 +01:00
2011-02-27 16:11:51 -08:00
2011-03-11 14:15:35 +01:00
2011-01-31 14:03:00 -08:00
2011-02-17 11:12:40 -08:00
2011-02-01 08:23:22 +10:00
2011-02-13 16:54:24 -08:00
2011-03-22 17:43:59 -07:00
2011-02-15 10:24:31 +01:00
2011-03-11 15:38:44 -05:00
2011-03-14 18:25:53 -04:00
2011-03-11 15:13:26 -05:00
2011-03-15 00:43:16 +01:00
2011-02-28 18:00:31 -08:00
2011-02-21 12:53:08 -08:00
2011-02-02 15:28:18 +01:00