]> git.baikalelectronics.ru Git - kernel.git/commit
tmpfs: simplify filepage/swappage
authorHugh Dickins <hughd@google.com>
Tue, 26 Jul 2011 00:12:36 +0000 (17:12 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Jul 2011 03:57:11 +0000 (20:57 -0700)
commiteffaeb1bff7bcb56d05ca511b4d93ad3b6fbcc8a
treea8d371d8a3727110310cba457840be0f2cfb77c6
parentf26f4e08663dfcbcc960f7908fdf19eaa2f4a0b7
tmpfs: simplify filepage/swappage

We can now simplify shmem_getpage_gfp(): there is no longer a dilemma of
filepage passed in via shmem_readpage(), then swappage found, which must
then be copied over to it.

Although at first it's tempting to replace the **pagep arg by returning
struct page *, that makes a mess of IS_ERR_OR_NULL(page)s in all the
callers, so leave as is.

Insert BUG_ON(!PageUptodate) when we find and lock page: some of the
complication came from uninitialized pages inserted into filecache prior
to readpage; but now we're in control, and only release pagelock on
filecache once it's uptodate (if an error occurs in reading back from
swap, the page remains in swapcache, never moved to filecache).

Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/shmem.c