shmem.c (c3cc99ff5d24e2eeaf7ec2032e720681916990e3) shmem.c (e286781d5f2e9c846e012a39653a166e9d31777d)
1/*
2 * Resizable virtual memory filesystem for Linux.
3 *
4 * Copyright (C) 2000 Linus Torvalds.
5 * 2000 Transmeta Corp.
6 * 2000-2001 Christoph Rohland
7 * 2000-2001 SAP AG
8 * 2002 Red Hat Inc.

--- 922 unchanged lines hidden (view full) ---

931 mem_cgroup_uncharge_cache_page(page);
932 goto out;
933 }
934 error = 1;
935
936 spin_lock(&info->lock);
937 ptr = shmem_swp_entry(info, idx, NULL);
938 if (ptr && ptr->val == entry.val) {
1/*
2 * Resizable virtual memory filesystem for Linux.
3 *
4 * Copyright (C) 2000 Linus Torvalds.
5 * 2000 Transmeta Corp.
6 * 2000-2001 Christoph Rohland
7 * 2000-2001 SAP AG
8 * 2002 Red Hat Inc.

--- 922 unchanged lines hidden (view full) ---

931 mem_cgroup_uncharge_cache_page(page);
932 goto out;
933 }
934 error = 1;
935
936 spin_lock(&info->lock);
937 ptr = shmem_swp_entry(info, idx, NULL);
938 if (ptr && ptr->val == entry.val) {
939 error = add_to_page_cache(page, inode->i_mapping,
939 error = add_to_page_cache_locked(page, inode->i_mapping,
940 idx, GFP_NOWAIT);
941 /* does mem_cgroup_uncharge_cache_page on error */
942 } else /* we must compensate for our precharge above */
943 mem_cgroup_uncharge_cache_page(page);
944
945 if (error == -EEXIST) {
946 struct page *filepage = find_get_page(inode->i_mapping, idx);
947 error = 1;

--- 348 unchanged lines hidden (view full) ---

1296 spin_unlock(&info->lock);
1297 copy_highpage(filepage, swappage);
1298 unlock_page(swappage);
1299 page_cache_release(swappage);
1300 flush_dcache_page(filepage);
1301 SetPageUptodate(filepage);
1302 set_page_dirty(filepage);
1303 swap_free(swap);
940 idx, GFP_NOWAIT);
941 /* does mem_cgroup_uncharge_cache_page on error */
942 } else /* we must compensate for our precharge above */
943 mem_cgroup_uncharge_cache_page(page);
944
945 if (error == -EEXIST) {
946 struct page *filepage = find_get_page(inode->i_mapping, idx);
947 error = 1;

--- 348 unchanged lines hidden (view full) ---

1296 spin_unlock(&info->lock);
1297 copy_highpage(filepage, swappage);
1298 unlock_page(swappage);
1299 page_cache_release(swappage);
1300 flush_dcache_page(filepage);
1301 SetPageUptodate(filepage);
1302 set_page_dirty(filepage);
1303 swap_free(swap);
1304 } else if (!(error = add_to_page_cache(
1305 swappage, mapping, idx, GFP_NOWAIT))) {
1304 } else if (!(error = add_to_page_cache_locked(swappage, mapping,
1305 idx, GFP_NOWAIT))) {
1306 info->flags |= SHMEM_PAGEIN;
1307 shmem_swp_set(info, entry, 0);
1308 shmem_swp_unmap(entry);
1309 delete_from_swap_cache(swappage);
1310 spin_unlock(&info->lock);
1311 filepage = swappage;
1312 set_page_dirty(filepage);
1313 swap_free(swap);

--- 1290 unchanged lines hidden ---
1306 info->flags |= SHMEM_PAGEIN;
1307 shmem_swp_set(info, entry, 0);
1308 shmem_swp_unmap(entry);
1309 delete_from_swap_cache(swappage);
1310 spin_unlock(&info->lock);
1311 filepage = swappage;
1312 set_page_dirty(filepage);
1313 swap_free(swap);

--- 1290 unchanged lines hidden ---