)]}'
{
  "log": [
    {
      "commit": "1bfba4e8ea0e555e3a0296051517d96253660ccc",
      "tree": "48ced9016b5c08f1be217677c25e6879c07b5278",
      "parents": [
        "a7addcea6ac7c0e9733a48cda06ca0880f116a48"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Jun 26 00:24:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:17 2006 -0700"
      },
      "message": "[PATCH] core: use list_move()\n\nThis patch converts the combination of list_del(A) and list_add(A, B) to\nlist_move(A, B).\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1d77062b1402aef5b26e1d3776991126e8026bde",
      "tree": "96e4da18878f5fb2ae50b260e194b78803d4c7a9",
      "parents": [
        "25581ad107be24b89d805da51a03d616f8f3d1be",
        "76a9f26c9e40e9c0ed5dc8f0cedd74e733f0088d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:54:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:54:14 2006 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (51 commits)\n  nfs: remove nfs_put_link()\n  nfs-build-fix-99\n  git-nfs-build-fixes\n  Merge branch \u0027odirect\u0027\n  NFS: alloc nfs_read/write_data as direct I/O is scheduled\n  NFS: Eliminate nfs_get_user_pages()\n  NFS: refactor nfs_direct_free_user_pages\n  NFS: remove user_addr, user_count, and pos from nfs_direct_req\n  NFS: \"open code\" the NFS direct write rescheduler\n  NFS: Separate functions for counting outstanding NFS direct I/Os\n  NLM: Fix reclaim races\n  NLM: sem to mutex conversion\n  locks.c: add the fl_owner to nlm_compare_locks\n  NFS: Display the chosen RPCSEC_GSS security flavour in /proc/mounts\n  NFS: Split fs/nfs/inode.c\n  NFS: Fix typo in nfs_do_clone_mount()\n  NFS: Fix compile errors introduced by referrals patches\n  NFSv4: Ensure that referral mounts bind to a reserved port\n  NFSv4: A root pathname is sent as a zero component4\n  NFSv4: Follow a referral\n  ...\n"
    },
    {
      "commit": "76d42bd96984832c4ea8bc8cbd74e496ac31409e",
      "tree": "138fb5c39d671166485cf2e16e450332daeb7081",
      "parents": [
        "78dbe706e22f54bce61571ad837238382e1ba5f9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Sun Jun 25 05:48:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:17 2006 -0700"
      },
      "message": "[PATCH] readahead: backoff on I/O error\n\nBackoff readahead size exponentially on I/O error.\n\nMichael Tokarev \u003cmjt@tls.msk.ru\u003e described the problem as:\n\n[QUOTE]\nSuppose there\u0027s a CD-rom with a scratch/etc, one sector is unreadable.\nIn order to \"fix\" it, one have to read it and write to another CD-rom,\nor something.. or just ignore the error (if it\u0027s just a skip in a video\nstream).  Let\u0027s assume the unreadable block is number U.\n\nBut current behavior is just insane.  An application requests block\nnumber N, which is before U. Kernel tries to read-ahead blocks N..U.\nCdrom drive tries to read it, re-read it.. for some time.  Finally,\nwhen all the N..U-1 blocks are read, kernel returns block number N\n(as requested) to an application, successefully.\n\nNow an app requests block number N+1, and kernel tries to read\nblocks N+1..U+1.  Retrying again as in previous step.\n\nAnd so on, up to when an app requests block number U-1.  And when,\nfinally, it requests block U, it receives read error.\n\nSo, kernel currentry tries to re-read the same failing block as\nmany times as the current readahead value (256 (times?) by default).\n\nThis whole process already killed my cdrom drive (I posted about it\nto LKML several months ago) - literally, the drive has fried, and\ndoes not work anymore.  Ofcourse that problem was a bug in firmware\n(or whatever) of the drive *too*, but.. main problem with that is\ncurrent readahead logic as described above.\n[/QUOTE]\n\nWhich was confirmed by Jens Axboe \u003caxboe@suse.de\u003e:\n\n[QUOTE]\nFor ide-cd, it tends do only end the first part of the request on a\nmedium error. So you may see a lot of repeats :/\n[/QUOTE]\n\nWith this patch, retries are expected to be reduced from, say, 256, to 5.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Wu Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd40cddae2211950c81c41f25a818189f80fd0b5",
      "tree": "7568908eb5a049308aa0ad42ef31f080add0ef21",
      "parents": [
        "43d23f9039fc810ecd621f1e4f9d578eadce058a"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sun Jun 25 05:48:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:10 2006 -0700"
      },
      "message": "[PATCH] kernel-doc: mm/readhead fixup\n\nPut short function description for read_cache_pages() on one line as needed\nby kernel-doc.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01408c4939479ec46c15aa7ef6e2406be50eeeca",
      "tree": "106ee144cc7214cc5cb78bc35a49fc654ef16fe9",
      "parents": [
        "5f507d9e05b4dbfee34f3d967623ad3fbf0f28b3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jun 25 05:47:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:09 2006 -0700"
      },
      "message": "[PATCH] Prepare for __copy_from_user_inatomic to not zero missed bytes\n\nThe problem is that when we write to a file, the copy from userspace to\npagecache is first done with preemption disabled, so if the source address is\nnot immediately available the copy fails *and* *zeros* *the* *destination*.\n\nThis is a problem because a concurrent read (which admittedly is an odd thing\nto do) might see zeros rather that was there before the write, or what was\nthere after, or some mixture of the two (any of these being a reasonable thing\nto see).\n\nIf the copy did fail, it will immediately be retried with preemption\nre-enabled so any transient problem with accessing the source won\u0027t cause an\nerror.\n\nThe first copying does not need to zero any uncopied bytes, and doing so\ncauses the problem.  It uses copy_from_user_atomic rather than copy_from_user\nso the simple expedient is to change copy_from_user_atomic to *not* zero out\nbytes on failure.\n\nThe first of these two patches prepares for the change by fixing two places\nwhich assume copy_from_user_atomic does zero the tail.  The two usages are\nvery similar pieces of code which copy from a userspace iovec into one or more\npage-cache pages.  These are changed to remove the assumption.\n\nThe second patch changes __copy_from_user_inatomic* to not zero the tail.\nOnce these are accepted, I will look at similar patches of other architectures\nwhere this is important (ppc, mips and sparc being the ones I can find).\n\nThis patch:\n\nThere is a problem with __copy_from_user_inatomic zeroing the tail of the\nbuffer in the case of an error.  As it is called in atomic context, the error\nmay be transient, so it results in zeros being written where maybe they\nshouldn\u0027t be.\n\nIn the usage in filemap, this opens a window for a well timed read to see data\n(zeros) which is not consistent with any ordering of reads and writes.\n\nMost cases where __copy_from_user_inatomic is called, a failure results in\n__copy_from_user being called immediately.  As long as the latter zeros the\ntail, the former doesn\u0027t need to.  However in *copy_from_user_iovec\nimplementations (in both filemap and ntfs/file), it is assumed that\ncopy_from_user_inatomic will zero the tail.\n\nThis patch removes that assumption, so that after this patch it will\nbe safe for copy_from_user_inatomic to not zero the tail.\n\nThis patch also adds some commentary to filemap.h and asm-i386/uaccess.h.\n\nAfter this patch, all architectures that might disable preempt when\nkmap_atomic is called need to have their __copy_from_user_inatomic* \"fixed\".\nThis includes\n - powerpc\n - i386\n - mips\n - sparc\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "43b0bc00fdbf2f1503a57f0c2c1338438c5d2805",
      "tree": "1009ac1c764b21c50f96e2a108a2736504d9588a",
      "parents": [
        "dc851a0fd2736e8dc3e90bd990cb911a0013da67"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Sun Jun 25 05:47:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:08 2006 -0700"
      },
      "message": "[PATCH] cpuset: remove extra cpuset_zone_allowed check in __alloc_pages\n\nThis is redundant with check in wakeup_kswapd.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d616e09ab33aa4d013a93c9b393efd5cebf78521",
      "tree": "13837ef8dc9e955c621d798235c064218b56361d",
      "parents": [
        "bc64863814b14a4f75884746e68d3bf9f96b3559"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jun 25 05:47:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:06 2006 -0700"
      },
      "message": "[PATCH] pdflush: handle resume wakeups\n\npdflush is carefully designed to ensure that all wakeups have some\ncorresponding work to do - if a woken-up pdflush thread discovers that it\nhasn\u0027t been given any work to do then this is considered an error.\n\nThat all broke when swsusp came along - because a timer-delivered wakeup to a\nfrozen pdflush thread will just get lost.  This causes the pdflush thread to\nget lost as well: the writeback timer is supposed to be re-armed by pdflush in\nprocess context, but pdflush doesn\u0027t execute the callout which does this.\n\nFix that up by ignoring the return value from try_to_freeze(): jsut proceed,\nsee if we have any work pending and only go back to sleep if that is not the\ncase.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6a1530d692d6a60cdf15dfbcfea07f5324d7b9f",
      "tree": "bb34a4d745eb7f7e8d3de40b171fac17822ee8ac",
      "parents": [
        "7b2259b3e53f128c10a9fded0965e69d4a949847"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jun 25 05:46:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:00:55 2006 -0700"
      },
      "message": "[PATCH] Allow migration of mlocked pages\n\nHugh clarified the role of VM_LOCKED.  So we can now implement page\nmigration for mlocked pages.\n\nAllow the migration of mlocked pages.  This means that try_to_unmap must\nunmap mlocked pages in the migration case.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b2259b3e53f128c10a9fded0965e69d4a949847",
      "tree": "c1827144c22dd49775190e05de791531e9fd21fd",
      "parents": [
        "68402ddc677005ed1b1359bbc1f279548cfc0928"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jun 25 05:46:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:00:55 2006 -0700"
      },
      "message": "[PATCH] page migration: Support a vma migration function\n\nHooks for calling vma specific migration functions\n\nWith this patch a vma may define a vma-\u003evm_ops-\u003emigrate function.  That\nfunction may perform page migration on its own (some vmas may not contain page\nstructs and therefore cannot be handled by regular page migration.  Pages in a\nvma may require special preparatory treatment before migration is possible\netc) .  Only mmap_sem is held when the migration function is called.  The\nmigrate() function gets passed two sets of nodemasks describing the source and\nthe target of the migration.  The flags parameter either contains\n\nMPOL_MF_MOVE\twhich means that only pages used exclusively by\n\t\tthe specified mm should be moved\n\nor\n\nMPOL_MF_MOVE_ALL which means that pages shared with other processes\n\t\tshould also be moved.\n\nThe migration function returns 0 on success or an error condition.  An error\ncondition will prevent regular page migration from occurring.\n\nOn its own this patch cannot be included since there are no users for this\nfunctionality.  But it seems that the uncached allocator will need this\nfunctionality at some point.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f1a3cfcffaed2fbb3206179295c79ca8289f5c3",
      "tree": "d7adeab100ff8e2fe0b64fa5b2c9ef09ec60c842",
      "parents": [
        "09a9a45dc62fef5f46a0dc98a3cefdb464cc4aaa"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Jun 25 05:46:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:00:54 2006 -0700"
      },
      "message": "[PATCH] AOP_TRUNCATED_PAGE victims in read_pages() belong in the LRU\n\nAOP_TRUNCATED_PAGE victims in read_pages() belong in the LRU\n\nNick Piggin rightly pointed out that the introduction of AOP_TRUNCATED_PAGE\nto read_pages() was wrong to leave A_T_P victim pages in the page cache but\nnot put them in the LRU.  Failing to do so hid them from the VM.\n\nA_T_P just means that the aop method unlocked the page rather than\nperforming IO.  It would be very rare that the page was truncated between\nthe unlock and testing A_T_P.  So we leave the pages in the LRU for likely\nreuse soon rather than backing them back out of the page cache.  We do this\nby matching the behaviour before the A_T_P introduction which added pages\nto the LRU regardless of what -\u003ereadpage() did.\n\nThis doesn\u0027t include the unrelated cleanup in Nick\u0027s initial fix which\nchanged read_pages() to return void to match its only caller\u0027s behaviour of\nignoring errors.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "b31dc66a54ad986b6b73bdc49c8efc17cbad1833",
      "tree": "5591383c1cbffe11512da889c971f899333f1a44",
      "parents": [
        "271f18f102c789f59644bb6c53a69da1df72b2f4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Jun 13 08:26:10 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Jun 23 17:10:39 2006 +0200"
      },
      "message": "[PATCH] Kill PF_SYNCWRITE flag\n\nA process flag to indicate whether we are doing sync io is incredibly\nugly. It also causes performance problems when one does a lot of async\nio and then proceeds to sync it. Part of the io will go out as async,\nand the other part as sync. This causes a disconnect between the\npreviously submitted io and the synced io. For io schedulers such as CFQ,\nthis will cause us lost merges and suboptimal behaviour in scheduling.\n\nRemove PF_SYNCWRITE completely from the fsync/msync paths, and let\nthe O_DIRECT path just directly indicate that the writes are sync\nby using WRITE_SYNC instead.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "125e18745f16685f69a34fd6130d47598fc4bf54",
      "tree": "c97ed94b0525a572efa1bd4990a55b18be5d781d",
      "parents": [
        "78ce89c92bc6eaf5933b5664bff64253a7103bd7"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Fri Jun 23 02:06:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:08 2006 -0700"
      },
      "message": "[PATCH] More BUG_ON conversion\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cB.Zolnierkiewicz@elka.pw.edu.pl\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: \"Salyzyn, Mark\" \u003cmark_salyzyn@adaptec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0f23603fb2607315ce52432cc4225df410828cf",
      "tree": "7a32b42a64a64488aee0e91ab016d53c353f9482",
      "parents": [
        "57ae2508610d50893cb3e3bbb869ff70ff724a2a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jun 23 02:05:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:07 2006 -0700"
      },
      "message": "[PATCH] Remove semi-softlockup from invalidate_mapping_pages\n\nIf invalidate_mapping_pages is called to invalidate a very large mapping\n(e.g.  a very large block device) and if the only active page in that\ndevice is near the end (or at least, at a very large index), such as, say,\nthe superblock of an md array, and if that page happens to be locked when\ninvalidate_mapping_pages is called, then\n\n  pagevec_lookup will return this page and\n  as it is locked, \u0027next\u0027 will be incremented and pagevec_lookup\n  will be called again. and again. and again.\n  while we count from 0 upto a very large number.\n\nWe should really always set \u0027next\u0027 to \u0027page-\u003eindex+1\u0027 before going around\nthe loop again, not just if the page isn\u0027t locked.\n\nCc: \"Steinar H. Gunderson\" \u003csgunderson@bigfoot.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3cbc564024d8f174202f023e8a2991782f6a9431",
      "tree": "5d523ef9694b7a0bf07d4db58718f4654afa3f04",
      "parents": [
        "d09042da7284a86ffbdd18695f517a71514ed598"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Fri Jun 23 02:05:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:06 2006 -0700"
      },
      "message": "[PATCH] percpu_counters: create lib/percpu_counter.c\n\n- Move percpu_counter routines from mm/swap.c to lib/percpu_counter.c\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "090d2b185d8680fc26a2eaf4245d4171dcf4baf1",
      "tree": "67e604e3cd1bad3cfd034bced19a0fbff6a80c30",
      "parents": [
        "c330dda908b5a46469a997eea90b66f2f9f02b34"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:05:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] read_mapping_page for address space\n\nAdd read_mapping_page() which is used for callers that pass\nmapping-\u003ea_ops-\u003ereadpage as the filler for read_cache_page.  This removes\nsome duplication from filesystem code.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c22ce143d15eb288543fe9873e1c5ac1c01b69a1",
      "tree": "dc7d457b8952fc50dfc90df659b35de4117c61fc",
      "parents": [
        "7dbdf43cfa635ddc3701cc8d1eab07597cd731c0"
      ],
      "author": {
        "name": "Hiro Yoshioka",
        "email": "hyoshiok@miraclelinux.com",
        "time": "Fri Jun 23 02:04:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:56 2006 -0700"
      },
      "message": "[PATCH] x86: cache pollution aware __copy_from_user_ll()\n\nUse the x86 cache-bypassing copy instructions for copy_from_user().\n\nSome performance data are\n\nTotal of GLOBAL_POWER_EVENTS (CPU cycle samples)\n\n2.6.12.4.orig    1921587\n2.6.12.4.nt      1599424\n1599424/1921587\u003d83.23% (16.77% reduction)\n\nBSQ_CACHE_REFERENCE (L3 cache miss)\n2.6.12.4.orig      57427\n2.6.12.4.nt        20858\n20858/57427\u003d36.32% (63.7% reduction)\n\nL3 cache miss reduction of __copy_from_user_ll\nsamples  %\n37408    65.1412  vmlinux                  __copy_from_user_ll\n23        0.1103  vmlinux                  __copy_user_zeroing_intel_nocache\n23/37408\u003d0.061% (99.94% reduction)\n\nTop 5 of 2.6.12.4.nt\nCounted GLOBAL_POWER_EVENTS events (time during which processor is not stopped) with a unit mask of 0x01 (mandatory) count 100000\nsamples  %        app name                 symbol name\n128392    8.0274  vmlinux                  __copy_user_zeroing_intel_nocache\n64206     4.0143  vmlinux                  journal_add_journal_head\n59746     3.7355  vmlinux                  do_get_write_access\n47674     2.9807  vmlinux                  journal_put_journal_head\n46021     2.8774  vmlinux                  journal_dirty_metadata\npattern9-0-cpu4-0-09011728/summary.out\n\nCounted BSQ_CACHE_REFERENCE events (cache references seen by the bus unit) with a unit mask of 0x3f (multiple flags) count 3000\nsamples  %        app name                 symbol name\n69755     4.2861  vmlinux                  __copy_user_zeroing_intel_nocache\n55685     3.4215  vmlinux                  journal_add_journal_head\n52371     3.2179  vmlinux                  __find_get_block\n45504     2.7960  vmlinux                  journal_put_journal_head\n36005     2.2123  vmlinux                  journal_stop\npattern9-0-cpu4-0-09011744/summary.out\n\nCounted BSQ_CACHE_REFERENCE events (cache references seen by the bus unit) with a unit mask of 0x200 (read 3rd level cache miss) count 3000\nsamples  %        app name                 symbol name\n1147      5.4994  vmlinux                  journal_add_journal_head\n881       4.2240  vmlinux                  journal_dirty_data\n872       4.1809  vmlinux                  blk_rq_map_sg\n734       3.5192  vmlinux                  journal_commit_transaction\n617       2.9582  vmlinux                  radix_tree_delete\npattern9-0-cpu4-0-09011731/summary.out\n\niozone results are\n\noriginal 2.6.12.4 CPU time \u003d 207.768 sec\ncache aware       CPU time \u003d 184.783 sec\n(three times run)\n184.783/207.768\u003d88.94% (11.06% reduction)\n\noriginal:\npattern9-0-cpu4-0-08191720/iozone.out:  CPU Utilization: Wall time   45.997    CPU time   64.527    CPU utilization 140.28 %\npattern9-0-cpu4-0-08191741/iozone.out:  CPU Utilization: Wall time   46.878    CPU time   71.933    CPU utilization 153.45 %\npattern9-0-cpu4-0-08191743/iozone.out:  CPU Utilization: Wall time   45.152    CPU time   71.308    CPU utilization 157.93 %\n\ncache awre:\npattern9-0-cpu4-0-09011728/iozone.out:  CPU Utilization: Wall time   44.842    CPU time   62.465    CPU utilization 139.30 %\npattern9-0-cpu4-0-09011731/iozone.out:  CPU Utilization: Wall time   44.718    CPU time   59.273    CPU utilization 132.55 %\npattern9-0-cpu4-0-09011744/iozone.out:  CPU Utilization: Wall time   44.367    CPU time   63.045    CPU utilization 142.10 %\n\nSigned-off-by: Hiro Yoshioka \u003chyoshiok@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86c3a7645c05a7d06b72653aa4b2bea4e7229d1b",
      "tree": "ac68280e9c44dbc6ca4c88dc1e9c72a8f56be95e",
      "parents": [
        "35601547baf92d984b6e59cf3583649da04baea5"
      ],
      "author": {
        "name": "David Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Fri Jun 23 02:04:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:54 2006 -0700"
      },
      "message": "[PATCH] SELinux: add security_task_movememory calls to mm code\n\nThis patch inserts security_task_movememory hook calls into memory management\ncode to enable security modules to mediate this operation between tasks.\n\nSince the last posting, the hook has been renamed following feedback from\nChristoph Lameter.\n\nSigned-off-by: David Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "742755a1d8ce2b548428f7aacf1758b4bba50080",
      "tree": "53426657e14dc19a694d418274c9a6f4dcb8a997",
      "parents": [
        "95a402c3847cc16f4ba03013cd01404fa0f14c2e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] page migration: sys_move_pages(): support moving of individual pages\n\nmove_pages() is used to move individual pages of a process. The function can\nbe used to determine the location of pages and to move them onto the desired\nnode. move_pages() returns status information for each page.\n\nlong move_pages(pid, number_of_pages_to_move,\n\t\taddresses_of_pages[],\n\t\tnodes[] or NULL,\n\t\tstatus[],\n\t\tflags);\n\nThe addresses of pages is an array of void * pointing to the\npages to be moved.\n\nThe nodes array contains the node numbers that the pages should be moved\nto. If a NULL is passed instead of an array then no pages are moved but\nthe status array is updated. The status request may be used to determine\nthe page state before issuing another move_pages() to move pages.\n\nThe status array will contain the state of all individual page migration\nattempts when the function terminates. The status array is only valid if\nmove_pages() completed successfullly.\n\nPossible page states in status[]:\n\n0..MAX_NUMNODES\tThe page is now on the indicated node.\n\n-ENOENT\t\tPage is not present\n\n-EACCES\t\tPage is mapped by multiple processes and can only\n\t\tbe moved if MPOL_MF_MOVE_ALL is specified.\n\n-EPERM\t\tThe page has been mlocked by a process/driver and\n\t\tcannot be moved.\n\n-EBUSY\t\tPage is busy and cannot be moved. Try again later.\n\n-EFAULT\t\tInvalid address (no VMA or zero page).\n\n-ENOMEM\t\tUnable to allocate memory on target node.\n\n-EIO\t\tUnable to write back page. The page must be written\n\t\tback in order to move it since the page is dirty and the\n\t\tfilesystem does not provide a migration function that\n\t\twould allow the moving of dirty pages.\n\n-EINVAL\t\tA dirty page cannot be moved. The filesystem does not provide\n\t\ta migration function and has no ability to write back pages.\n\nThe flags parameter indicates what types of pages to move:\n\nMPOL_MF_MOVE\tMove pages that are only mapped by the process.\n\nMPOL_MF_MOVE_ALL Also move pages that are mapped by multiple processes.\n\t\tRequires sufficient capabilities.\n\nPossible return codes from move_pages()\n\n-ENOENT\t\tNo pages found that would require moving. All pages\n\t\tare either already on the target node, not present, had an\n\t\tinvalid address or could not be moved because they were\n\t\tmapped by multiple processes.\n\n-EINVAL\t\tFlags other than MPOL_MF_MOVE(_ALL) specified or an attempt\n\t\tto migrate pages in a kernel thread.\n\n-EPERM\t\tMPOL_MF_MOVE_ALL specified without sufficient priviledges.\n\t\tor an attempt to move a process belonging to another user.\n\n-EACCES\t\tOne of the target nodes is not allowed by the current cpuset.\n\n-ENODEV\t\tOne of the target nodes is not online.\n\n-ESRCH\t\tProcess does not exist.\n\n-E2BIG\t\tToo many pages to move.\n\n-ENOMEM\t\tNot enough memory to allocate control array.\n\n-EFAULT\t\tParameters could not be accessed.\n\nA test program for move_pages() may be found with the patches\non ftp.kernel.org:/pub/linux/kernel/people/christoph/pmig/patches-2.6.17-rc4-mm3\n\nFrom: Christoph Lameter \u003cclameter@sgi.com\u003e\n\n  Detailed results for sys_move_pages()\n\n  Pass a pointer to an integer to get_new_page() that may be used to\n  indicate where the completion status of a migration operation should be\n  placed.  This allows sys_move_pags() to report back exactly what happened to\n  each page.\n\n  Wish there would be a better way to do this. Looks a bit hacky.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Jes Sorensen \u003cjes@trained-monkey.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95a402c3847cc16f4ba03013cd01404fa0f14c2e",
      "tree": "0fd9b3379f70cc99b2325bccaa150089abf6c8b3",
      "parents": [
        "aaa994b300a172afafab47938804836b923e5ef7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] page migration: use allocator function for migrate_pages()\n\nInstead of passing a list of new pages, pass a function to allocate a new\npage.  This allows the correct placement of MPOL_INTERLEAVE pages during page\nmigration.  It also further simplifies the callers of migrate pages.\nmigrate_pages() becomes similar to migrate_pages_to() so drop\nmigrate_pages_to().  The batching of new page allocations becomes unnecessary.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Jes Sorensen \u003cjes@trained-monkey.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aaa994b300a172afafab47938804836b923e5ef7",
      "tree": "ccc1acf72e9d1dfbd25fa5f8e067a195f93b0319",
      "parents": [
        "e24f0b8f76cc3dd96f36f5b6a9f020f6c3fce198"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] page migration: handle freeing of pages in migrate_pages()\n\nDo not leave pages on the lists passed to migrate_pages().  Seems that we will\nnot need any postprocessing of pages.  This will simplify the handling of\npages by the callers of migrate_pages().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Jes Sorensen \u003cjes@trained-monkey.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e24f0b8f76cc3dd96f36f5b6a9f020f6c3fce198",
      "tree": "2c6ca6f0385d3d36135855f77a0474188cf33842",
      "parents": [
        "8f9de51a4a98ba32f839903b7d009788bc2c295d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] page migration: simplify migrate_pages()\n\nCurrently migrate_pages() is mess with lots of goto.  Extract two functions\nfrom migrate_pages() and get rid of the gotos.\n\nPlus we can just unconditionally set the locked bit on the new page since we\nare the only one holding a reference.  Locking is to stop others from\naccessing the page once we establish references to the new page.\n\nRemove the list_del from move_to_lru in order to have finer control over list\nprocessing.\n\n[akpm@osdl.org: add debug check]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Jes Sorensen \u003cjes@trained-monkey.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f9de51a4a98ba32f839903b7d009788bc2c295d",
      "tree": "65cde3cd75bfc1df172f53ca956cba4fa4954a4e",
      "parents": [
        "d501e62bc7796e90b0312648e23ac39490dfbf87"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Fri Jun 23 02:03:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] printk() should not be called under zone-\u003elock\n\nThis patch fixes printk() under zone-\u003elock in show_free_areas().  It can be\nunsafe to call printk() under this lock, since caller can try to\nallocate/free some memory and selfdeadlock on this lock.  I found\nallocations/freeing mem both in netconsole and serial console.\n\nThis issue was faced in reallity when meminfo was periodically printed for\ndebug purposes and netconsole was used.\n\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "485bb99b49a173a22a0bbf4e189465414947ecac",
      "tree": "28d0975d4d205162ce1bd0e52537fc22b766e719",
      "parents": [
        "800590f523bf3bde9fa6c8e4d6763e4bf6a2c8ec"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Fri Jun 23 02:03:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] kernel-doc for mm/filemap.c\n\nmm/filemap.c:\n- add lots of kernel-doc;\n- fix some typos and kernel-doc errors;\n- drop some blank lines between function close and EXPORT_SYMBOL();\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "800590f523bf3bde9fa6c8e4d6763e4bf6a2c8ec",
      "tree": "0afbccc4b3648633da42d2c4b79cdb8f756804fd",
      "parents": [
        "5a4d43615921575b0c8299a5407ce4836e4138fd"
      ],
      "author": {
        "name": "Paul Drynoff",
        "email": "pauldrynoff@gmail.com",
        "time": "Fri Jun 23 02:03:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] slab: kmalloc, kzalloc comments cleanup and fix\n\n- Move comments for kmalloc to right place, currently it near __do_kmalloc\n\n- Comments for kzalloc\n\n- More detailed comments for kmalloc\n\n- Appearance of \"kmalloc\" and \"kzalloc\" man pages after \"make mandocs\"\n\n[rdunlap@xenotime.net: simplification]\nSigned-off-by: Paul Drynoff \u003cpauldrynoff@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5a4d43615921575b0c8299a5407ce4836e4138fd",
      "tree": "ebe9c4ca8dada54124e6c4507736585ae4d57d0b",
      "parents": [
        "bd1e22b8e0a90f9a91e4c27db14ca15773659bf7"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] update vm_total_pages at memory hotadd\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd1e22b8e0a90f9a91e4c27db14ca15773659bf7",
      "tree": "8d32bdc39977af9dd3ba577b1fa34c0106b7f18e",
      "parents": [
        "e0a42726794f71336ff4b26084d453dd597471ce"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 23 02:03:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] initialise total_memory() earlier\n\nInitialise total_memory earlier in boot.  Because if for some reason we run\npage reclaim early in boot, we don\u0027t want total_memory to be zero when we use\nit as a divisor.\n\nAnd rename total_memory to vm_total_pages to avoid naming clashes with\narchitectures.\n\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0a42726794f71336ff4b26084d453dd597471ce",
      "tree": "31debb23f7cce0510a63755f0c4297086761f623",
      "parents": [
        "668e0d8f1a02fd75f1c1e8142a6b08455914242c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 23 02:03:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] mm/slab.c: fix early init assumption\n\nThe SLAB bootstrap code assumes that the first two kmalloc caches created\n(the INDEX_AC and INDEX_L3 kmalloc caches) wont be off-slab.  But due to AC\nand L3 structure size increase in lockdep, one of them ended up being\noff-slab, and subsequently crashing with:\n\nUnable to handle kernel NULL pointer dereference at 0000000000000000 RIP:\n [\u003cffffffff80267478\u003e] kmem_cache_alloc+0x26/0x7d\n\nThe fix is to introduce a bootstrap flag and to use it to prevent off-slab\ncaches being created so early during bootup.\n\n(The calculation for off-slab caches is quite complex so i didnt want to\ncomplicate things with introducing yet another INDEX_ calculation, the flag\napproach is simpler and smaller.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "668e0d8f1a02fd75f1c1e8142a6b08455914242c",
      "tree": "51fafed7f9260fb969953a89280c77b69a416e84",
      "parents": [
        "185606fc6a120dbebffa6d06a559c20ec2b20034"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Fri Jun 23 02:03:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] fix update_mmu_cache in fremap.c\n\nThere are two calls to update_mmu_cache in fremap.c, both defective.\nThe one in install_page needs to be accompanied by lazy_mmu_prot_update\n(some other cleanup time, move that into ia64 update_mmu_cache itself); and\nthe one in install_file_pte should be removed since the pte is not present.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70af7c5c6492ef6ad137dbff6c4568c73edbcaf0",
      "tree": "4e8646ba72b14f2bdd94802d42684c00c1a7507c",
      "parents": [
        "9637a5efd4fbe36164c5ce7f6a0ee68b2bf22b7f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Fri Jun 23 02:03:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] swapoff: use atomic_inc_not_zero() on mm_users\n\nNow that we have atomic_inc_not_zero, it\u0027s more elegant for try_to_unuse to\nuse that on mm_users: doesn\u0027t actually matter at present, but safer to be\nsure that once mm_users has gone to 0, nothing raises it for an instant.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9637a5efd4fbe36164c5ce7f6a0ee68b2bf22b7f",
      "tree": "38b86e3e2151e78f952076e36bee4fd7d77e3baf",
      "parents": [
        "bd96b9eb7cfd6ab24ba244360a09980a720874d2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:03:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] add page_mkwrite() vm_operations method\n\nAdd a new VMA operation to notify a filesystem or other driver about the\nMMU generating a fault because userspace attempted to write to a page\nmapped through a read-only PTE.\n\nThis facility permits the filesystem or driver to:\n\n (*) Implement storage allocation/reservation on attempted write, and so to\n     deal with problems such as ENOSPC more gracefully (perhaps by generating\n     SIGBUS).\n\n (*) Delay making the page writable until the contents have been written to a\n     backing cache. This is useful for NFS/AFS when using FS-Cache/CacheFS.\n     It permits the filesystem to have some guarantee about the state of the\n     cache.\n\n (*) Account and limit number of dirty pages. This is one piece of the puzzle\n     needed to make shared writable mapping work safely in FUSE.\n\nNeeded by cachefs (Or is it cachefiles?  Or fscache? \u003chead spins\u003e).\n\nAt least four other groups have stated an interest in it or a desire to use\nthe functionality it provides: FUSE, OCFS2, NTFS and JFFS2.  Also, things like\nEXT3 really ought to use it to deal with the case of shared-writable mmap\nencountering ENOSPC before we permit the page to be dirtied.\n\nFrom: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\n  get_user_pages(.write\u003d1, .force\u003d1) can generate COW hits on read-only\n  shared mappings, this patch traps those as mkpage_write candidates and fails\n  to handle them the old way.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30c253e6da655d73eb8bfe2adca9b8f4d82fb81e",
      "tree": "97c49ad364855b95ce52d97a62d176a077ff2a85",
      "parents": [
        "ddc2e812d592457747c4367fb73edcaa8e1e49ff"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri Jun 23 02:03:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] sparsemem: record nid during memory present\n\nRecord the node id as we mark sections for instantiation.  Use this nid\nduring instantiation to direct allocations.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Bob Picco \u003cbob.picco@hp.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ddc2e812d592457747c4367fb73edcaa8e1e49ff",
      "tree": "7dc9066c1e43d14f7c495847a9f0b24287806fb2",
      "parents": [
        "8d3c138b77f195ca0eee6fb639ae73f5ea9edb6b"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:03:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] slab: verify pointers before free\n\nPassing an invalid pointer to kfree() and kmem_cache_free() is likely to\ncause bad memory corruption or even take down the whole system because the\nbad pointer is likely reused immediately due to the per-CPU caches.  Until\nnow, we don\u0027t do any verification for this if CONFIG_DEBUG_SLAB is\ndisabled.\n\nAs suggested by Linus, add PageSlab check to page_to_cache() and\npage_to_slab() to verify pointers passed to kfree().  Also, move the\nstronger check from cache_free_debugcheck() to kmem_cache_free() to ensure\nthe passed pointer actually belongs to the cache we\u0027re about to free the\nobject.\n\nFor page_to_cache() and page_to_slab(), the assertions should have\nvirtually no extra cost (two instructions, no data cache pressure) and for\nkmem_cache_free() the overhead should be minimal.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04e62a29bf157ce1edd168f2b71b533c80d13628",
      "tree": "7f0d5a58eeef2c2e08da86dc7141a1ccd050a37d",
      "parents": [
        "442c9137de8d769053e81d325709dca72f0b5e44"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] More page migration: use migration entries for file pages\n\nThis implements the use of migration entries to preserve ptes of file backed\npages during migration.  Processes can therefore be migrated back and forth\nwithout loosing their connection to pagecache pages.\n\nNote that we implement the migration entries only for linear mappings.\nNonlinear mappings still require the unmapping of the ptes for migration.\n\nAnd another writepage() ugliness shows up.  writepage() can drop the page\nlock.  Therefore we have to remove migration ptes before calling writepages()\nin order to avoid having migration entries point to unlocked pages.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "442c9137de8d769053e81d325709dca72f0b5e44",
      "tree": "200e5ace0310755d88dd1c7597cc0bb540264fe1",
      "parents": [
        "6c5240ae7f48c83fcaa8e24fa63e7eb09aba5651"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] More page migration: do not inc/dec rss counters\n\nIf we install a migration entry then the rss not really decreases since the\npage is just moved somewhere else.  We can save ourselves the work of\ndecrementing and later incrementing which will just eventually cause cacheline\nbouncing.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c5240ae7f48c83fcaa8e24fa63e7eb09aba5651",
      "tree": "fede2324f4348701e60758d7f894aae4b09cdc9a",
      "parents": [
        "d75a0fcda2cfc71b50e16dc89e0c32c57d427e85"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] Swapless page migration: modify core logic\n\nUse the migration entries for page migration\n\nThis modifies the migration code to use the new migration entries.  It now\nbecomes possible to migrate anonymous pages without having to add a swap\nentry.\n\nWe add a couple of new functions to replace migration entries with the proper\nptes.\n\nWe cannot take the tree_lock for migrating anonymous pages anymore.  However,\nwe know that we hold the only remaining reference to the page when the page\ncount reaches 1.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d75a0fcda2cfc71b50e16dc89e0c32c57d427e85",
      "tree": "cc9dda0a0e53e62c859bf7fcafe7b9c9f6de2352",
      "parents": [
        "0697212a411c1dae03c27845f2de2f3adb32c331"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] Swapless page migration: rip out swap based logic\n\nRip the page migration logic out.\n\nRemove all code that has to do with swapping during page migration.\n\nThis also guts the ability to migrate pages to swap.  No one used that so lets\nlet it go for good.\n\nPage migration should be a bit broken after this patch.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0697212a411c1dae03c27845f2de2f3adb32c331",
      "tree": "4bedcdb27522f4a42c422e0a8af155501f43a69c",
      "parents": [
        "8351a6e4785218a2b03c142be92926baff95ba5c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] Swapless page migration: add R/W migration entries\n\nImplement read/write migration ptes\n\nWe take the upper two swapfiles for the two types of migration ptes and define\na series of macros in swapops.h.\n\nThe VM is modified to handle the migration entries.  migration entries can\nonly be encountered when the page they are pointing to is locked.  This limits\nthe number of places one has to fix.  We also check in copy_pte_range and in\nmprotect_pte_range() for migration ptes.\n\nWe check for migration ptes in do_swap_cache and call a function that will\nthen wait on the page lock.  This allows us to effectively stop all accesses\nto apge.\n\nMigration entries are created by try_to_unmap if called for migration and\nremoved by local functions in migrate.c\n\nFrom: Hugh Dickins \u003chugh@veritas.com\u003e\n\n  Several times while testing swapless page migration (I\u0027ve no NUMA, just\n  hacking it up to migrate recklessly while running load), I\u0027ve hit the\n  BUG_ON(!PageLocked(p)) in migration_entry_to_page.\n\n  This comes from an orphaned migration entry, unrelated to the current\n  correctly locked migration, but hit by remove_anon_migration_ptes as it\n  checks an address in each vma of the anon_vma list.\n\n  Such an orphan may be left behind if an earlier migration raced with fork:\n  copy_one_pte can duplicate a migration entry from parent to child, after\n  remove_anon_migration_ptes has checked the child vma, but before it has\n  removed it from the parent vma.  (If the process were later to fault on this\n  orphaned entry, it would hit the same BUG from migration_entry_wait.)\n\n  This could be fixed by locking anon_vma in copy_one_pte, but we\u0027d rather\n  not.  There\u0027s no such problem with file pages, because vma_prio_tree_add\n  adds child vma after parent vma, and the page table locking at each end is\n  enough to serialize.  Follow that example with anon_vma: add new vmas to the\n  tail instead of the head.\n\n  (There\u0027s no corresponding problem when inserting migration entries,\n  because a missed pte will leave the page count and mapcount high, which is\n  allowed for.  And there\u0027s no corresponding problem when migrating via swap,\n  because a leftover swap entry will be correctly faulted.  But the swapless\n  method has no refcounting of its entries.)\n\nFrom: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n  pte_unmap_unlock() takes the pte pointer as an argument.\n\nFrom: Hugh Dickins \u003chugh@veritas.com\u003e\n\n  Several times while testing swapless page migration, gcc has tried to exec\n  a pointer instead of a string: smells like COW mappings are not being\n  properly write-protected on fork.\n\n  The protection in copy_one_pte looks very convincing, until at last you\n  realize that the second arg to make_migration_entry is a boolean \"write\",\n  and SWP_MIGRATION_READ is 30.\n\n  Anyway, it\u0027s better done like in change_pte_range, using\n  is_write_migration_entry and make_migration_entry_read.\n\nFrom: Hugh Dickins \u003chugh@veritas.com\u003e\n\n  Remove unnecessary obfuscation from sys_swapon\u0027s range check on swap type,\n  which blew up causing memory corruption once swapless migration made\n  MAX_SWAPFILES no longer 2 ^ MAX_SWAPFILES_SHIFT.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nFrom: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8351a6e4785218a2b03c142be92926baff95ba5c",
      "tree": "479fe6bcecb38ddc2c34ec812d82e432a79d0dfa",
      "parents": [
        "2d1db3b1170db4e8bf0531dd636742269c2cf579"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: move fallback handling into special function\n\nMove the fallback code into a new fallback function and make the function\nbehave like any other migration function.  This requires retaking the lock if\npageout() drops it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d1db3b1170db4e8bf0531dd636742269c2cf579",
      "tree": "1161ed614a55869c278234d7472673fd1a577887",
      "parents": [
        "c3fcf8a5daacf350f0632e1379414c01f34eeea3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: pass \"mapping\" to migration functions\n\nChange handling of address spaces.\n\nPass a pointer to the address space in which the page is migrated to all\nmigration function.  This avoids repeatedly having to retrieve the address\nspace pointer from the page and checking it for validity.  The old page\nmapping will change once migration has gone to a certain step, so it is less\nconfusing to have the pointer always available.\n\nMove the setting of the mapping and index for the new page into\nmigrate_pages().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c3fcf8a5daacf350f0632e1379414c01f34eeea3",
      "tree": "ec7a4cd5d7a2b60ec4539479bb5b24c46b5cf72f",
      "parents": [
        "5b5c7120e2154239837fad5e3c7b7b781092b19c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: extract try_to_unmap from migration functions\n\nExtract try_to_unmap and rename remove_references -\u003e move_mapping\n\ntry_to_unmap() may significantly change the page state by for example setting\nthe dirty bit.  It is therefore best to unmap in migrate_pages() before\ncalling any migration functions.\n\nmigrate_page_remove_references() will then only move the new page in place of\nthe old page in the mapping.  Rename the function to\nmigrate_page_move_mapping().\n\nThis allows us to get rid of the special unmapping for the fallback path.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5b5c7120e2154239837fad5e3c7b7b781092b19c",
      "tree": "733d5e4268a79abb320316d98c15b822f9f55a15",
      "parents": [
        "e7340f73307abed9283d0a07570d06e228c205dd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: drop nr_refs in remove_references()\n\nDrop nr_refs parameter from migrate_page_remove_references()\n\nThe nr_refs parameter is not really useful since the number of remaining\nreferences is always\n\n1 for anonymous pages without a mapping\n2 for pages with a mapping\n3 for pages with a mapping and PagePrivate set.\n\nRemove the early check for the number of references since we are checking\npage_mapcount() earlier.  Ultimately only the refcount matters after the\ntree_lock has been obtained.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.coim\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7340f73307abed9283d0a07570d06e228c205dd",
      "tree": "e786e2d09cfaf670128571029d833d1d27998d59",
      "parents": [
        "1d8b85ccf1ed53a71b092fb5d807edf1ea7dabdd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: remove useless definitions\n\nRemove the export for migrate_page_remove_references() and migrate_page_copy()\nthat are unlikely to be used directly by filesystems implementing migration.\nThe export was useful when buffer_migrate_page() lived in fs/buffer.c but it\nhas now been moved to migrate.c in the migration reorg.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1d8b85ccf1ed53a71b092fb5d807edf1ea7dabdd",
      "tree": "9742a9522a9834ee62dcfedc4c31fd76f4a2741e",
      "parents": [
        "7352349a19e84b28f10668eca9cbb6bbbfa9d38e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: group functions\n\nReorder functions in migrate.c.  Group all migration functions for struct\naddress_space_operations together.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7352349a19e84b28f10668eca9cbb6bbbfa9d38e",
      "tree": "ae9d78f593829f599d3412b11d2c871bcae98be2",
      "parents": [
        "111ebb6e6f7bd7de6d722c5848e95621f43700d9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: rename \"ignrefs\" to \"migration\"\n\nmigrate is a better name since it is only used by page migration.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "111ebb6e6f7bd7de6d722c5848e95621f43700d9",
      "tree": "bb00b13001db9be201e9b6d31468a79f4d1240bf",
      "parents": [
        "4c91c3648c620003cb7b21b8858f36cd6132e168"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Jun 23 02:03:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] writeback: fix range handling\n\nWhen a writeback_control\u0027s `start\u0027 and `end\u0027 fields are used to\nindicate a one-byte-range starting at file offset zero, the required\nvalues of .start\u003d0,.end\u003d0 mean that the -\u003ewritepages() implementation\nhas no way of telling that it is being asked to perform a range\nrequest.  Because we\u0027re currently overloading (start \u003d\u003d 0 \u0026\u0026 end \u003d\u003d 0)\nto mean \"this is not a write-a-range request\".\n\nTo make all this sane, the patch changes range of writeback_control.\n\nSo caller does: If it is calling -\u003ewritepages() to write pages, it\nsets range (range_start/end or range_cyclic) always.\n\nAnd if range_cyclic is true, -\u003ewritepages() thinks the range is\ncyclic, otherwise it just uses range_start and range_end.\n\nThis patch does,\n\n    - Add LLONG_MAX, LLONG_MIN, ULLONG_MAX to include/linux/kernel.h\n      -1 is usually ok for range_end (type is long long). But, if someone did,\n\n\t\trange_end +\u003d val;\t\trange_end is \"val - 1\"\n\t\tu64val \u003d range_end \u003e\u003e bits;\tu64val is \"~(0ULL)\"\n\n      or something, they are wrong. So, this adds LLONG_MAX to avoid nasty\n      things, and uses LLONG_MAX for range_end.\n\n    - All callers of -\u003ewritepages() sets range_start/end or range_cyclic.\n\n    - Fix updates of -\u003ewriteback_index. It seems already bit strange.\n      If it starts at 0 and ended by check of nr_to_write, this last\n      index may reduce chance to scan end of file.  So, this updates\n      -\u003ewriteback_index only if range_cyclic is true or whole-file is\n      scanned.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58ce1fd5805647a58a050bbbbd2252ea5ecb47b3",
      "tree": "639aa44f21d0176c771b8b6e76d9c7ce9e2d1d19",
      "parents": [
        "b344e05c585406904c70865e531e02467c4c7931"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:03:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] slab: redzone double-free detection\n\nAt present our slab debugging tells us that it detected a double-free or\ncorruption - it does not distinguish between them.  Sometimes it\u0027s useful\nto be able to differentiate between these two types of information.\n\nAdd double-free detection to redzone verification when freeing an object.\nAs explained by Manfred, when we are freeing an object, both redzones\nshould be RED_ACTIVE.  However, if both are RED_INACTIVE, we are trying to\nfree an object that was already free\u0027d.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b344e05c585406904c70865e531e02467c4c7931",
      "tree": "5c9b9be9c35f5921e4796f1bafab810839765354",
      "parents": [
        "cfd9b7df4abd3257c9e381b0e445817b26a51c0c"
      ],
      "author": {
        "name": "Hua Zhong",
        "email": "hzhong@gmail.com",
        "time": "Fri Jun 23 02:03:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] likely cleanup: remove unlikely in sys_mprotect()\n\nWith likely/unlikely profiling on my not-so-busy-typical-developmentsystem\nthere are 5k misses vs 2k hits.  So I guess we should remove the unlikely.\n\nSigned-off-by: Hua Zhong \u003chzhong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "833423143c3a7c6545e409d65febd0d92deb351b",
      "tree": "13a1881f1ffd6e546e80a2ec04b1ac44ad145298",
      "parents": [
        "762834e8bf46bf41ce9034d062a7c1f8563175f3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jun 23 02:03:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] mm: introduce remap_vmalloc_range()\n\nAdd remap_vmalloc_range, vmalloc_user, and vmalloc_32_user so that drivers\ncan have a nice interface for remapping vmalloc memory.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6277db4ab271862ed599da08d78961c70f00002",
      "tree": "f11b2f82200c95d17e10779b44a6da37bc03965f",
      "parents": [
        "7a7c381d25067b9a2bfe025dfcb16459daec0373"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 23 02:03:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:48 2006 -0700"
      },
      "message": "[PATCH] swsusp: rework memory shrinker\n\nRework the swsusp\u0027s memory shrinker in the following way:\n\n- Simplify balance_pgdat() by removing all of the swsusp-related code\n  from it.\n\n- Make shrink_all_memory() use shrink_slab() and a new function\n  shrink_all_zones() which calls shrink_active_list() and\n  shrink_inactive_list() directly for each zone in a way that\u0027s optimized\n  for suspend.\n\nIn shrink_all_memory() we try to free exactly as many pages as the caller\nasks for, preferably in one shot, starting from easier targets.   If slab\ncaches are huge, they are most likely to have enough pages to reclaim.\n The inactive lists are next (the zones with more inactive pages go first)\netc.\n\nEach time shrink_all_memory() attempts to shrink the active and inactive\nlists for each zone in 5 passes.   In the first pass, only the inactive\nlists are taken into consideration.   In the next two passes the active\nlists are also shrunk, but mapped pages are not reclaimed.   In the last\ntwo passes the active and inactive lists are shrunk and mapped pages are\nreclaimed as well.  The aim of this is to alter the reclaim logic to choose\nthe best pages to keep on resume and improve the responsiveness of the\nresumed system.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a7c381d25067b9a2bfe025dfcb16459daec0373",
      "tree": "4c6cbd121a74e55e6147f0ac0541981d271b8371",
      "parents": [
        "e1b6aa6f1404f162697650df2cdb6c374b1d6a5b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 23 02:03:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:48 2006 -0700"
      },
      "message": "[PATCH] slab: stop using list_for_each\n\nUse the _entry variant everywhere to clean the code up a tiny bit.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e1b6aa6f1404f162697650df2cdb6c374b1d6a5b",
      "tree": "5d7f93f6d9a315b66fbc2bcfb7cc5d866a7013e9",
      "parents": [
        "a43a8c39bbb493c9e93f6764b350de2e33e18e92"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 23 02:03:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:48 2006 -0700"
      },
      "message": "[PATCH] slab: clean up kmem_getpages\n\nThe last ifdef addition hit the ugliness treshold on this functions, so:\n\n - rename the variable i to nr_pages so it\u0027s somewhat descriptive\n - remove the addr variable and do the page_address call at the very end\n - instead of ifdef\u0027ing the whole alloc_pages_node call just make the\n   __GFP_COMP addition to flags conditional\n - rewrite the __GFP_COMP comment to make sense\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a43a8c39bbb493c9e93f6764b350de2e33e18e92",
      "tree": "a3f0042371810ce6d076751d8e403baaa3d2630e",
      "parents": [
        "e8f03d02080b25f53cd6bba8dc3a297803f18c01"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Fri Jun 23 02:03:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:48 2006 -0700"
      },
      "message": "[PATCH] tightening hugetlb strict accounting\n\nCurrent hugetlb strict accounting for shared mapping always assume mapping\nstarts at zero file offset and reserves pages between zero and size of the\nfile.  This assumption often reserves (or lock down) a lot more pages then\nnecessary if application maps at none zero file offset.  libhugetlbfs is\none example that requires proper reservation on shared mapping starts at\nnone zero offset.\n\nThis patch extends the reservation and hugetlb strict accounting to support\nany arbitrary pair of (offset, len), resulting a much more robust and\naccurate scheme.  More importantly, it won\u0027t lock down any hugetlb pages\noutside file mapping.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6937a25cff818d32d0f9ff58a518c9ab96760aeb",
      "tree": "233fd6927556b83818cdb31c1656b1066643d8dc",
      "parents": [
        "fadd8fbd153c12963f8fe3c9ef7f8967f286f98b"
      ],
      "author": {
        "name": "Dave Peterson",
        "email": "dsp@llnl.gov",
        "time": "Fri Jun 23 02:03:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:47 2006 -0700"
      },
      "message": "[PATCH] mm: fix typos in comments in mm/oom_kill.c\n\nThis fixes a few typos in the comments in mm/oom_kill.c.\n\nSigned-off-by: David S. Peterson \u003cdsp@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fadd8fbd153c12963f8fe3c9ef7f8967f286f98b",
      "tree": "547cdee6203b769773521118a4dd19e95a7ef3fd",
      "parents": [
        "67de648211fa041fe08a0c25241a4980bbb90698"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:47 2006 -0700"
      },
      "message": "[PATCH] support for panic at OOM\n\nThis patch adds panic_on_oom sysctl under sys.vm.\n\nWhen sysctl vm.panic_on_oom \u003d 1, the kernel panics intead of killing rogue\nprocesses.  And if vm.panic_on_oom is 0 the kernel will do oom_kill() in\nthe same way as it does today.  Of course, the default value is 0 and only\nroot can modifies it.\n\nIn general, oom_killer works well and kill rogue processes.  So the whole\nsystem can survive.  But there are environments where panic is preferable\nrather than kill some processes.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67de648211fa041fe08a0c25241a4980bbb90698",
      "tree": "94f737e0fed7c40dc59e94f05d6851e490082068",
      "parents": [
        "6811378e7d8b9aa4fca2a1ca73d24c9d67c9cb12"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri Jun 23 02:03:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:47 2006 -0700"
      },
      "message": "[PATCH] squash duplicate page_to_pfn and pfn_to_page\n\nWe have architectures where the size of page_to_pfn and pfn_to_page are\nsignificant enough to overall image size that they wish to push them out of\nline.  However, in the process we have grown a second copy of the\nimplementation of each of these routines for each memory model.  Share the\nimplmentation exposing it either inline or out-of-line as required.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6811378e7d8b9aa4fca2a1ca73d24c9d67c9cb12",
      "tree": "37f2f5a2bf2e60848a571f8f43685c7406d7b238",
      "parents": [
        "cca448fe92246fb59efe55ba2e048ded0971a9af"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: update zonelists\n\nIn current code, zonelist is considered to be build once, no modification.\nBut MemoryHotplug can add new zone/pgdat.  It must be updated.\n\nThis patch modifies build_all_zonelists().  By this, build_all_zonelist() can\nreconfig pgdat\u0027s zonelists.\n\nTo update them safety, this patch use stop_machine_run().  Other cpus don\u0027t\ntouch among updating them by using it.\n\nIn old version (V2 of node hotadd), kernel updated them after zone\ninitialization.  But present_page of its new zone is still 0, because\nonline_page() is not called yet at this time.  Build_zonelists() checks\npresent_pages to find present zone.  It was too early.  So, I changed it after\nonline_pages().\n\nSigned-off-by: Yasunori Goto     \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cca448fe92246fb59efe55ba2e048ded0971a9af",
      "tree": "9663651686508b62a061851927f0b330200c40b1",
      "parents": [
        "718127cc3170454f4aa274fdd2f1e01574fecd66"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: wait_table initialization\n\nWait_table is initialized according to zone size at boot time.  But, we cannot\nknow the maixmum zone size when memory hotplug is enabled.  It can be\nchanged....  And resizing of wait_table is hard.\n\nSo kernel allocate and initialzie wait_table as its maximum size.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "718127cc3170454f4aa274fdd2f1e01574fecd66",
      "tree": "8b42a48248d6508b8369718deef6b1af3ea82dbf",
      "parents": [
        "86356ab147669bd3bcb2149fd9561d1280835c24"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: add return code for init_current_empty_zone\n\nWhen add_zone() is called against empty zone (not populated zone), we have to\ninitialize the zone which didn\u0027t initialize at boot time.  But,\ninit_currently_empty_zone() may fail due to allocation of wait table.  So,\nthis patch is to catch its error code.\n\nChanges against wait_table is in the next patch.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86356ab147669bd3bcb2149fd9561d1280835c24",
      "tree": "bedc7113593e0f6a91aff18bb506fc3327516d81",
      "parents": [
        "02b694dea473ad3db1e2d1b14c1fef8fbd92e5e6"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: change to meminit for build_zonelist\n\nChange definitions of some functions and data from __init to __meminit.\n\nThese functions and data can be used after bootup by this patch to be used for\nhot-add codes.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02b694dea473ad3db1e2d1b14c1fef8fbd92e5e6",
      "tree": "a39451192b589486d70f4d989f9b7f19ef889db0",
      "parents": [
        "3c5a87f476bed45616e7e543dcaea4440c77bf93"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: change name of wait_table_size()\n\nThis is just to rename from wait_table_size() to wait_table_hash_nr_entries().\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3c5a87f476bed45616e7e543dcaea4440c77bf93",
      "tree": "0ff4c86ef594f7bfad9937095b69aab5e70b4174",
      "parents": [
        "4776874ff096cd410382c0eca5d75f69c9dfa58f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] migration: remove unnecessary PageSwapCache checks\n\nRemove two unnecessary PageSwapCache checks.  The page refcount is raised\nand therefore page migration cannot occur in both functions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4776874ff096cd410382c0eca5d75f69c9dfa58f",
      "tree": "50501cc3d909b03c1e792ac203aa3b56641cd226",
      "parents": [
        "f886ed443fedb109e2062988bf120a531f0ec80a"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:03:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] slab: page mapping cleanup\n\nClean up slab allocator page mapping a bit.  The memory allocated for a\nslab is physically contiguous so it is okay to assume struct pages are too\nso kill the long-standing comment.  Furthermore, rename set_slab_attr to\nslab_map_pages and add a comment explaining why its needed.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "729bd0b74ce9ac6c829109052fcd565f5c366ca5",
      "tree": "cfb2660d6107251f63f7480e193aca7c280ca5ab",
      "parents": [
        "4da5eda0dca9730f59f391230304526ab4bffec7"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:03:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] slab: extract cache_free_alien from __cache_free\n\nMove alien object freeing to cache_free_alien() to reduce #ifdef clutter in\n__cache_free().\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4da5eda0dca9730f59f391230304526ab4bffec7",
      "tree": "948701e336ec4ca2742b69f7197b89aa61df27d2",
      "parents": [
        "cb2b95e1c6b56e3d2369d3a5f4bc97f4fa180683"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] Page Migration: Make do_swap_page redo the fault\n\nIt is better to redo the complete fault if do_swap_page() finds that the\npage is not in PageSwapCache() because the page migration code may have\nreplaced the swap pte already with a pte pointing to valid memory.\n\ndo_swap_page() may interpret an invalid swap entry without this patch\nbecause we do not reload the pte if we are looping back.  The page\nmigration code may already have reused the swap entry referenced by our\nlocal swp_entry.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb2b95e1c6b56e3d2369d3a5f4bc97f4fa180683",
      "tree": "121d3fcd539f7d62887949840307ac26aadaa9e4",
      "parents": [
        "6f0419e06a3b151ab616a31accdabef41dc2d1b0"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri Jun 23 02:03:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] zone handle unaligned zone boundaries\n\nThe buddy allocator has a requirement that boundaries between contigious\nzones occur aligned with the the MAX_ORDER ranges.  Where they do not we\nwill incorrectly merge pages cross zone boundaries.  This can lead to pages\nfrom the wrong zone being handed out.\n\nOriginally the buddy allocator would check that buddies were in the same\nzone by referencing the zone start and end page frame numbers.  This was\nremoved as it became very expensive and the buddy allocator already made\nthe assumption that zones boundaries were aligned.\n\nIt is clear that not all configurations and architectures are honouring\nthis alignment requirement.  Therefore it seems safest to reintroduce\nsupport for non-aligned zone boundaries.  This patch introduces a new check\nwhen considering a page a buddy it compares the zone_table index for the\ntwo pages and refuses to merge the pages where they do not match.  The\nzone_table index is unique for each node/zone combination when\nFLATMEM/DISCONTIGMEM is enabled and for each section/zone combination when\nSPARSEMEM is enabled (a SPARSEMEM section is at least a MAX_ORDER size).\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d59bf96cdde5b874a57bfd1425faa45da915d0b7",
      "tree": "351a40b72514d620e5bebea2de38c26f23277ffc",
      "parents": [
        "28df955a2ad484d602314b30183ea8496a9aa34a",
        "25f42b6af09e34c3f92107b36b5aa6edc2fdba2f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 08:59:45 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 08:59:45 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n"
    },
    {
      "commit": "86bc843a268058df558844b6bf64531617fbc698",
      "tree": "159a320d16495b1328aa6c7822ebbb79c5375da7",
      "parents": [
        "cfd95a9cf58cd9e92d4c23b5ee20b07a3d121477"
      ],
      "author": {
        "name": "Sergey Vlasov",
        "email": "vsu@altlinux.ru",
        "time": "Mon Jun 12 21:53:23 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 12 14:29:04 2006 -0700"
      },
      "message": "[PATCH] tmpfs: Decrement i_nlink correctly in shmem_rmdir()\n\nshmem_rmdir() must undo the increment of i_nlink done in\nshmem_get_inode() for directories, otherwise at least\nIN_DELETE_SELF inotify event generation is broken.\n\nSigned-off-by: Sergey Vlasov \u003cvsu@altlinux.ru\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cfd95a9cf58cd9e92d4c23b5ee20b07a3d121477",
      "tree": "446977d54fcf1f9e3a5c3c2f6aea1f1b1ac2f806",
      "parents": [
        "5f856e8bdcf5936c9c13cb251dae770e6eeb06b6"
      ],
      "author": {
        "name": "Robin H. Johnson",
        "email": "robbat2@gentoo.org",
        "time": "Mon Jun 12 21:50:25 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 12 13:55:52 2006 -0700"
      },
      "message": "[PATCH] tmpfs: time granularity fix for [acm]time going backwards\n\nI noticed a strange behavior in a tmpfs file system the other day, while\nbuilding packages - occasionally, and seemingly at random, make decided to\nrebuild a target. However, only on tmpfs.\n\nA file would be created, and if checked, it had a sub-second timestamp.\nHowever, after an utimes related call where sub-seconds should be set, they\nwere zeroed instead. In the case that a file was created, and utimes(...,NULL)\nwas used on it in the same second, the timestamp on the file moved backwards.\n\nAfter some digging, I found that this was being caused by tmpfs not having a\ntime granularity set, thus inheriting the default 1 second granularity.\n\nHugh adds: yes, we missed tmpfs when the s_time_gran mods went into 2.6.11.\nUnfortunately, the granularity of CURRENT_TIME, often used in filesystems,\ndoes not match the default granularity set by alloc_super.  A few more such\ndiscrepancies have been found, but this is the most important to fix now.\n\nSigned-off-by: Robin H. Johnson \u003crobbat2@gentoo.org\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0bbbc73d58f1b774cd987b5687a478a027f137c",
      "tree": "b07538753116e6e4792e2a283318694e3cbbc614",
      "parents": [
        "650fb8382287f7990d5127a82a54295139224606"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jun 11 15:22:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 11 15:27:37 2006 -0700"
      },
      "message": "[PATCH] typo in vmscan.c\n\nFrom: Christoph Lameter \u003cclameter@sgi.com\u003e\n\nLooks like a comma was left from the conversion from a struct to an\nassignment.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f5ce9e93aa96a867f195ed45f6f77935175f12e",
      "tree": "caa9b6635990f69d47c1729524bd127e968b23f5",
      "parents": [
        "bb4a58bf46473e3e83d84054bbc110db3a0f85e4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:16 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:16 2006 -0400"
      },
      "message": "VFS: Unexport do_kern_mount() and clean up simple_pin_fs()\n\nReplace all module uses with the new vfs_kern_mount() interface, and fix up\nsimple_pin_fs().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1ab41c4943008375c149a63602d7407f61de5b2",
      "tree": "365413de6ebbfee39aa90c069b7be14a4b9a699e",
      "parents": [
        "b52a834892f17b6c54c34ab65f1fad1a9229e764"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 02 15:44:58 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 02 11:21:10 2006 -0700"
      },
      "message": "[PATCH] slab.c: fix offslab_limit bug\n\nmm/slab.c\u0027s offlab_limit logic is totally broken.\n\nFirstly, \"offslab_limit\" is a global variable while it should either be\ncalculated in situ or should be passed in as a parameter.\n\nSecondly, the more serious problem with it is that the condition for\ncalculating it:\n\n               if (!(OFF_SLAB(sizes-\u003ecs_cachep))) {\n                       offslab_limit \u003d sizes-\u003ecs_size - sizeof(struct slab);\n                       offslab_limit /\u003d sizeof(kmem_bufctl_t);\n\nis in total disconnect with the condition that makes use of it:\n\n               /* More than offslab_limit objects will cause problems */\n               if ((flags \u0026 CFLGS_OFF_SLAB) \u0026\u0026 num \u003e offslab_limit)\n                       break;\n\nbut due to offslab_limit being a global variable this breakage was\nhidden.\n\nUp until lockdep came along and perturbed the slab sizes sufficiently so\nthat the first off-slab cache would still see a (non-calculated) zero\nvalue for offslab_limit and would panic with:\n\n  kmem_cache_create: couldn\u0027t create cache size-512.\n\n  Call Trace:\n   [\u003cffffffff8020a5b9\u003e] show_trace+0x96/0x1c8\n   [\u003cffffffff8020a8f0\u003e] dump_stack+0x13/0x15\n   [\u003cffffffff8022994f\u003e] panic+0x39/0x21a\n   [\u003cffffffff80270814\u003e] kmem_cache_create+0x5a0/0x5d0\n   [\u003cffffffff80aced62\u003e] kmem_cache_init+0x193/0x379\n   [\u003cffffffff80abf779\u003e] start_kernel+0x17f/0x218\n   [\u003cffffffff80abf263\u003e] _sinittext+0x263/0x26a\n\n  Kernel panic - not syncing: kmem_cache_create(): failed to create slab `size-512\u0027\n\nPaolo Ornati\u0027s config on x86_64 managed to trigger it.\n\nThe fix is to move the calculation to the place that makes use of it.\nThis also makes slab.o 54 bytes smaller.\n\nBtw., the check itself is quite silly. Its intention is to test whether\nthe number of objects per slab would be higher than the number of slab\ncontrol pointers possible. In theory it could be triggered: if someone\ntried to allocate 4-byte objects cache and explicitly requested with\nCFLGS_OFF_SLAB. So i kept the check.\n\nOut of historic interest i checked how old this bug was and it\u0027s\nancient, 10 years old! It is the oldest hidden and then truly triggering\nbugs i ever saw being fixed in the kernel!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25a6df952542ad9f284421b6ffe28f3eb3df1305",
      "tree": "8b0649ff83f5455fcca4f255bf2189a5cbf81fc8",
      "parents": [
        "308af9290ad1844c1b4e93ff4919f8009efbe018"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue May 30 21:25:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed May 31 16:27:10 2006 -0700"
      },
      "message": "[PATCH] spanned_pages is not updated at a case of memory hot-add\n\nFrom: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\n\nIf hot-added memory\u0027s address is smaller than old area, spanned_pages will\nnot be updated.  It must be fixed.\n\nexample) Old zone_start_pfn \u003d 0x60000, and spanned_pages \u003d 0x10000\n         Added new memory\u0027s start_pfn \u003d 0x50000, and end_pfn \u003d 0x60000\n\n  new spanned_pages will be still 0x10000 by old code.\n  (It should be updated to 0x20000.) Because old_zone_end_pfn will be\n  0x70000, and end_pfn smaller than it. So, spanned_pages will not be\n  updated.\n\nIn current code, spanned_pages is updated only when end_pfn is updated.\nBut, it should be updated by subtraction between bigger end_pfn and new\nzone_start_pfn.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e984bb43f7450312ba66fe0e67a99efa6be3b246",
      "tree": "54c86240172136fc81c773f71cd70eda54fed6f2",
      "parents": [
        "ae57a856429dd932c547530df1b234eb7e642297"
      ],
      "author": {
        "name": "Bob Picco",
        "email": "bob.picco@hp.com",
        "time": "Sat May 20 15:00:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:22 2006 -0700"
      },
      "message": "[PATCH] Align the node_mem_map endpoints to a MAX_ORDER boundary\n\nAndy added code to buddy allocator which does not require the zone\u0027s\nendpoints to be aligned to MAX_ORDER.  An issue is that the buddy allocator\nrequires the node_mem_map\u0027s endpoints to be MAX_ORDER aligned.  Otherwise\n__page_find_buddy could compute a buddy not in node_mem_map for partial\nMAX_ORDER regions at zone\u0027s endpoints.  page_is_buddy will detect that\nthese pages at endpoints are not PG_buddy (they were zeroed out by bootmem\nallocator and not part of zone).  Of course the negative here is we could\nwaste a little memory but the positive is eliminating all the old checks\nfor zone boundary conditions.\n\nSPARSEMEM won\u0027t encounter this issue because of MAX_ORDER size constraint\nwhen SPARSEMEM is configured.  ia64 VIRTUAL_MEM_MAP doesn\u0027t need the logic\neither because the holes and endpoints are handled differently.  This\nleaves checking alloc_remap and other arches which privately allocate for\nnode_mem_map.\n\nSigned-off-by: Bob Picco \u003cbob.picco@hp.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bdd804f478a0cc74bf7db8e9f9d5fd379d1b31ca",
      "tree": "2b8f083b1ca698c0f9321b3714dab036d2531f29",
      "parents": [
        "593ee20766921fec643194dff829e17f30552220"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat May 20 15:00:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:18 2006 -0700"
      },
      "message": "[PATCH] Cpuset: might sleep checking zones allowed fix\n\nFix a couple of infrequently encountered \u0027sleeping function called from\ninvalid context\u0027 in the cpuset hooks in __alloc_pages.  Could sleep while\ninterrupts disabled.\n\nThe routine cpuset_zone_allowed() is called by code in mm/page_alloc.c\n__alloc_pages() to determine if a zone is allowed in the current tasks\ncpuset.  This routine can sleep, for certain GFP_KERNEL allocations, if the\nzone is on a memory node not allowed in the current cpuset, but might be\nallowed in a parent cpuset.\n\nBut we can\u0027t sleep in __alloc_pages() if in interrupt, nor if called for a\nGFP_ATOMIC request (__GFP_WAIT not set in gfp_flags).\n\nThe rule was intended to be:\n  Don\u0027t call cpuset_zone_allowed() if you can\u0027t sleep, unless you\n  pass in the __GFP_HARDWALL flag set in gfp_flag, which disables\n  the code that might scan up ancestor cpusets and sleep.\n\nThis rule was being violated in a couple of places, due to a bogus change\nmade (by myself, pj) to __alloc_pages() as part of the November 2005 effort\nto cleanup its logic, and also due to a later fix to constrain which swap\ndaemons were awoken.\n\nThe bogus change can be seen at:\n  http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-11/4691.html\n  [PATCH 01/05] mm fix __alloc_pages cpuset ALLOC_* flags\n\nThis was first noticed on a tight memory system, in code that was disabling\ninterrupts and doing allocation requests with __GFP_WAIT not set, which\nresulted in __might_sleep() writing complaints to the log \"Debug: sleeping\nfunction called ...\", when the code in cpuset_zone_allowed() tried to take\nthe callback_sem cpuset semaphore.\n\nWe haven\u0027t seen a system hang on this \u0027might_sleep\u0027 yet, but we are at\ndecent risk of seeing it fairly soon, especially since the additional\ncpuset_zone_allowed() check was added, conditioning wakeup_kswapd(), in\nMarch 2006.\n\nSpecial thanks to Dave Chinner, for figuring this out, and a tip of the hat\nto Nick Piggin who warned me of this back in Nov 2005, before I was ready\nto listen.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "12783b002db1f02c29353c8f698a85514420b9f4",
      "tree": "d0cec6913308fb34d539192dd0928cd0d7aae714",
      "parents": [
        "ad8f5797302ed389476debcc51b4630f387618b9"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "kravetz@us.ibm.com",
        "time": "Sat May 20 15:00:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:17 2006 -0700"
      },
      "message": "[PATCH] SPARSEMEM incorrectly calculates section number\n\nA bad calculation/loop in __section_nr() could result in incorrect section\ninformation being put into sysfs memory entries.  This primarily impacts\nmemory add operations as the sysfs information is used while onlining new\nmemory.\n\nFix suggested by Dave Hansen.\n\nNote that the bug may not be obvious from the patch.  It actually occurs in\nthe function\u0027s return statement:\n\n\treturn (root_nr * SECTIONS_PER_ROOT) + (ms - root);\n\nIn the existing code, root_nr has already been multiplied by\nSECTIONS_PER_ROOT.\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4523a8b38089478f93bc053c31f678c63f5ee1b",
      "tree": "96f828650d2234aac76fe39ea38b7c7250c49349",
      "parents": [
        "40e59a61669a3cab9e0bd24644e29155d6b00970"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Mon May 15 11:41:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue May 16 07:59:32 2006 -0700"
      },
      "message": "[PATCH] slab: Fix kmem_cache_destroy() on NUMA\n\nWith CONFIG_NUMA set, kmem_cache_destroy() may fail and say \"Can\u0027t\nfree all objects.\"  The problem is caused by sequences such as the\nfollowing (suppose we are on a NUMA machine with two nodes, 0 and 1):\n\n * Allocate an object from cache on node 0.\n * Free the object on node 1.  The object is put into node 1\u0027s alien\n   array_cache for node 0.\n * Call kmem_cache_destroy(), which ultimately ends up in __cache_shrink().\n * __cache_shrink() does drain_cpu_caches(), which loops through all nodes.\n   For each node it drains the shared array_cache and then handles the\n   alien array_cache for the other node.\n\nHowever this means that node 0\u0027s shared array_cache will be drained,\nand then node 1 will move the contents of its alien[0] array_cache\ninto that same shared array_cache.  node 0\u0027s shared array_cache is\nnever looked at again, so the objects left there will appear to be in\nuse when __cache_shrink() calls __node_shrink() for node 0.  So\n__node_shrink() will return 1 and kmem_cache_destroy() will fail.\n\nThis patch fixes this by having drain_cpu_caches() do\ndrain_alien_cache() on every node before it does drain_array() on the\nnodes\u0027 shared array_caches.\n\nThe problem was originally reported by Or Gerlitz \u003cogerlitz@voltaire.com\u003e.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39d24e64263cd3211705d3b61ea4171c65030921",
      "tree": "b527b1395b070180b7f930c0a89530f11bce7b3c",
      "parents": [
        "48564e628bd7662d7a0b3ac81c41cd0e4cc36dae"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "kravetz@us.ibm.com",
        "time": "Mon May 15 09:44:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:56 2006 -0700"
      },
      "message": "[PATCH] add slab_is_available() routine for boot code\n\nslab_is_available() indicates slab based allocators are available for use.\nSPARSEMEM code needs to know this as it can be called at various times\nduring the boot process.\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac924c6034d9095f95ee889f7e31bbb9145da0c2",
      "tree": "2db4fc64a008ff2b81a0faf381d8c21ccc5006b2",
      "parents": [
        "5afdbd6e84c7fbdaa7cfde4cbee0d3a5f4f56da2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon May 15 09:43:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:55 2006 -0700"
      },
      "message": "[PATCH] setup_per_zone_pages_min() overflow fix\n\nAs pointed out in http://bugzilla.kernel.org/show_bug.cgi?id\u003d6490, this\nfunction can experience overflows on 32-bit machines, causing our response to\nchanged values of min_free_kbytes to go whacky.\n\nFixing it efficiently is all too hard, so fix it with 64-bit math instead.\n\nCc: Ake Sandgren \u003cake.sandgren@hpc2n.umu.se\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bed120c64eb07b6838bb758109811484af8cebba",
      "tree": "884231ab38d01a2b19c6d062f5230ea8b9f5ecb3",
      "parents": [
        "46a66eecdf7bc12562ecb492297447ed0e1ecf59"
      ],
      "author": {
        "name": "Joel H Schopp",
        "email": "jschopp@us.ibm.com",
        "time": "Mon May 01 12:16:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:46 2006 -0700"
      },
      "message": "[PATCH] spufs: fix for CONFIG_NUMA\n\nBased on an older patch from  Mike Kravetz \u003ckravetz@us.ibm.com\u003e\n\nWe need to have a mem_map for high addresses in order to make fops-\u003eno_page\nwork on spufs mem and register files.  So far, we have used the\nmemory_present() function during early bootup, but that did not work when\nCONFIG_NUMA was enabled.\n\nWe now use the __add_pages() function to add the mem_map when loading the\nspufs module, which is a lot nicer.\n\nSigned-off-by: Arnd Bergmann \u003carnd.bergmann@de.ibm.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46a66eecdf7bc12562ecb492297447ed0e1ecf59",
      "tree": "b758b51763c2365130a2a58547fa0bc30d71cdc8",
      "parents": [
        "2c43630fb0ff3f01c29367248ffa4a851e2c9b34"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mjkravetz@verizon.net",
        "time": "Mon May 01 12:16:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:46 2006 -0700"
      },
      "message": "[PATCH] sparsemem interaction with memory add bug fixes\n\nThis patch fixes two bugs with the way sparsemem interacts with memory add.\nThey are:\n\n- memory leak if memmap for section already exists\n\n- calling alloc_bootmem_node() after boot\n\nThese bugs were discovered and a first cut at the fixes were provided by\nArnd Bergmann \u003carnd@arndb.de\u003e and Joel Schopp \u003cjschopp@us.ibm.com\u003e.\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Joel Schopp \u003cjschopp@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c28f81193b6778f7b49090930d88e6d12bcb928",
      "tree": "5e0d83368e7282060b8de5e73f13eb6003e99391",
      "parents": [
        "a4b741e380cb56045ccea36f2dbc10e42af21f24"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon May 01 12:16:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:45 2006 -0700"
      },
      "message": "[PATCH] page migration: Fix fallback behavior for dirty pages\n\nCurrently we check PageDirty() in order to make the decision to swap out\nthe page.  However, the dirty information may be only be contained in the\nptes pointing to the page.  We need to first unmap the ptes before checking\nfor PageDirty().  If unmap is successful then the page count of the page\nwill also be decreased so that pageout() works properly.\n\nThis is a fix necessary for 2.6.17.  Without this fix we may migrate dirty\npages for filesystems without migration functions.  Filesystems may keep\npointers to dirty pages.  Migration of dirty pages can result in the\nfilesystem keeping pointers to freed pages.\n\nUnmapping is currently not be separated out from removing all the\nreferences to a page and moving the mapping.  Therefore try_to_unmap will\nbe called again in migrate_page() if the writeout is successful.  However,\nit wont do anything since the ptes are already removed.\n\nThe coming updates to the page migration code will restructure the code\nso that this is no longer necessary.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "693f7d362055261882659475d2ef022e32edbff1",
      "tree": "c363d0ededf3ede77f7f35130931f5fc34ca0e30",
      "parents": [
        "4de0b1ee1b630318553248c4cfc78358720a5c84"
      ],
      "author": {
        "name": "shin, jacob",
        "email": "jacob.shin@amd.com",
        "time": "Fri Apr 28 10:54:37 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 28 09:00:35 2006 -0700"
      },
      "message": "[PATCH] slab: fix crash on __drain_alien_cahce() during CPU Hotplug\n\ntransfer_objects should only be called when all of the cpus in the\nnode are online.  CPU_DEAD notifier callback marks l3-\u003eshared to NULL.\n\nSigned-off-by: Jacob Shin \u003cjacob.shin@amd.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebf43500ef148a380bd132743c3fc530111ac620",
      "tree": "01ddb60f5662cf92b96b0468bf9820518a611209",
      "parents": [
        "eb645a24de82496434cc81171d7f350edb327399"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Apr 27 08:46:01 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Thu Apr 27 08:59:48 2006 +0200"
      },
      "message": "[PATCH] Add find_get_pages_contig(): contiguous variant of find_get_pages()\n\nfind_get_pages_contig() will break out if we hit a hole in the page cache.\nFrom Andrew Morton, small modifications and documentation by me.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "83d722f7e198b034699b1500d98729beff930efd",
      "tree": "7d790a2fd62165373ec7bacde704837288e0bec3",
      "parents": [
        "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:30:03 2006 -0700"
      },
      "message": "[PATCH] Remove __devinit and __cpuinit from notifier_call definitions\n\nFew of the notifier_chain_register() callers use __init in the definition\nof notifier_call.  It is incorrect as the function definition should be\navailable after the initializations (they do not unregister them during\ninitializations).\n\nThis patch fixes all such usages to _not_ have the notifier_call __init\nsection.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "304dbdb7a4fbb7f40a6ad5c5836fdd456c233c63",
      "tree": "2bdd71bb0ab19422362e9d3999f975ae27206965",
      "parents": [
        "3b5fd59fdd2e656dd4d10f2cedb41a7519b131b2"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sat Apr 22 02:35:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Apr 22 09:19:52 2006 -0700"
      },
      "message": "[PATCH] add migratepage address space op to shmem\n\nBasic problem: pages of a shared memory segment can only be migrated once.\n\nIn 2.6.16 through 2.6.17-rc1, shared memory mappings do not have a\nmigratepage address space op.  Therefore, migrate_pages() falls back to\ndefault processing.  In this path, it will try to pageout() dirty pages.\nOnce a shared memory page has been migrated it becomes dirty, so\nmigrate_pages() will try to page it out.  However, because the page count\nis 3 [cache + current + pte], pageout() will return PAGE_KEEP because\nis_page_cache_freeable() returns false.  This will abort all subsequent\nmigrations.\n\nThis patch adds a migratepage address space op to shared memory segments to\navoid taking the default path.  We use the \"migrate_page()\" function\nbecause it knows how to migrate dirty pages.  This allows shared memory\nsegment pages to migrate, subject to other conditions such as # pte\u0027s\nreferencing the page [page_mapcount(page)], when requested.\n\nI think this is safe.  If we\u0027re migrating a shared memory page, then we\nfound the page via a page table, so it must be in memory.\n\nCan be verified with memtoy and the shmem-mbind-test script, both\navailable at:  http://free.linux.hp.com/~lts/Tools/\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d472be37896b1c41b50f3da124f8b7718ba7797",
      "tree": "c01adec9db3c85b48e337189b4fdc1f7e6f23733",
      "parents": [
        "4409ebe9afabe7db77eaaae9eb3eb05b8315ce4a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Apr 20 02:43:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 20 07:54:03 2006 -0700"
      },
      "message": "[PATCH] Remove cond_resched in gather_stats()\n\ngather_stats() is called with a spinlock held from check_pte_range.  We\ncannot reschedule with a lock held.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6aa3001b239b387d98a7f945e4a51edeb59e4f2d",
      "tree": "df3901329baddd8c37a661ad595fa52821dee8ef",
      "parents": [
        "013159227b840dfd441bd2e4c8b4d77ffb3cc42e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Apr 18 22:20:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:50 2006 -0700"
      },
      "message": "[PATCH] page_alloc.c: buddy handling cleanup\n\nFix up some whitespace damage.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "013159227b840dfd441bd2e4c8b4d77ffb3cc42e",
      "tree": "15bd8349b4a105efc75c77dcd0c1a579ecd87ab4",
      "parents": [
        "97c2c9b84d0c1edf4926b13661d5af3f0edccbce"
      ],
      "author": {
        "name": "Dave Peterson",
        "email": "dsp@llnl.gov",
        "time": "Tue Apr 18 22:20:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:50 2006 -0700"
      },
      "message": "[PATCH] mm: fix mm_struct reference counting bugs in mm/oom_kill.c\n\nFix oom_kill_task() so it doesn\u0027t call mmput() (which may sleep) while\nholding tasklist_lock.\n\nSigned-off-by: David S. Peterson \u003cdsp@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97c2c9b84d0c1edf4926b13661d5af3f0edccbce",
      "tree": "bc986808cd7b5a8219a0c40ca9fdfc40524883e4",
      "parents": [
        "75129e297e861e6c61038aa4cdbf604b022de4ff"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Apr 18 22:20:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] oom-kill: mm locking fix\n\nDave Peterson \u003cdsp@llnl.gov\u003e points out that badness() is playing with\nmm_structs without taking a reference on them.\n\nmmput() can sleep, so taking a reference here (inside tasklist_lock) is\nhard.  Fix it up via task_lock() instead.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75129e297e861e6c61038aa4cdbf604b022de4ff",
      "tree": "48392ab6ae43547ae2d81a312eb22708af0dc515",
      "parents": [
        "4a3b98a422a20dedf3a2a40c44892d6e7e665157"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Tue Apr 18 22:20:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] mm/slob.c: for_each_possible_cpu(), not NR_CPUS\n\nConvert for-loops that explicitly reference \"NR_CPUS\" into the\npotentially more efficient for_each_possible_cpu() construct.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "69cf0fac6052c5bd3fb3469a41d4216e926028f8",
      "tree": "f403d0731549835fbf406fa4cd0910d9aec1d953",
      "parents": [
        "e14d95f773b7365b6ba2d2105522c92b007c6db1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Apr 17 22:46:32 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Apr 17 18:22:18 2006 -0700"
      },
      "message": "[PATCH] Fix MADV_REMOVE protection checking\n\nmadvise_remove needs to respect file and mmap protections.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\n[ Will the real CVE-2006-1524 stand up, please.. ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd5403c79bc21819f6e0c40ba098cea8b6a418bd",
      "tree": "d63e61d010e79c82042defef4ba983b759240d2d",
      "parents": [
        "7551d9a20b3cfbac9f8a28b7d909c4b15a94924f"
      ],
      "author": {
        "name": "Coywolf Qi Hunt",
        "email": "coywolf@gmail.com",
        "time": "Mon Apr 10 22:54:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:46 2006 -0700"
      },
      "message": "[PATCH] page-writeback comment fixes\n\nSigned-off-by: Coywolf Qi Hunt \u003cqiyong@fc-cn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64a3ca5f7ec2606b03be4a65736164a5373732ed",
      "tree": "a65c1ee2eab32e0ad9571dc5553544ad36d74d77",
      "parents": [
        "91fc8ab3c6312931d64c72845ee2f93a0f87f1a5"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Apr 10 22:53:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:33 2006 -0700"
      },
      "message": "[PATCH] mm/migrate.c: don\u0027t export a static function\n\nEXPORT_SYMBOL\u0027ing of a static function is not a good idea.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d5ddc79bcaab6975e7671805c3578407dc33b764",
      "tree": "de29b6d1c43fa6f5a1aca52ad6c2cc6027edc1fc",
      "parents": [
        "6d9f78396583244258080f3369889644c06c37c8"
      ],
      "author": {
        "name": "Hideo AOKI",
        "email": "haoki@redhat.com",
        "time": "Mon Apr 10 22:53:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] overcommit: use totalreserve_pages for nommu\n\nThis patch is an enhancement of OVERCOMMIT_GUESS algorithm in\n__vm_enough_memory() in mm/nommu.c.\n\nWhen the OVERCOMMIT_GUESS algorithm calculates the number of free pages,\nthe algorithm subtracts the number of reserved pages from the result\nnr_free_pages().\n\nSigned-off-by: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d9f78396583244258080f3369889644c06c37c8",
      "tree": "645f5e8630bc57e3a8f5653dc941fc0232b5e98b",
      "parents": [
        "cb45b0e966cbe747b6189c15b108901cc7d6c97c"
      ],
      "author": {
        "name": "Hideo AOKI",
        "email": "haoki@redhat.com",
        "time": "Mon Apr 10 22:53:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] overcommit: use totalreserve_pages\n\nThis patch is an enhancement of OVERCOMMIT_GUESS algorithm in\n__vm_enough_memory() in mm/mmap.c.\n\nWhen the OVERCOMMIT_GUESS algorithm calculates the number of free pages,\nthe algorithm subtracts the number of reserved pages from the result\nnr_free_pages().\n\nSigned-off-by: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb45b0e966cbe747b6189c15b108901cc7d6c97c",
      "tree": "0402d4809ec175e80b083f7a713ec32c0109baad",
      "parents": [
        "e23ca00bf1b1c6c0f04702cb4d29e275ab8dc330"
      ],
      "author": {
        "name": "Hideo AOKI",
        "email": "haoki@redhat.com",
        "time": "Mon Apr 10 22:52:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] overcommit: add calculate_totalreserve_pages()\n\nThese patches are an enhancement of OVERCOMMIT_GUESS algorithm in\n__vm_enough_memory().\n\n- why the kernel needed patching\n\n  When the kernel can\u0027t allocate anonymous pages in practice, currnet\n  OVERCOMMIT_GUESS could return success. This implementation might be\n  the cause of oom kill in memory pressure situation.\n\n  If the Linux runs with page reservation features like\n  /proc/sys/vm/lowmem_reserve_ratio and without swap region, I think\n  the oom kill occurs easily.\n\n- the overall design approach in the patch\n\n  When the OVERCOMMET_GUESS algorithm calculates number of free pages,\n  the reserved free pages are regarded as non-free pages.\n\n  This change helps to avoid the pitfall that the number of free pages\n  become less than the number which the kernel tries to keep free.\n\n- testing results\n\n  I tested the patches using my test kernel module.\n\n  If the patches aren\u0027t applied to the kernel, __vm_enough_memory()\n  returns success in the situation but autual page allocation is\n  failed.\n\n  On the other hand, if the patches are applied to the kernel, memory\n  allocation failure is avoided since __vm_enough_memory() returns\n  failure in the situation.\n\n  I checked that on i386 SMP 16GB memory machine. I haven\u0027t tested on\n  nommu environment currently.\n\nThis patch adds totalreserve_pages for __vm_enough_memory().\n\nCalculate_totalreserve_pages() checks maximum lowmem_reserve pages and\npages_high in each zone. Finally, the function stores the sum of each\nzone to totalreserve_pages.\n\nThe totalreserve_pages is calculated when the VM is initilized.\nAnd the variable is updated when /proc/sys/vm/lowmem_reserve_raito\nor /proc/sys/vm/min_free_kbytes are changed.\n\nSigned-off-by: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e23ca00bf1b1c6c0f04702cb4d29e275ab8dc330",
      "tree": "3cf690fc3305a9af03f42aa25808b713efb53c27",
      "parents": [
        "1e624196f43c3a62122959e15c5f03572cdadb5d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 10 22:52:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] Some page migration fixups\n\n- Remove sparse comment\n\n- Remove duplicated include\n\n- Return the correct error condition in migrate_page_remove_references().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "1e624196f43c3a62122959e15c5f03572cdadb5d"
}
