X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=mm%2Fshmem.c;h=32f6763f16fb82ad7068c4d73479a96583f4ef15;hp=1c702f6f1241fadb04e83ac4e1c0aecab4d7de4b;hb=8079b1c859c44f27d63da4951f5038a16589a563;hpb=e504f3fdd63d486d45b18009e5a65f2e329acb0a 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: if (unlikely(!page)) continue; if (radix_tree_exception(page)) { - if (radix_tree_exceptional_entry(page)) - goto export; - /* radix_tree_deref_retry(page) */ - goto restart; + if (radix_tree_deref_retry(page)) + goto restart; + /* + * Otherwise, we must be storing a swap entry + * here as an exceptional entry: so return it + * without attempting to raise page count. + */ + goto export; } if (!page_cache_get_speculative(page)) goto repeat;