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