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 --- |