shmem.c (08fb98f5bf95cef902fc30427b39617a6f6875c7) | shmem.c (7f556567036cb7f89aabe2f0954b08566b4efb53) |
---|---|
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. --- 2211 unchanged lines hidden (view full) --- 2220 if (signal_pending(current)) 2221 error = -EINTR; 2222 else if (shmem_falloc.nr_unswapped > shmem_falloc.nr_falloced) 2223 error = -ENOMEM; 2224 else 2225 error = shmem_getpage(inode, index, &page, SGP_FALLOC); 2226 if (error) { 2227 /* Remove the !PageUptodate pages we added */ | 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. --- 2211 unchanged lines hidden (view full) --- 2220 if (signal_pending(current)) 2221 error = -EINTR; 2222 else if (shmem_falloc.nr_unswapped > shmem_falloc.nr_falloced) 2223 error = -ENOMEM; 2224 else 2225 error = shmem_getpage(inode, index, &page, SGP_FALLOC); 2226 if (error) { 2227 /* Remove the !PageUptodate pages we added */ |
2228 shmem_undo_range(inode, 2229 (loff_t)start << PAGE_SHIFT, 2230 ((loff_t)index << PAGE_SHIFT) - 1, true); | 2228 if (index > start) { 2229 shmem_undo_range(inode, 2230 (loff_t)start << PAGE_SHIFT, 2231 ((loff_t)index << PAGE_SHIFT) - 1, true); 2232 } |
2231 goto undone; 2232 } 2233 2234 /* 2235 * Inform shmem_writepage() how far we have reached. 2236 * No need for lock or barrier: we have the page lock. 2237 */ 2238 shmem_falloc.next++; --- 1265 unchanged lines hidden --- | 2233 goto undone; 2234 } 2235 2236 /* 2237 * Inform shmem_writepage() how far we have reached. 2238 * No need for lock or barrier: we have the page lock. 2239 */ 2240 shmem_falloc.next++; --- 1265 unchanged lines hidden --- |