aboutsummaryrefslogtreecommitdiffstats
path: root/mm/shmem.c
diff options
context:
space:
mode:
authorHugh Dickins <hughd@google.com>2011-08-03 19:21:28 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-08-03 20:25:24 -0400
commit8079b1c859c44f27d63da4951f5038a16589a563 (patch)
tree677e77a4c9d3b9c33427196cb5f860ebcf530b15 /mm/shmem.c
parente504f3fdd63d486d45b18009e5a65f2e329acb0a (diff)
mm: clarify the radix_tree exceptional cases
Make the radix_tree exceptional cases, mostly in filemap.c, clearer. It's hard to devise a suitable snappy name that illuminates the use by shmem/tmpfs for swap, while keeping filemap/pagecache/radix_tree generality. And akpm points out that /* radix_tree_deref_retry(page) */ comments look like calls that have been commented out for unknown reason. Skirt the naming difficulty by rearranging these blocks to handle the transient radix_tree_deref_retry(page) case first; then just explain the remaining shmem/tmpfs swap case in a comment. Signed-off-by: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/shmem.c')
-rw-r--r--mm/shmem.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/mm/shmem.c b/mm/shmem.c
index 1c702f6f1241..32f6763f16fb 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -332,10 +332,14 @@ repeat:
332 if (unlikely(!page)) 332 if (unlikely(!page))
333 continue; 333 continue;
334 if (radix_tree_exception(page)) { 334 if (radix_tree_exception(page)) {
335 if (radix_tree_exceptional_entry(page)) 335 if (radix_tree_deref_retry(page))
336 goto export; 336 goto restart;
337 /* radix_tree_deref_retry(page) */ 337 /*
338 goto restart; 338 * Otherwise, we must be storing a swap entry
339 * here as an exceptional entry: so return it
340 * without attempting to raise page count.
341 */
342 goto export;
339 } 343 }
340 if (!page_cache_get_speculative(page)) 344 if (!page_cache_get_speculative(page))
341 goto repeat; 345 goto repeat;