)]}'
{
  "log": [
    {
      "commit": "79f4b7bf393e67bbffec807cc68caaefc72b82ee",
      "tree": "5bee7c12fe49e63e38d74afc6bbd2933906ecb9b",
      "parents": [
        "0f64415d42760379753e6088787ce3fd3e069509"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: simplify page_alloc flag check+clear\n\nSimplify the PAGE_FLAGS checking and clearing when freeing and allocating\na page: check the same flags as before when freeing, clear ALL the flags\n(unless PageReserved) when freeing, check ALL flags off when allocating.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f64415d42760379753e6088787ce3fd3e069509",
      "tree": "85c9d3be88e56fb2d62558689744dbdd386cc745",
      "parents": [
        "09f445e7f5107c91be12ed386350de6cd055e0a4"
      ],
      "author": {
        "name": "Dmitri Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Jan 06 14:40:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "fs: truncate blocks outside i_size after O_DIRECT write error\n\nIn case of error extending write may have instantiated a few blocks\noutside i_size.  We need to trim these blocks.  We have to do it\n*regardless* to blocksize.  At least ext2, ext3 and reiserfs interpret\n(i_size \u003c biggest block) condition as error.  Fsck will complain about\nwrong i_size.  Then fsck will fix the error by changing i_size according\nto the biggest block.  This is bad because this blocks contain garbage\nfrom previous write attempt.  And result in data corruption.\n\n####TESTCASE_BEGIN\n$touch /mnt/test/BIG_FILE\n## at this moment /mnt/test/BIG_FILE size and blocks equal to zero\nopen(\"/mnt/test/BIG_FILE\", O_WRONLY|O_CREAT|O_DIRECT, 0666) \u003d 3\nwrite(3, \"aaaaaaaaaaaa\"..., 104857600) \u003d -1 ENOSPC (No space left on device)\n## size and block sould\u0027t be changed because write op failed.\n$stat /mnt/test/BIG_FILE\nFile: `/mnt/test/BIG_FILE\u0027\nSize: 0 Blocks: 110896 IO Block: 1024 regular empty file\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c^^^^^^^^^^^^^^^^^^^^^^^^^^^^^file size is less than biggest block idx\nDevice: fe07h/65031d Inode: 14 Links: 1\nAccess: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)\nAccess: 2007-01-24 20:03:38.000000000 +0300\nModify: 2007-01-24 20:03:38.000000000 +0300\nChange: 2007-01-24 20:03:39.000000000 +0300\n\n#fsck.ext3 -f /dev/VG/test\ne2fsck 1.39 (29-May-2006)\nPass 1: Checking inodes, blocks, and sizes\nInode 14, i_size is 0, should be 56556544. Fix\u003cy\u003e? yes\nPass 2: Checking directory structure\n....\n#####TESTCASE_ENDdiff --git a/fs/direct-io.c b/fs/direct-io.c\nindex af0558d..4e88bea 100644\n\n[akpm@linux-foundation.org: use i_size_read()]\nSigned-off-by: Dmitri Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09f445e7f5107c91be12ed386350de6cd055e0a4",
      "tree": "4a1114bb896f51e18efbdc05d57ec358abc5aced",
      "parents": [
        "01dbe5c9b1004dab045cb7f38428258ca9cddc02"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "mm: kill zone_is_near_oom()\n\nzone_is_near_oom() is unused.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01dbe5c9b1004dab045cb7f38428258ca9cddc02",
      "tree": "526bba2afd30a7a58e47597f0ab9255a37a21d55",
      "parents": [
        "a79311c14eae4bb946a97af25f3e1b17d625985d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "vmscan: improve reclaim throughput to bail out patch\n\nThe vmscan bail out patch move nr_reclaimed variable to struct\nscan_control.  Unfortunately, indirect access can easily happen cache\nmiss.\n\nif heavy memory pressure happend, that\u0027s ok.\ncache miss already plenty. it is not observable.\n\nbut, if memory pressure is lite, performance degression is obserbable.\n\nI compared following three pattern (it was mesured 10 times each)\n\nhackbench 125 process 3000\nhackbench 130 process 3000\nhackbench 135 process 3000\n\n            2.6.28-rc6                       bail-out\n\n\t125\t130\t135\t\t125\t130\t135\n      \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t71.866\t75.86\t81.274\t\t93.414\t73.254\t193.382\n\t74.145\t78.295\t77.27\t\t74.897\t75.021\t80.17\n\t70.305\t77.643\t75.855\t\t70.134\t77.571\t79.896\n\t74.288\t73.986\t75.955\t\t77.222\t78.48\t80.619\n\t72.029\t79.947\t78.312\t\t75.128\t82.172\t79.708\n\t71.499\t77.615\t77.042\t\t74.177\t76.532\t77.306\n\t76.188\t74.471\t83.562\t\t73.839\t72.43\t79.833\n\t73.236\t75.606\t78.743\t\t76.001\t76.557\t82.726\n\t69.427\t77.271\t76.691\t\t76.236\t79.371\t103.189\n\t72.473\t76.978\t80.643\t\t69.128\t78.932\t75.736\n\navg\t72.545\t76.767\t78.534\t\t76.017\t77.03\t93.256\nstd\t1.89\t1.71\t2.41\t\t6.29\t2.79\t34.16\nmin\t69.427\t73.986\t75.855\t\t69.128\t72.43\t75.736\nmax\t76.188\t79.947\t83.562\t\t93.414\t82.172\t193.382\n\nabout 4-5% degression.\n\nThen, this patch introduces a temporary local variable.\n\nresult:\n\n            2.6.28-rc6                       this patch\n\nnum\t125\t130\t135\t\t125\t130\t135\n      \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t71.866\t75.86\t81.274\t\t67.302\t68.269\t77.161\n\t74.145\t78.295\t77.27   \t72.616\t72.712\t79.06\n\t70.305\t77.643\t75.855  \t72.475\t75.712\t77.735\n\t74.288\t73.986\t75.955  \t69.229\t73.062\t78.814\n\t72.029\t79.947\t78.312  \t71.551\t74.392\t78.564\n\t71.499\t77.615\t77.042  \t69.227\t74.31\t78.837\n\t76.188\t74.471\t83.562  \t70.759\t75.256\t76.6\n\t73.236\t75.606\t78.743  \t69.966\t76.001\t78.464\n\t69.427\t77.271\t76.691  \t69.068\t75.218\t80.321\n\t72.473\t76.978\t80.643  \t72.057\t77.151\t79.068\n\navg\t72.545\t76.767\t78.534 \t\t70.425\t74.2083\t78.462\nstd \t1.89\t1.71\t2.41    \t1.66\t2.34\t1.00\nmin \t69.427\t73.986\t75.855  \t67.302\t68.269\t76.6\nmax \t76.188\t79.947\t83.562  \t72.616\t77.151\t80.321\n\nOK. the degression is disappeared.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a79311c14eae4bb946a97af25f3e1b17d625985d",
      "tree": "f12391481dfd7a1c3ffcff75bd04d3a88957d16c",
      "parents": [
        "ebdd4aea8d736e3b5ce27ab0a26860c9fded341b"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Jan 06 14:40:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "vmscan: bail out of direct reclaim after swap_cluster_max pages\n\nWhen the VM is under pressure, it can happen that several direct reclaim\nprocesses are in the pageout code simultaneously.  It also happens that\nthe reclaiming processes run into mostly referenced, mapped and dirty\npages in the first round.\n\nThis results in multiple direct reclaim processes having a lower\npageout priority, which corresponds to a higher target of pages to\nscan.\n\nThis in turn can result in each direct reclaim process freeing\nmany pages.  Together, they can end up freeing way too many pages.\n\nThis kicks useful data out of memory (in some cases more than half\nof all memory is swapped out).  It also impacts performance by\nkeeping tasks stuck in the pageout code for too long.\n\nA 30% improvement in hackbench has been observed with this patch.\n\nThe fix is relatively simple: in shrink_zone() we can check how many\npages we have already freed, direct reclaim tasks break out of the\nscanning loop if they have already freed enough pages and have reached\na lower priority level.\n\nWe do not break out of shrink_zone() when priority \u003d\u003d DEF_PRIORITY,\nto ensure that equal pressure is applied to every zone in the common\ncase.\n\nHowever, in order to do this we do need to know how many pages we already\nfreed, so move nr_reclaimed into scan_control.\n\nakpm: a historical interlude...\n\nWe tried this in 2004:\n\n:commit e468e46a9bea3297011d5918663ce6d19094cf87\n:Author: akpm \u003cakpm\u003e\n:Date:   Thu Jun 24 15:53:52 2004 +0000\n:\n:[PATCH] vmscan.c: dont reclaim too many pages\n:\n:    The shrink_zone() logic can, under some circumstances, cause far too many\n:    pages to be reclaimed.  Say, we\u0027re scanning at high priority and suddenly hit\n:    a large number of reclaimable pages on the LRU.\n:    Change things so we bale out when SWAP_CLUSTER_MAX pages have been reclaimed.\n\nAnd we reverted it in 2006:\n\n:commit 210fe530305ee50cd889fe9250168228b2994f32\n:Author: Andrew Morton \u003cakpm@osdl.org\u003e\n:Date:   Fri Jan 6 00:11:14 2006 -0800\n:\n:    [PATCH] vmscan: balancing fix\n:\n:    Revert a patch which went into 2.6.8-rc1.  The changelog for that patch was:\n:\n:      The shrink_zone() logic can, under some circumstances, cause far too many\n:      pages to be reclaimed.  Say, we\u0027re scanning at high priority and suddenly\n:      hit a large number of reclaimable pages on the LRU.\n:\n:      Change things so we bale out when SWAP_CLUSTER_MAX pages have been\n:      reclaimed.\n:\n:    Problem is, this change caused significant imbalance in inter-zone scan\n:    balancing by truncating scans of larger zones.\n:\n:    Suppose, for example, ZONE_HIGHMEM is 10x the size of ZONE_NORMAL.  The zone\n:    balancing algorithm would require that if we\u0027re scanning 100 pages of\n:    ZONE_HIGHMEM, we should scan 10 pages of ZONE_NORMAL.  But this logic will\n:    cause the scanning of ZONE_HIGHMEM to bale out after only 32 pages are\n:    reclaimed.  Thus effectively causing smaller zones to be scanned relatively\n:    harder than large ones.\n:\n:    Now I need to remember what the workload was which caused me to write this\n:    patch originally, then fix it up in a different way...\n\nAnd we haven\u0027t demonstrated that whatever problem caused that reversion is\nnot being reintroduced by this change in 2008.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebdd4aea8d736e3b5ce27ab0a26860c9fded341b",
      "tree": "4d19d85c0f7bf668a530a69d76d7c8157e8bcba4",
      "parents": [
        "f0d7a4b3ed46816f5097d521850a8ab7a0d40f3c"
      ],
      "author": {
        "name": "Hannes Eder",
        "email": "hannes@hanneseder.net",
        "time": "Tue Jan 06 14:39:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "hugetlb: fix sparse warnings\n\nFix the following sparse warnings:\n\n  mm/hugetlb.c:375:3: warning: returning void-valued expression\n  mm/hugetlb.c:408:3: warning: returning void-valued expression\n\nSigned-off-by: Hannes Eder \u003channes@hanneseder.net\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0d7a4b3ed46816f5097d521850a8ab7a0d40f3c",
      "tree": "521a69aea8b8b67e706f46d602a08c9aca1defd9",
      "parents": [
        "858a29900ea2d639759e697be901a60b759cdcfb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "swapfile: let others seed random\n\nRemove the srandom32((u32)get_seconds()) from non-rotational swapon:\nthere\u0027s been a coincidental discussion of earlier randomization, assume\nthat goes ahead, let swapon be a client rather than stirring for itself.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "858a29900ea2d639759e697be901a60b759cdcfb",
      "tree": "2a75b37a5bb5522c33d47356354866d0b3e8bb40",
      "parents": [
        "c60aa176c6de82703f064082b909496fc4fee956"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:56 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "swapfile: change discard pgoff_t to sector_t\n\nChange pgoff_t nr_blocks in discard_swap() and discard_swap_cluster() to\nsector_t: given the constraints on swap offsets (in particular, the 5 bits\nof swap type accommodated in the same unsigned long), pgoff_t was actually\nsafe as is, but it certainly looked worrying when shifted left.\n\n[akpm@linux-foundation.org: fix shift overflow]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c60aa176c6de82703f064082b909496fc4fee956",
      "tree": "2a6e58bda416af2c87f470023041f7049dcf1167",
      "parents": [
        "20137a490f397d9c01fc9fadd83a8d198bda4477"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "swapfile: swap allocation cycle if nonrot\n\nThough attempting to find free clusters (Andrea), swap allocation has\nalways restarted its searches from the beginning of the swap area (sct),\nto reduce seek times between swap pages, by not scattering them all over\nthe partition.\n\nBut on a solidstate swap device, seeks are cheap, and block remapping to\nlevel the wear may be limited by zones: in that case it\u0027s better to cycle\naround the whole partition.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20137a490f397d9c01fc9fadd83a8d198bda4477",
      "tree": "38e2d904e06f576a825cca3e1eaad7da6fd55947",
      "parents": [
        "7992fde72ce06c73280a1939b7a1e903bc95ef85"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swapon randomize if nonrot\n\nSwap allocation has always started from the beginning of the swap area;\nbut if we\u0027re dealing with a solidstate swap device which can only remap\nblocks within limited zones, that would sooner wear out the first zone.\n\nTherefore sys_swapon() test whether blk_queue is non-rotational, and if so\nrandomize the cluster_next starting position for allocation.\n\nIf blk_queue is nonrot, note SWP_SOLIDSTATE for later use, and report it\nwith an \"SS\" at the right end of the kernel\u0027s \"Adding ...  swap\" message\n(so that if it\u0027s both nonrot and discardable, \"SSD\" will be shown there).\nPerhaps something should be shown in /proc/swaps (swapon -s), but we have\nto be more cautious before making any addition to that format.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7992fde72ce06c73280a1939b7a1e903bc95ef85",
      "tree": "8e8ef30ec4e29b325f70c2d01d2a9def192b5c64",
      "parents": [
        "6a6ba83175c029c7820765bae44692266b29e67a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swap allocation use discard\n\nWhen scan_swap_map() finds a free cluster of swap pages to allocate,\ndiscard the old contents of the cluster if the device supports discard.\nBut don\u0027t bother when swap is so fragmented that we allocate single pages.\n\nBe careful about racing allocations made while we\u0027re scanning for a\ncluster; and hold up allocations made while we\u0027re discarding.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a6ba83175c029c7820765bae44692266b29e67a",
      "tree": "30bfb4938c73b715eb90dd15c09777fe0bbf93e6",
      "parents": [
        "ebebbbe904634b0ca1c674457b399f68db5e05b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swapon use discard (trim)\n\nWhen adding swap, all the old data on swap can be forgotten: sys_swapon()\ndiscard all but the header page of the swap partition (or every extent but\nthe header of the swap file), to give a solidstate swap device the\nopportunity to optimize its wear-levelling.\n\nIf that succeeds, note SWP_DISCARDABLE for later use, and report it with a\n\"D\" at the right end of the kernel\u0027s \"Adding ...  swap\" message.  Perhaps\nsomething should be shown in /proc/swaps (swapon -s), but we have to be\nmore cautious before making any addition to that format.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebebbbe904634b0ca1c674457b399f68db5e05b1",
      "tree": "168c6c1193580e40ba1916ebaff822e15e8ee186",
      "parents": [
        "81e33971271ec8603fe696731ff9967afb99e729"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: rearrange scan and swap_info\n\nBefore making functional changes, rearrange scan_swap_map() to simplify\nsubsequent diffs.  Actually, there is one functional change in there:\nleave cluster_nr negative while scanning for a new cluster - resetting it\nearly increased the likelihood that when we have difficulty finding a free\ncluster, another task may come in and try doing exactly the same - just a\nwaste of cpu.\n\nBefore making functional changes, rearrange struct swap_info_struct\nslightly: flags will be needed as an unsigned long (for wait_on_bit), next\nis a good int to pair with prio, old_block_size is uninteresting so shift\nit to the end.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81e33971271ec8603fe696731ff9967afb99e729",
      "tree": "c63bac5122a1e2d873be2d3a2b21c11adc709df1",
      "parents": [
        "886bb7e9c3ed0bb3e4a2b1f336d8c6a6e5a4b782"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: remove v0 SWAP-SPACE message\n\nThe kernel has not supported v0 SWAP-SPACE since 2.5.22: I think we can\nnow safely drop its \"version 0 swap is no longer supported\" message - just\nsay \"Unable to find swap-space signature\" as usual.  This removes one\nlevel of indentation from a stretch of sys_swapon().\n\nI\u0027d have liked to be specific, saying \"Unable to find SWAPSPACE2\nsignature\", but it\u0027s just too confusing that the version 1 signature shows\nthe number 2.\n\nIrrelevant nearby cleanup: kmap(page) already gives page_address(page).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "886bb7e9c3ed0bb3e4a2b1f336d8c6a6e5a4b782",
      "tree": "1d34d8dff1186d88c84ae9a7efd698beda14cd17",
      "parents": [
        "22c6f8fdb31993cf49bdd4a47b64a7002391e1c7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: remove surplus whitespace\n\nRemove trailing whitespace from swapfile.c, and odd swap_show() alignment.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22c6f8fdb31993cf49bdd4a47b64a7002391e1c7",
      "tree": "4721575904bc220bed559efb95f04f32a1febbfe",
      "parents": [
        "73fd8748ab0b9b3ddd178bea1d7ae03372033d96"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: remove SWP_ACTIVE mask\n\nRemove the SWP_ACTIVE mask: it just obscures the SWP_WRITEOK flag.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73fd8748ab0b9b3ddd178bea1d7ae03372033d96",
      "tree": "6c0173c84ff6ace213578a9a8b03fd73e23ec8ad",
      "parents": [
        "69beeb1d3428424fbc7546f85e5cd7ac4119c09d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swapon needs larger size type\n\nsys_swapon()\u0027s swapfilesize (better renamed swapfilepages) is declared as\nan int, but should be an unsigned long like the maxpages it\u0027s compared\nagainst: on 64-bit (with 4kB pages) a swapfile of 2^44 bytes was rejected\nwith \"Swap area shorter than signature indicates\".\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69beeb1d3428424fbc7546f85e5cd7ac4119c09d",
      "tree": "b00c806e4ced5ace1bdf4a492c985ee4fa0605b7",
      "parents": [
        "efab81864161f8c546d4403873e7ae7831ed5b26"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "mm: make vread() and vwrite() declaration\n\nSparse output following warnings.\n\nmm/vmalloc.c:1436:6: warning: symbol \u0027vread\u0027 was not declared. Should it be static?\nmm/vmalloc.c:1474:6: warning: symbol \u0027vwrite\u0027 was not declared. Should it be static?\n\nHowever, it is used by /dev/kmem. fixed here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efab81864161f8c546d4403873e7ae7831ed5b26",
      "tree": "e7fa6bff5c86691e4e675c81649acb9d5275af4a",
      "parents": [
        "14b90b22ec0f359ef4791033ab386b2b627bae07"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "mm: make setup_per_zone_inactive_ratio() static\n\nSparse output following warning.\n\nmm/page_alloc.c:4301:6: warning: symbol \u0027setup_per_zone_inactive_ratio\u0027 was not declared. Should it be static?\n\ncleanup here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14b90b22ec0f359ef4791033ab386b2b627bae07",
      "tree": "aa8bf58d54743b914b1d539b05541e6f2a8a68a9",
      "parents": [
        "ff30153bf9647c8646538810d4c01015a5e44787"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: make scan_zone_unevictable_pages() static\n\nsparse output following warning\n\n\tmm/vmscan.c:2507:6: warning: symbol \u0027scan_zone_unevictable_pages\u0027 was not declared. Should it be static?\n\ncleanup here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff30153bf9647c8646538810d4c01015a5e44787",
      "tree": "8f423cd925332660c3d46b6b987a7fac6794073f",
      "parents": [
        "d38d2a7582012ecf53aac33683ca5c689093cf65"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: make scan_all_zones_unevictable_pages() static\n\nsparse output following warning.\n\n\tmm/vmscan.c:2549:6: warning: symbol \u0027scan_all_zones_unevictable_pages\u0027 was not declared. Should it be static?\n\ncleanup here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d38d2a7582012ecf53aac33683ca5c689093cf65",
      "tree": "ceb0262a1478a2fa26ffa89e26bef0a80d1bb9ca",
      "parents": [
        "2bc7273b0e3a509fb598abfc5b9fe50158b830d2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: make mem_cgroup_resize_limit() static\n\nSparse output following warnings.\n\nmm/memcontrol.c:782:5: warning: symbol \u0027mem_cgroup_resize_limit\u0027 was not\ndeclared.  Should it be static?\n\ncleanup here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bc7273b0e3a509fb598abfc5b9fe50158b830d2",
      "tree": "e8cd456eb0cdc537f195e93fc0090b970dec7308",
      "parents": [
        "feb166948876e2ff8f70b2da273b2a8e86957578"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: make maddr __iomem\n\nsparse output following warnings.\n\nmm/memory.c:2936:8: warning: incorrect type in assignment (different address spaces)\nmm/memory.c:2936:8:    expected void *maddr\nmm/memory.c:2936:8:    got void [noderef] \u003casn:2\u003e\n\ncleanup here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "feb166948876e2ff8f70b2da273b2a8e86957578",
      "tree": "7d076f061531f42c9ca42f1565b7ce59fc30b4d6",
      "parents": [
        "077cbc5864cd9188fa4c4e181e48ff58317e6400"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: make init_section_page_cgroup() static\n\nSparse output following warning.\n\nmm/page_cgroup.c:100:15: warning: symbol \u0027init_section_page_cgroup\u0027 was\nnot declared.  Should it be static?\n\ncleanup here.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "077cbc5864cd9188fa4c4e181e48ff58317e6400",
      "tree": "bcfcdecce7427801451fb8d6fcf5e7648bd2bfb3",
      "parents": [
        "b962716b459505a8d83aea313fea0abe76749f42"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "memcg: reclaim shouldn\u0027t change zone-\u003erecent_rotated statistics\n\nmemcg reclaim shouldn\u0027t change zone-\u003erecent_rotated statistics.  If\nmemcgroup reclaim changes zone statistics, global reclaim can get a bit\nconfused.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b962716b459505a8d83aea313fea0abe76749f42",
      "tree": "b401e882f2ee8ff5a11209057496e603c211e8fe",
      "parents": [
        "60371d971a3d01afd102f0bbf2681f32ecc31d78"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: optimize get_scan_ratio for no swap\n\nRik suggests a simplified get_scan_ratio() for !CONFIG_SWAP.  Yes, the gcc\noptimizer gives us that, when nr_swap_pages is #defined as 0L.  Move usual\ndeclaration to swapfile.c: it never belonged in page_alloc.c.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60371d971a3d01afd102f0bbf2681f32ecc31d78",
      "tree": "999cd75fbf80877f99b518e632c445ae849eeb4d",
      "parents": [
        "ac47b003d03c2a4f28aef1d505b66d24ad191c4f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: add add_to_swap stub\n\nIf we add a failing stub for add_to_swap(), then we can remove the #ifdef\nCONFIG_SWAP from mm/vmscan.c.\n\nThis was intended as a source cleanup, but looking more closely, it turns\nout that the !CONFIG_SWAP case was going to keep_locked for an anonymous\npage, whereas now it goes to the more suitable activate_locked, like the\nCONFIG_SWAP nr_swap_pages 0 case.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac47b003d03c2a4f28aef1d505b66d24ad191c4f",
      "tree": "12c31491b756f4dc7a55a9e11b69b193743ff647",
      "parents": [
        "63d6c5ad7fc27455ce5cb4706884671fb7e0df08"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: remove gfp_mask from add_to_swap\n\nRemove gfp_mask argument from add_to_swap(): it\u0027s misleading because its\nonly caller, shrink_page_list(), is not atomic at that point; and in due\ncourse (implementing discard) we\u0027ll sometimes want to allocate some memory\nwith GFP_NOIO (as is used in swap_writepage) when allocating swap.\n\nNo change to the gfp_mask passed down to add_to_swap_cache(): still use\n__GFP_HIGH without __GFP_WAIT (with nomemalloc and nowarn as before):\nthough it\u0027s not obvious if that\u0027s the best combination to ask for here.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63d6c5ad7fc27455ce5cb4706884671fb7e0df08",
      "tree": "82cf04209a4825ab4daf2a94977fc44550d2c9b7",
      "parents": [
        "68bdc8d64742ccc5e340c5d122ebbab3f0cf2a74"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: remove try_to_munlock from vmscan\n\nAn unfortunate feature of the Unevictable LRU work was that reclaiming an\nanonymous page involved an extra scan through the anon_vma: to check that\nthe page is evictable before allocating swap, because the swap could not\nbe freed reliably soon afterwards.\n\nNow try_to_free_swap() has replaced remove_exclusive_swap_page(), that\u0027s\nnot an issue any more: remove try_to_munlock() call from\nshrink_page_list(), leaving it to try_to_munmap() to discover if the page\nis one to be culled to the unevictable list - in which case then\ntry_to_free_swap().\n\nUpdate unevictable-lru.txt to remove comments on the try_to_munlock() in\nshrink_page_list(), and shorten some lines over 80 columns.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68bdc8d64742ccc5e340c5d122ebbab3f0cf2a74",
      "tree": "1187bba5722e99f00dbba555f17026c63b0b88f9",
      "parents": [
        "a2c43eed8334e878702fca713b212ae2a11d84b9"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: try_to_unuse check removing right swap\n\nThere\u0027s a possible race in try_to_unuse() which Nick Piggin led me to two\nyears ago.  Where it does lock_page() after read_swap_cache_async(), what\nif another task removed that page from swapcache just before we locked it?\n\nIt would sail though the (*swap_map \u003e 1) tests doing nothing (because it\ncould not have been removed from swapcache before its swap references were\ngone), until it reaches the delete_from_swap_cache(page) near the bottom.\n\nNow imagine that this page has been allocated to swap on a different swap\narea while we dropped page lock (perhaps at the top, perhaps in unuse_mm):\nwe could wrongly remove from swap cache before the page has been written\nto swap, so a subsequent do_swap_page() would read in stale data from\nswap.\n\nI think this case could not happen before: remove_exclusive_swap_page()\nrefused while page count was raised.  But now with reuse_swap_page() and\ntry_to_free_swap() removing from swap cache without minding page count, I\nthink it could happen - the previous patch argued that it was safe because\ntry_to_unuse() already ignored page count, but overlooked that it might be\nbreaking the assumptions in try_to_unuse() itself.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2c43eed8334e878702fca713b212ae2a11d84b9",
      "tree": "4eb3f9b9153df5e7a638b15a6f7c9aa924066a94",
      "parents": [
        "7b1fe59793e61f826bef053107b57b23954833bb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: try_to_free_swap replaces remove_exclusive_swap_page\n\nremove_exclusive_swap_page(): its problem is in living up to its name.\n\nIt doesn\u0027t matter if someone else has a reference to the page (raised\npage_count); it doesn\u0027t matter if the page is mapped into userspace\n(raised page_mapcount - though that hints it may be worth keeping the\nswap): all that matters is that there be no more references to the swap\n(and no writeback in progress).\n\nswapoff (try_to_unuse) has been removing pages from swapcache for years,\nwith no concern for page count or page mapcount, and we used to have a\ncomment in lookup_swap_cache() recognizing that: if you go for a page of\nswapcache, you\u0027ll get the right page, but it could have been removed from\nswapcache by the time you get page lock.\n\nSo, give up asking for exclusivity: get rid of\nremove_exclusive_swap_page(), and remove_exclusive_swap_page_ref() and\nremove_exclusive_swap_page_count() which were spawned for the recent LRU\nwork: replace them by the simpler try_to_free_swap() which just checks\npage_swapcount().\n\nSimilarly, remove the page_count limitation from free_swap_and_count(),\nbut assume that it\u0027s worth holding on to the swap if page is mapped and\nswap nowhere near full.  Add a vm_swap_full() test in free_swap_cache()?\nIt would be consistent, but I think we probably have enough for now.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b1fe59793e61f826bef053107b57b23954833bb",
      "tree": "0ac769c48123c5d0770b0a0f88bad9e6318b83ed",
      "parents": [
        "ab967d86015a19777955370deebc8262d50fed63"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: reuse_swap_page replaces can_share_swap_page\n\nA good place to free up old swap is where do_wp_page(), or do_swap_page(),\nis about to redirty the page: the data on disk is then stale and won\u0027t be\nread again; and if we do decide to write the page out later, using the\nprevious swap location makes an unnecessary disk seek very likely.\n\nSo give can_share_swap_page() the side-effect of delete_from_swap_cache()\nwhen it safely can.  And can_share_swap_page() was always a misleading\nname, the more so if it has a side-effect: rename it reuse_swap_page().\n\nIrrelevant cleanup nearby: remove swap_token_default_timeout definition\nfrom swap.h: it\u0027s used nowhere.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab967d86015a19777955370deebc8262d50fed63",
      "tree": "be0807bef32c0d28ac6dbcf7c8b938840d2f2a3f",
      "parents": [
        "878b63ac889df706d01048f2c110e322ad2f996d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: wp lock page before deciding cow\n\nAn application may rely on get_user_pages() to give it pages writable from\nuserspace and shared with a driver, GUP breaking COW if necessary.  It may\nmprotect() the pages\u0027 writability, off and on, from time to time.\n\nNormally this works fine (so long as the app does not fork); but just\noccasionally, under memory pressure, a readonly pte in a newly writable\narea is COWed unnecessarily, breaking the link with the driver: because\ndo_wp_page() does trylock_page, and falls back to COW whenever that fails.\n\nFor reliable behaviour in the unshared case, when the trylock_page fails,\nnow unlock pagetable, lock page and relock pagetable, before deciding\nwhether Copy-On-Write is really necessary.\n\nReported-by: Zhou Yingchao\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "878b63ac889df706d01048f2c110e322ad2f996d",
      "tree": "e0bd69b890fda939fc190675d977dd0fd75e0427",
      "parents": [
        "2da02997e08d3efe8174c7a47696e6f7cbe69ba9"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: gup persist for write permission\n\ndo_wp_page()\u0027s VM_FAULT_WRITE return value tells __get_user_pages() that\nCOW has been done if necessary, though it may be leaving the pte without\nwrite permission - for the odd case of forced writing to a readonly vma\nfor ptrace.  At present GUP then retries the follow_page() without asking\nfor write permission, to escape an endless loop when forced.\n\nBut an application may be relying on GUP to guarantee a writable page\nwhich won\u0027t be COWed again when written from userspace, whereas a race\nhere might leave a readonly pte in place?  Change the VM_FAULT_WRITE\nhandling to ask follow_page() for write permission again, except in that\nodd case of forced writing to a readonly vma.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2da02997e08d3efe8174c7a47696e6f7cbe69ba9",
      "tree": "2e52d9346c52dda83dc8cc9626cbe302e026ad9a",
      "parents": [
        "364aeb2849789b51bf4b9af2ddd02fee7285c54e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: add dirty_background_bytes and dirty_bytes sysctls\n\nThis change introduces two new sysctls to /proc/sys/vm:\ndirty_background_bytes and dirty_bytes.\n\ndirty_background_bytes is the counterpart to dirty_background_ratio and\ndirty_bytes is the counterpart to dirty_ratio.\n\nWith growing memory capacities of individual machines, it\u0027s no longer\nsufficient to specify dirty thresholds as a percentage of the amount of\ndirtyable memory over the entire system.\n\ndirty_background_bytes and dirty_bytes specify quantities of memory, in\nbytes, that represent the dirty limits for the entire system.  If either\nof these values is set, its value represents the amount of dirty memory\nthat is needed to commence either background or direct writeback.\n\nWhen a `bytes\u0027 or `ratio\u0027 file is written, its counterpart becomes a\nfunction of the written value.  For example, if dirty_bytes is written to\nbe 8096, 8K of memory is required to commence direct writeback.\ndirty_ratio is then functionally equivalent to 8K / the amount of\ndirtyable memory:\n\n\tdirtyable_memory \u003d free pages + mapped pages + file cache\n\n\tdirty_background_bytes \u003d dirty_background_ratio * dirtyable_memory\n\t\t-or-\n\tdirty_background_ratio \u003d dirty_background_bytes / dirtyable_memory\n\n\t\tAND\n\n\tdirty_bytes \u003d dirty_ratio * dirtyable_memory\n\t\t-or-\n\tdirty_ratio \u003d dirty_bytes / dirtyable_memory\n\nOnly one of dirty_background_bytes and dirty_background_ratio may be\nspecified at a time, and only one of dirty_bytes and dirty_ratio may be\nspecified.  When one sysctl is written, the other appears as 0 when read.\n\nThe `bytes\u0027 files operate on a page size granularity since dirty limits\nare compared with ZVC values, which are in page units.\n\nPrior to this change, the minimum dirty_ratio was 5 as implemented by\nget_dirty_limits() although /proc/sys/vm/dirty_ratio would show any user\nwritten value between 0 and 100.  This restriction is maintained, but\ndirty_bytes has a lower limit of only one page.\n\nAlso prior to this change, the dirty_background_ratio could not equal or\nexceed dirty_ratio.  This restriction is maintained in addition to\nrestricting dirty_background_bytes.  If either background threshold equals\nor exceeds that of the dirty threshold, it is implicitly set to half the\ndirty threshold.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "364aeb2849789b51bf4b9af2ddd02fee7285c54e",
      "tree": "4a24ea43a2a76ae744571f3c7b5022aa1107599e",
      "parents": [
        "58a01a45721bf7bd3a41a86248c3cb02a6b0c501"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: change dirty limit type specifiers to unsigned long\n\nThe background dirty and dirty limits are better defined with type\nspecifiers of unsigned long since negative writeback thresholds are not\npossible.\n\nThese values, as returned by get_dirty_limits(), are normally compared\nwith ZVC values to determine whether writeback shall commence or be\nthrottled.  Such page counts cannot be negative, so declaring the page\nlimits as signed is unnecessary.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58a01a45721bf7bd3a41a86248c3cb02a6b0c501",
      "tree": "2f897de228d8879b981797fdb1ee7d46418e453a",
      "parents": [
        "cbf84b7add8103b92aaa84928e335df726bfc8da"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Jan 06 14:39:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm/page_alloc.c: eliminate NULL test and memset after alloc_bootmem\n\nAs noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b,\nalloc_bootmem and related functions never return NULL and always return a\nzeroed region of memory.  Thus a NULL test or memset after calls to these\nfunctions is unnecessary.\n\nThis was fixed using the following semantic patch.\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\nexpression E;\nstatement S;\n@@\n\nE \u003d \\(alloc_bootmem\\|alloc_bootmem_low\\|alloc_bootmem_pages\\|alloc_bootmem_low_pages\\|alloc_bootmem_node\\|alloc_bootmem_low_pages_node\\|alloc_bootmem_pages_node\\)(...)\n... when !\u003d E\n(\n- BUG_ON (E \u003d\u003d NULL);\n|\n- if (E \u003d\u003d NULL) S\n)\n\n@@\nexpression E,E1;\n@@\n\nE \u003d \\(alloc_bootmem\\|alloc_bootmem_low\\|alloc_bootmem_pages\\|alloc_bootmem_low_pages\\|alloc_bootmem_node\\|alloc_bootmem_low_pages_node\\|alloc_bootmem_pages_node\\)(...)\n... when !\u003d E\n- memset(E,0,E1);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbf84b7add8103b92aaa84928e335df726bfc8da",
      "tree": "04e3ef2b3f70e5bf647f4f4c8c3ce50dd12e8474",
      "parents": [
        "2afd1c928f1132b8d0099866e75ce8ad713a1180"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: further cleanup page_add_new_anon_rmap\n\nMoving lru_cache_add_active_or_unevictable() into page_add_new_anon_rmap()\nwas good but stupid: we can and should SetPageSwapBacked() there too; and\nwe know for sure that this anonymous, swap-backed page is not file cache.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2afd1c928f1132b8d0099866e75ce8ad713a1180",
      "tree": "e31d1cfd0b11df74e0241fe43e4be2c72a8946ff",
      "parents": [
        "b5934c531849ff4a51ce0f290141efe564290e40"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: make page_lock_anon_vma() static\n\npage_lock_anon_vma() and page_unlock_anon_vma() were made available to\nshow_page_path() in vmscan.c; but now that has been removed, make them\nstatic in rmap.c again, they\u0027re better kept private if possible.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5934c531849ff4a51ce0f290141efe564290e40",
      "tree": "0c741a5bd6178db11f1147875f59e7a1a9d1754d",
      "parents": [
        "51726b1222863852c46ca21ed0115b85d1edfd89"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: add_active_or_unevictable into rmap\n\nlru_cache_add_active_or_unevictable() and page_add_new_anon_rmap() always\nappear together.  Save some symbol table space and some jumping around by\nremoving lru_cache_add_active_or_unevictable(), folding its code into\npage_add_new_anon_rmap(): like how we add file pages to lru just after\nadding them to page cache.\n\nRemove the nearby \"TODO: is this safe?\" comments (yes, it is safe), and\nchange page_add_new_anon_rmap()\u0027s address BUG_ON to VM_BUG_ON as\noriginally intended.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51726b1222863852c46ca21ed0115b85d1edfd89",
      "tree": "fb9d4de47a1ee860003bc4aa7c46651a77ae7b83",
      "parents": [
        "6d91add09f4bad5f4d4233b13faa392f0c4b16be"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: replace some BUG_ONs by VM_BUG_ONs\n\nThe swap code is over-provisioned with BUG_ONs on assorted page flags,\nmostly dating back to 2.3.  They\u0027re good documentation, and guard against\ndeveloper error, but a waste of space on most systems: change them to\nVM_BUG_ONs, conditional on CONFIG_DEBUG_VM.  Just delete the PagePrivate\nones: they\u0027re later, from 2.5.69, but even less interesting now.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d91add09f4bad5f4d4233b13faa392f0c4b16be",
      "tree": "26f77047b316dfc0879307fbfda84b15a199155f",
      "parents": [
        "3c1d43787b48c798f44dc32a6e6deb5ca2da3e68"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: add Set,ClearPageSwapCache stubs\n\nIf we add NOOP stubs for SetPageSwapCache() and ClearPageSwapCache(), then\nwe can remove the #ifdef CONFIG_SWAPs from mm/migrate.c.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c1d43787b48c798f44dc32a6e6deb5ca2da3e68",
      "tree": "587da6031de37a716839656cf4fe4245aba2afb4",
      "parents": [
        "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove GFP_HIGHUSER_PAGECACHE\n\nGFP_HIGHUSER_PAGECACHE is just an alias for GFP_HIGHUSER_MOVABLE, making\nthat harder to track down: remove it, and its out-of-work brothers\nGFP_NOFS_PAGECACHE and GFP_USER_PAGECACHE.\n\nSince we\u0027re making that improvement to hotremove_migrate_alloc(), I think\nwe can now also remove one of the \"o\"s from its comment.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8",
      "tree": "3e5c9c3293c025f537ff4416660a96d33c694b5f",
      "parents": [
        "39f0dee2d8abe902617622b71f8f6f73985ec71c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove cgroup_mm_owner_callbacks\n\ncgroup_mm_owner_callbacks() was brought in to support the memrlimit\ncontroller, but sneaked into mainline ahead of it.  That controller has\nnow been shelved, and the mm_owner_changed() args were inadequate for it\nanyway (they needed an mm pointer instead of a task pointer).\n\nRemove the dead code, and restore mm_update_next_owner() locking to how it\nwas before: taking mmap_sem there does nothing for memcontrol.c, now the\nonly user of mm-\u003eowner.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39f0dee2d8abe902617622b71f8f6f73985ec71c",
      "tree": "95847d8fa625b1d23c9f04ddf2b2a430f63d4422",
      "parents": [
        "38e0edb15bd07c6a0caf0cfe39f8f90bd98601b2"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "fbuihuu@gmail.com",
        "time": "Tue Jan 06 14:39:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "do_mpage_readpage(): remove useless clear_buffer_mapped() call\n\nIt is known that buffer_mapped() is false in this code path.\n\nSigned-off-by: Franck Bui-Huu \u003cfbuihuu@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38e0edb15bd07c6a0caf0cfe39f8f90bd98601b2",
      "tree": "1ba874020bb20412ba312abef199a8668c5b99a6",
      "parents": [
        "cd52858c73f9f7df859a08fb08496ca39b9b3d8d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Tue Jan 06 14:39:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm/apply_to_range: call pte function with lazy updates\n\nMake the pte-level function in apply_to_range be called in lazy mmu mode,\nso that any pagetable modifications can be batched.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd52858c73f9f7df859a08fb08496ca39b9b3d8d",
      "tree": "c8c3d8e641484618f44dcf3b7d55ba4d42c90750",
      "parents": [
        "e97a630eb0f5b8b380fd67504de6cedebb489003"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc make lazy unmapping configurable\n\nLazy unmapping in the vmalloc code has now opened the possibility for use\nafter free bugs to go undetected.  We can catch those by forcing an unmap\nand flush (which is going to be slow, but that\u0027s what happens).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e97a630eb0f5b8b380fd67504de6cedebb489003",
      "tree": "52e337eafeb386b97630e7ffe2697550e589afc3",
      "parents": [
        "848778483351e90f9a2c587bdbe0c78b17c1e30b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc use mutex for purge\n\nThe vmalloc purge lock can be a mutex so we can sleep while a purge is\ngoing on (purge involves a global kernel TLB invalidate, so it can take\nquite a while).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "848778483351e90f9a2c587bdbe0c78b17c1e30b",
      "tree": "9248871a3e40b68a709bf69efeaf5c52cb45cbd1",
      "parents": [
        "c1279c4ef37a06ba708e6b1f6fd98b45c52770f6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Tue Jan 06 14:39:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc improve vmallocinfo\n\nIf we do that, output of files like /proc/vmallocinfo will show things\nlike \"vmalloc_32\", \"vmalloc_user\", or whomever the caller was as the\ncaller.  This info is not as useful as the real caller of the allocation.\n\nSo, proposal is to call __vmalloc_node node directly, with matching\nparameters to save the caller information\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1279c4ef37a06ba708e6b1f6fd98b45c52770f6",
      "tree": "75c54b8d7e2733d3de052eaab7700ff6fe9a9e74",
      "parents": [
        "4917e5d0499b5ae7b26b56fccaefddf9aec9369c"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Tue Jan 06 14:39:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc tweak failure printk\n\nIf we can\u0027t service a vmalloc allocation, show size of the allocation that\nactually failed.  Useful for debugging.\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4917e5d0499b5ae7b26b56fccaefddf9aec9369c",
      "tree": "78f55c2d3019d1811b5447cae130c0f647916a37",
      "parents": [
        "64cdd548ffe26849d4cd113ac640f60606063b14"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 06 14:39:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: more likely reclaim MADV_SEQUENTIAL mappings\n\nFile pages mapped only in sequentially read mappings are perfect reclaim\ncanditates.\n\nThis patch makes these mappings behave like weak references, their pages\nwill be reclaimed unless they have a strong reference from a normal\nmapping as well.\n\nIt changes the reclaim and the unmap path where they check if the page has\nbeen referenced.  In both cases, accesses through sequentially read\nmappings will be ignored.\n\nBenchmark results from KOSAKI Motohiro:\n\n    http://marc.info/?l\u003dlinux-mm\u0026m\u003d122485301925098\u0026w\u003d2\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64cdd548ffe26849d4cd113ac640f60606063b14",
      "tree": "9a7a8af9022621d2da3648757b724fcd32b20168",
      "parents": [
        "1b0bd118862cd9fe9ac2872137a1b8107e83ff9d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: cleanup: remove #ifdef CONFIG_MIGRATION\n\n#ifdef in *.c file decrease source readability a bit.  removing is better.\n\nThis patch doesn\u0027t have any functional change.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b0bd118862cd9fe9ac2872137a1b8107e83ff9d",
      "tree": "2bd59ee95762164d4e98bbafd251e3abd31c2af1",
      "parents": [
        "5594c8c813d9e907ff55da7080d42653478b73e8"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:15 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: get rid of pagevec_release_nonlru()\n\nspeculative page references patch (commit:\ne286781d5f2e9c846e012a39653a166e9d31777d) removed last\npagevec_release_nonlru() caller.\n\nSo this function can be removed now.\n\nThis patch doesn\u0027t have any functional change.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5594c8c813d9e907ff55da7080d42653478b73e8",
      "tree": "c10347380fa5e1358d9354ee7e8f3f24b0d18535",
      "parents": [
        "c04fc586c1a480ba198f03ae7b6cbd7b57380b91"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Jan 06 14:39:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: print out memmap number only if it is not zero\n\nDon\u0027t print the size of the zone\u0027s memmap array if it does not have one.\n\nImpact: cleanup\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c04fc586c1a480ba198f03ae7b6cbd7b57380b91",
      "tree": "9d6544a3b62cc01dbcbb1e315b84378b45ba86d2",
      "parents": [
        "ee53a891f47444c53318b98dac947ede963db400"
      ],
      "author": {
        "name": "Gary Hade",
        "email": "garyhade@us.ibm.com",
        "time": "Tue Jan 06 14:39:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: show node to memory section relationship with symlinks in sysfs\n\nShow node to memory section relationship with symlinks in sysfs\n\nAdd /sys/devices/system/node/nodeX/memoryY symlinks for all\nthe memory sections located on nodeX.  For example:\n/sys/devices/system/node/node1/memory135 -\u003e ../../memory/memory135\nindicates that memory section 135 resides on node1.\n\nAlso revises documentation to cover this change as well as updating\nDocumentation/ABI/testing/sysfs-devices-memory to include descriptions\nof memory hotremove files \u0027phys_device\u0027, \u0027phys_index\u0027, and \u0027state\u0027\nthat were previously not described there.\n\nIn addition to it always being a good policy to provide users with\nthe maximum possible amount of physical location information for\nresources that can be hot-added and/or hot-removed, the following\nare some (but likely not all) of the user benefits provided by\nthis change.\nImmediate:\n  - Provides information needed to determine the specific node\n    on which a defective DIMM is located.  This will reduce system\n    downtime when the node or defective DIMM is swapped out.\n  - Prevents unintended onlining of a memory section that was\n    previously offlined due to a defective DIMM.  This could happen\n    during node hot-add when the user or node hot-add assist script\n    onlines _all_ offlined sections due to user or script inability\n    to identify the specific memory sections located on the hot-added\n    node.  The consequences of reintroducing the defective memory\n    could be ugly.\n  - Provides information needed to vary the amount and distribution\n    of memory on specific nodes for testing or debugging purposes.\nFuture:\n  - Will provide information needed to identify the memory\n    sections that need to be offlined prior to physical removal\n    of a specific node.\n\nSymlink creation during boot was tested on 2-node x86_64, 2-node\nppc64, and 2-node ia64 systems.  Symlink creation during physical\nmemory hot-add tested on a 2-node x86_64 system.\n\nSigned-off-by: Gary Hade \u003cgaryhade@us.ibm.com\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee53a891f47444c53318b98dac947ede963db400",
      "tree": "57cec3b7aadb120b5a2857bd212159a693a379f2",
      "parents": [
        "82fd1a9a8ced9607312b54859572bcc6211e8919"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: do_sync_mapping_range integrity fix\n\nChris Mason notices do_sync_mapping_range didn\u0027t actually ask for data\nintegrity writeout.  Unfortunately, it is advertised as being usable for\ndata integrity operations.\n\nThis is a data integrity bug.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82fd1a9a8ced9607312b54859572bcc6211e8919",
      "tree": "fc537a866c670a4c54895a7f75b5ccfbdeeb034c",
      "parents": [
        "d5482cdf8a0aacb1e6468a97d5544f5829c8d8c4"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jan 06 14:39:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: write_cache_pages more terminate quickly\n\nNow that we have the early-termination logic in place, it makes sense to\nbail out early in all other cases where done is set to 1.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5482cdf8a0aacb1e6468a97d5544f5829c8d8c4",
      "tree": "3565702c805deecd51e32ed1458f567a0064815d",
      "parents": [
        "515f4a037fb9ab736f8bad733fcd2ffd350cf265"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: write_cache_pages terminate quickly\n\nTerminate the write_cache_pages loop upon encountering the first page past\nend, without locking the page.  Pages cannot have their index change when\nwe have a reference on them (truncate, eg truncate_inode_pages_range\nperforms the same check without the page lock).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "515f4a037fb9ab736f8bad733fcd2ffd350cf265",
      "tree": "0862eee6405297ef23a5b3d8906cfef5783c0c77",
      "parents": [
        "5a3d5c9813db56a75934eb1015367fda23a8b0b4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "mm: write_cache_pages optimise page cleaning\n\nIn write_cache_pages, if we get stuck behind another process that is\ncleaning pages, we will be forced to wait for them to finish, then perform\nour own writeout (if it was redirtied during the long wait), then wait for\nthat.\n\nIf a page under writeout is still clean, we can skip waiting for it (if\nwe\u0027re part of a data integrity sync, we\u0027ll be waiting for all writeout\npages afterwards, so we\u0027ll still be waiting for the other guy\u0027s write\nthat\u0027s cleaned the page).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a3d5c9813db56a75934eb1015367fda23a8b0b4",
      "tree": "656b43b3982a6513467e9a3191377429bb9f45f1",
      "parents": [
        "05fe478dd04e02fa230c305ab9b5616669821dd3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "mm: write_cache_pages cleanups\n\nGet rid of some complex expressions from flow control statements, add a\ncomment, remove some duplicate code.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fe478dd04e02fa230c305ab9b5616669821dd3",
      "tree": "9b551aad196b66e5c773ed7619386a1bb5e14f41",
      "parents": [
        "00266770b8b3a6a77f896ca501a0613739086832"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "mm: write_cache_pages integrity fix\n\nIn write_cache_pages, nr_to_write is heeded even for data-integrity syncs,\nso the function will return success after writing out nr_to_write pages,\neven if that was not sufficient to guarantee data integrity.\n\nThe callers tend to set it to values that could break data interity\nsemantics easily in practice.  For example, nr_to_write can be set to\nmapping-\u003enr_pages * 2, however if a file has a single, dirty page, then\nfsync is called, subsequent pages might be concurrently added and dirtied,\nthen write_cache_pages might writeout two of these newly dirty pages,\nwhile not writing out the old page that should have been written out.\n\nFix this by ignoring nr_to_write if it is a data integrity sync.\n\nThis is a data integrity bug.\n\nThe reason this has been done in the past is to avoid stalling sync\noperations behind page dirtiers.\n\n \"If a file has one dirty page at offset 1000000000000000 then someone\n  does an fsync() and someone else gets in first and starts madly writing\n  pages at offset 0, we want to write that page at 1000000000000000.\n  Somehow.\"\n\nWhat we do today is return success after an arbitrary amount of pages are\nwritten, whether or not we have provided the data-integrity semantics that\nthe caller has asked for.  Even this doesn\u0027t actually fix all stall cases\ncompletely: in the above situation, if the file has a huge number of pages\nin pagecache (but not dirty), then mapping-\u003enrpages is going to be huge,\neven if pages are being dirtied.\n\nThis change does indeed make the possibility of long stalls lager, and\nthat\u0027s not a good thing, but lying about data integrity is even worse.  We\nhave to either perform the sync, or return -ELINUXISLAME so at least the\ncaller knows what has happened.\n\nThere are subsequent competing approaches in the works to solve the stall\nproblems properly, without compromising data integrity.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00266770b8b3a6a77f896ca501a0613739086832",
      "tree": "e10b01330e928b6d3eaa1040560fe133ddba6654",
      "parents": [
        "bd19e012f6fd3b7309689165ea865cbb7bb88c1e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "mm: write_cache_pages writepage error fix\n\nIn write_cache_pages, if ret signals a real error, but we still have some\npages left in the pagevec, done would be set to 1, but the remaining pages\nwould continue to be processed and ret will be overwritten in the process.\n\nIt could easily be overwritten with success, and thus success will be\nreturned even if there is an error.  Thus the caller is told all writes\nsucceeded, wheras in reality some did not.\n\nFix this by bailing immediately if there is an error, and retaining the\nfirst error code.\n\nThis is a data integrity bug.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd19e012f6fd3b7309689165ea865cbb7bb88c1e",
      "tree": "66ca4f5bfc683d2935e7fc5cab2f57a7682ad65a",
      "parents": [
        "31a12666d8f0c22235297e1c1575f82061480029"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "mm: write_cache_pages early loop termination\n\nWe\u0027d like to break out of the loop early in many situations, however the\nexisting code has been setting mapping-\u003ewriteback_index past the final\npage in the pagevec lookup for cyclic writeback.  This is a problem if we\ndon\u0027t process all pages up to the final page.\n\nCurrently the code mostly keeps writeback_index reasonable and hacked\naround this by not breaking out of the loop or writing pages outside the\nrange in these cases.  Keep track of a real \"done index\" that enables us\nto terminate the loop in a much more flexible manner.\n\nNeeded by the subsequent patch to preserve writepage errors, and then\nfurther patches to break out of the loop early for other reasons.  However\nthere are no functional changes with this patch alone.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a12666d8f0c22235297e1c1575f82061480029",
      "tree": "89106848d2072278cc9338b091ad059db460420f",
      "parents": [
        "38c8e6180939e5619140b2e9e479cb26029ff8b1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "mm: write_cache_pages cyclic fix\n\nIn write_cache_pages, scanned \u003d\u003d 1 is supposed to mean that cyclic\nwriteback has circled through zero, thus we should not circle again.\nHowever it gets set to 1 after the first successful pagevec lookup.  This\nleads to cases where not enough data gets written.\n\nCounterexample: file with first 10 pages dirty, writeback_index \u003d\u003d 5,\nnr_to_write \u003d\u003d 10.  Then the 5 last pages will be found, and scanned will\nbe set to 1, after writing those out, we will not cycle back to get the\nfirst 5.\n\nRework this logic, now we\u0027ll always cycle unless we started off from index\n0.  When cycling, only write out as far as 1 page before the start page\nfrom the first cycle (so we don\u0027t write parts of the file twice).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38c8e6180939e5619140b2e9e479cb26029ff8b1",
      "tree": "1980f3dadfa02ac6c1fc2ad7236205af54f7972a",
      "parents": [
        "75aa199410359dc5fbcf9025ff7af98a9d20f0d5"
      ],
      "author": {
        "name": "Miquel van Smoorenburg",
        "email": "mikevs@xs4all.net",
        "time": "Tue Jan 06 14:39:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "do_mpage_readpage(): don\u0027t submit lots of small bios on boundary\n\nWhile tracing I/O patterns with blktrace (a great tool) a few weeks ago I\nidentified a minor issue in fs/mpage.c\n\nAs the comment above mpage_readpages() says, a fs\u0027s get_block function\nwill set BH_Boundary when it maps a block just before a block for which\nextra I/O is required.\n\nSince get_block() can map a range of pages, for all these pages the\nBH_Boundary flag will be set.  But we only need to push what I/O we have\naccumulated at the last block of this range.\n\nThis makes do_mpage_readpage() send out the largest possible bio instead\nof a bunch of page-sized ones in the BH_Boundary case.\n\nSigned-off-by: Miquel van Smoorenburg \u003cmikevs@xs4all.net\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75aa199410359dc5fbcf9025ff7af98a9d20f0d5",
      "tree": "569bffa181ccba56d884ec7e826ae61384297f56",
      "parents": [
        "c7d4caeb1d68d07f77cc09fc20b7759d6d7aa3b1"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "oom: print triggering task\u0027s cpuset and mems allowed\n\nWhen cpusets are enabled, it\u0027s necessary to print the triggering task\u0027s\nset of allowable nodes so the subsequently printed meminfo can be\ninterpreted correctly.\n\nWe also print the task\u0027s cpuset name for informational purposes.\n\n[rientjes@google.com: task lock current before dereferencing cpuset]\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7d4caeb1d68d07f77cc09fc20b7759d6d7aa3b1",
      "tree": "5348580e30f4ce2e5a10376bb5951ff94b8fb616",
      "parents": [
        "1c0fe6e3bda0464728c23c8d84aa47567e8b716c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "oom: fix zone_scan_mutex name\n\nzone_scan_mutex is actually a spinlock, so name it appropriately.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c0fe6e3bda0464728c23c8d84aa47567e8b716c",
      "tree": "64f7903ee7757b14464e8a06bf91f5c4d5a8ba56",
      "parents": [
        "5bd1455c239672081d0e7f086e899b8cbc7a9844"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:38:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: invoke oom-killer from page fault\n\nRather than have the pagefault handler kill a process directly if it gets\na VM_FAULT_OOM, have it call into the OOM killer.\n\nWith increasingly sophisticated oom behaviour (cpusets, memory cgroups,\noom killing throttling, oom priority adjustment or selective disabling,\npanic on oom, etc), it\u0027s silly to unconditionally kill the faulting\nprocess at page fault time.  Create a hook for pagefault oom path to call\ninto instead.\n\nOnly converted x86 and uml so far.\n\n[akpm@linux-foundation.org: make __out_of_memory() static]\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bd1455c239672081d0e7f086e899b8cbc7a9844",
      "tree": "0ec4718a425c0bba91344f5be9810593ad4c6b3c",
      "parents": [
        "3140a2273009c01c27d316f35ab76a37e105fdd8"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "Brice.Goglin@inria.fr",
        "time": "Tue Jan 06 14:38:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: move_pages: no need to set pp-\u003epage to ZERO_PAGE(0) by default\n\npp-\u003epage is never used when not set to the right page, so there is no need\nto set it to ZERO_PAGE(0) by default.\n\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3140a2273009c01c27d316f35ab76a37e105fdd8",
      "tree": "25d4f805dbf72a9491bc146bb77418ef507d21bf",
      "parents": [
        "390722baa7fc447b0a4f0c3c3f537ed056dbc944"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "Brice.Goglin@inria.fr",
        "time": "Tue Jan 06 14:38:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: rework do_pages_move() to work on page_sized chunks\n\nRework do_pages_move() to work by page-sized chunks of struct page_to_node\nthat are passed to do_move_page_to_node_array().  We now only have to\nallocate a single page instead a possibly very large vmalloc area to store\nall page_to_node entries.\n\nAs a result, new_page_node() will now have a very small lookup, hidding\nmuch of the overall sys_move_pages() overhead.\n\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nSigned-off-by: Nathalie Furmento \u003cNathalie.Furmento@labri.fr\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "390722baa7fc447b0a4f0c3c3f537ed056dbc944",
      "tree": "7cdcf1fb968691cf9eaa52ce13813cba6ca24ee2",
      "parents": [
        "bf3f3bc5e734706730c12a323f9b2068052aa1f0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:38:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: don\u0027t mark_page_accessed in shmem_fault\n\nFollowing \"mm: don\u0027t mark_page_accessed in fault path\", which now\nplaces a mark_page_accessed() in zap_pte_range(), we should remove\nthe mark_page_accessed() from shmem_fault().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf3f3bc5e734706730c12a323f9b2068052aa1f0",
      "tree": "d93fb6beb0916cc10aeb5674578bfa3ac40371c9",
      "parents": [
        "3340289ddf29ca75c3acfb3a6b72f234b2f74d5c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:38:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: don\u0027t mark_page_accessed in fault path\n\nDoing a mark_page_accessed at fault-time, then doing SetPageReferenced at\nunmap-time if the pte is young has a number of problems.\n\nmark_page_accessed is supposed to be roughly the equivalent of a young pte\nfor unmapped references. Unfortunately it doesn\u0027t come with any context:\nafter being called, reclaim doesn\u0027t know who or why the page was touched.\n\nSo calling mark_page_accessed not only adds extra lru or PG_referenced\nmanipulations for pages that are already going to have pte_young ptes anyway,\nbut it also adds these references which are difficult to work with from the\ncontext of vma specific references (eg. MADV_SEQUENTIAL pte_young may not\nwish to contribute to the page being referenced).\n\nThen, simply doing SetPageReferenced when zapping a pte and finding it is\nyoung, is not a really good solution either. SetPageReferenced does not\ncorrectly promote the page to the active list for example. So after removing\nmark_page_accessed from the fault path, several mmap()+touch+munmap() would\nhave a very different result from several read(2) calls for example, which\nis not really desirable.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3340289ddf29ca75c3acfb3a6b72f234b2f74d5c",
      "tree": "d5da94eb1cb0146160fcb0e7aa161bfa5b6ac807",
      "parents": [
        "08fba69986e20c1c9e5fe2e6064d146cc4f42480"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jan 06 14:38:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: report the MMU pagesize in /proc/pid/smaps\n\nThe KernelPageSize entry in /proc/pid/smaps is the pagesize used by the\nkernel to back a VMA.  This matches the size used by the MMU in the\nmajority of cases.  However, one counter-example occurs on PPC64 kernels\nwhereby a kernel using 64K as a base pagesize may still use 4K pages for\nthe MMU on older processor.  To distinguish, this patch reports\nMMUPageSize as the pagesize used by the MMU in /proc/pid/smaps.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"KOSAKI Motohiro\" \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08fba69986e20c1c9e5fe2e6064d146cc4f42480",
      "tree": "40bd36a6778624527d91ede0eb51aa5b99aab01c",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jan 06 14:38:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: report the pagesize backing a VMA in /proc/pid/smaps\n\nIt is useful to verify a hugepage-aware application is using the expected\npagesizes for its memory regions. This patch creates an entry called\nKernelPageSize in /proc/pid/smaps that is the size of page used by the\nkernel to back a VMA. The entry is not called PageSize as it is possible\nthe MMU uses a different size. This extension should not break any sensible\nparser that skips lines containing unrecognised information.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: \"KOSAKI Motohiro\" \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "238c6d54830c624f34ac9cf123ac04aebfca5013",
      "tree": "43b7f595013483382a3053237c45d9d2824e0295",
      "parents": [
        "8e128ce3318a147903c893de1891f6c2306f8a61",
        "a159c1ac5f33c6cf0f5aa3c9d1ccdc82c907ee46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:20:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:20:59 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:\n  dm snapshot: extend exception store functions\n  dm snapshot: split out exception store implementations\n  dm snapshot: rename struct exception_store\n  dm snapshot: separate out exception store interface\n  dm mpath: move trigger_event to system workqueue\n  dm: add name and uuid to sysfs\n  dm table: rework reference counting\n  dm: support barriers on simple devices\n  dm request: extend target interface\n  dm request: add caches\n  dm ioctl: allow dm_copy_name_and_uuid to return only one field\n  dm log: ensure log bitmap fits on log device\n  dm log: move region_size validation\n  dm log: avoid reinitialising io_req on every operation\n  dm: consolidate target deregistration error handling\n  dm raid1: fix error count\n  dm log: fix dm_io_client leak on error paths\n  dm snapshot: change yield to msleep\n  dm table: drop reference at unbind\n"
    },
    {
      "commit": "a159c1ac5f33c6cf0f5aa3c9d1ccdc82c907ee46",
      "tree": "2cb6bfd3f376e2366f3e3820ebd07a0a86a01cfc",
      "parents": [
        "4db6bfe02bdc7dc5048f46dd682a94801d029adc"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:19 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:19 2009 +0000"
      },
      "message": "dm snapshot: extend exception store functions\n\nSupply dm_add_exception as a callback to the read_metadata function.\nAdd a status function ready for a later patch and name the functions\nconsistently.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4db6bfe02bdc7dc5048f46dd682a94801d029adc",
      "tree": "780a41560ea05266288853204f0d7e4eef4f6355",
      "parents": [
        "1ae25f9c933d1432fbffdf3e126051a974608abf"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:17 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:17 2009 +0000"
      },
      "message": "dm snapshot: split out exception store implementations\n\nMove the existing snapshot exception store implementations out into\nseparate files.  Later patches will place these behind a new\ninterface in preparation for alternative implementations.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1ae25f9c933d1432fbffdf3e126051a974608abf",
      "tree": "5a15a6330107a70a51d0c3cfe0bf703762e79839",
      "parents": [
        "aea53d92f70eeb00ae480e399a997dd55fd5055d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:16 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:16 2009 +0000"
      },
      "message": "dm snapshot: rename struct exception_store\n\nRename struct exception_store to dm_exception_store.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aea53d92f70eeb00ae480e399a997dd55fd5055d",
      "tree": "55e087e5e22168ed87f6d51ca0c8557a7678834f",
      "parents": [
        "fe9cf30eb8186ef267d1868dc9f12f2d0f40835a"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:15 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:15 2009 +0000"
      },
      "message": "dm snapshot: separate out exception store interface\n\nPull structures that bridge the gap between snapshot and\nexception store out of dm-snap.h and put them in a new\n.h file - dm-exception-store.h.  This file will define the\nAPI for new exception stores.\n\nUltimately, dm-snap.h is unnecessary, since only dm-snap.c\nshould be using it.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fe9cf30eb8186ef267d1868dc9f12f2d0f40835a",
      "tree": "357db984073d7362b6c31dd431f77768c65800bf",
      "parents": [
        "784aae735d9b0bba3f8b9faef4c8b30df3bf0128"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:13 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:13 2009 +0000"
      },
      "message": "dm mpath: move trigger_event to system workqueue\n\nThe same workqueue is used both for sending uevents and processing queued I/O.\nDeadlock has been reported in RHEL5 when sending a uevent was blocked waiting\nfor the queued I/O to be processed.  Use scheduled_work() for the asynchronous\nuevents instead.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "784aae735d9b0bba3f8b9faef4c8b30df3bf0128",
      "tree": "7e2e956c395b27f63569d7a6adc1098f116cc3a4",
      "parents": [
        "d58168763f74d1edbc296d7038c60efe6493fdd4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:12 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:12 2009 +0000"
      },
      "message": "dm: add name and uuid to sysfs\n\nImplement simple read-only sysfs entry for device-mapper block device.\n\nThis patch adds a simple sysfs directory named \"dm\" under block device\nproperties and implements\n\t- name attribute (string containing mapped device name)\n\t- uuid attribute (string containing UUID, or empty string if not set)\n\nThe kobject is embedded in mapped_device struct, so no additional\nmemory allocation is needed for initializing sysfs entry.\n\nDuring the processing of sysfs attribute we need to lock mapped device\nwhich is done by a new function dm_get_from_kobj, which returns the md\nassociated with kobject and increases the usage count.\n\nEach \u0027show attribute\u0027 function is responsible for its own locking.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d58168763f74d1edbc296d7038c60efe6493fdd4",
      "tree": "03866d641211fe16961a5b8aab6d9132bf07d9c8",
      "parents": [
        "ab4c1424882be9cd70b89abf2b484add355712fa"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:05:10 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:10 2009 +0000"
      },
      "message": "dm table: rework reference counting\n\nRework table reference counting.\n\nThe existing code uses a reference counter. When the last reference is\ndropped and the counter reaches zero, the table destructor is called.\nTable reference counters are acquired/released from upcalls from other\nkernel code (dm_any_congested, dm_merge_bvec, dm_unplug_all).\nIf the reference counter reaches zero in one of the upcalls, the table\ndestructor is called from almost random kernel code.\n\nThis leads to various problems:\n* dm_any_congested being called under a spinlock, which calls the\n  destructor, which calls some sleeping function.\n* the destructor attempting to take a lock that is already taken by the\n  same process.\n* stale reference from some other kernel code keeps the table\n  constructed, which keeps some devices open, even after successful\n  return from \"dmsetup remove\". This can confuse lvm and prevent closing\n  of underlying devices or reusing device minor numbers.\n\nThe patch changes reference counting so that the table destructor can be\ncalled only at predetermined places.\n\nThe table has always exactly one reference from either mapped_device-\u003emap\nor hash_cell-\u003enew_map. After this patch, this reference is not counted\nin table-\u003eholders.  A pair of dm_create_table/dm_destroy_table functions\nis used for table creation/destruction.\n\nTemporary references from the other code increase table-\u003eholders. A pair\nof dm_table_get/dm_table_put functions is used to manipulate it.\n\nWhen the table is about to be destroyed, we wait for table-\u003eholders to\nreach 0. Then, we call the table destructor.  We use active waiting with\nmsleep(1), because the situation happens rarely (to one user in 5 years)\nand removing the device isn\u0027t performance-critical task: the user doesn\u0027t\ncare if it takes one tick more or not.\n\nThis way, the destructor is called only at specific points\n(dm_table_destroy function) and the above problems associated with lazy\ndestruction can\u0027t happen.\n\nFinally remove the temporary protection added to dm_any_congested().\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ab4c1424882be9cd70b89abf2b484add355712fa",
      "tree": "8baed3606be67900df9f02e42fcdb091b78c5def",
      "parents": [
        "7d76345da6ed3927c9cbf5d3f7a7021e8bba7374"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Jan 06 03:05:09 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:09 2009 +0000"
      },
      "message": "dm: support barriers on simple devices\n\nImplement barrier support for single device DM devices\n\nThis patch implements barrier support in DM for the common case of dm linear\njust remapping a single underlying device. In this case we can safely\npass the barrier through because there can be no reordering between\ndevices.\n\n NB. Any DM device might cease to support barriers if it gets\n     reconfigured so code must continue to allow for a possible\n     -EOPNOTSUPP on every barrier bio submitted.  - agk\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7d76345da6ed3927c9cbf5d3f7a7021e8bba7374",
      "tree": "d0b470dd1a55dfffb27ffa012e4a5afebd133495",
      "parents": [
        "8fbf26ad5b16ad3a826ca7fe3e86700420abed1f"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Tue Jan 06 03:05:07 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:07 2009 +0000"
      },
      "message": "dm request: extend target interface\n\nThis patch adds the following target interfaces for request-based dm.\n\n  map_rq    : for mapping a request\n\n  rq_end_io : for finishing a request\n\n  busy      : for avoiding performance regression from bio-based dm.\n              Target can tell dm core not to map requests now, and\n              that may help requests in the block layer queue to be\n              bigger by I/O merging.\n              In bio-based dm, this behavior is done by device\n              drivers managing the block layer queue.\n              But in request-based dm, dm core has to do that\n              since dm core manages the block layer queue.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8fbf26ad5b16ad3a826ca7fe3e86700420abed1f",
      "tree": "43bc5cc2ca90ea394682daa4b665a46ebb110b97",
      "parents": [
        "23d39f63aa87e812fd879b8bc32ee6ccfe733de3"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Tue Jan 06 03:05:06 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:06 2009 +0000"
      },
      "message": "dm request: add caches\n\nThis patch prepares some kmem_caches for request-based dm.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "23d39f63aa87e812fd879b8bc32ee6ccfe733de3",
      "tree": "3535af0aff56260cdbf573a704e3f0122c6cfc8b",
      "parents": [
        "ac1f0ac22c7be908fd33407273b9808bfaedada4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:04 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:04 2009 +0000"
      },
      "message": "dm ioctl: allow dm_copy_name_and_uuid to return only one field\n\nAllow NULL buffer in dm_copy_name_and_uuid if you only want to return one of\nthe fields.\n\n(Required by a following patch that adds these fields to sysfs.)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReviewed-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ac1f0ac22c7be908fd33407273b9808bfaedada4",
      "tree": "f6a867138918b591639464802744506f6b83ad14",
      "parents": [
        "2045e88edb4e0c9ce62d317f77dc59d27d9c530e"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:02 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:02 2009 +0000"
      },
      "message": "dm log: ensure log bitmap fits on log device\n\nCheck that the log bitmap will fit within the log device.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2045e88edb4e0c9ce62d317f77dc59d27d9c530e",
      "tree": "324eeea271b889263d0141fe0c82d4b0e43d0079",
      "parents": [
        "6f3af01cb0eda0ec50fe1e4cbdf028269dc396fe"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:01 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:01 2009 +0000"
      },
      "message": "dm log: move region_size validation\n\nMove log size validation from mirror target to log constructor.\n\nRemoved PAGE_SIZE restriction we no longer think necessary.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f3af01cb0eda0ec50fe1e4cbdf028269dc396fe",
      "tree": "29988ebe5a40ee1092bdbeac45eb0bdc312ff670",
      "parents": [
        "10d3bd09a3c25df114f74f7f86e1b58d070bef32"
      ],
      "author": {
        "name": "Takahiro Yasui",
        "email": "tyasui@redhat.com",
        "time": "Tue Jan 06 03:04:59 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:59 2009 +0000"
      },
      "message": "dm log: avoid reinitialising io_req on every operation\n\nrw_header function updates three members of io_req data every time\nwhen I/O is processed. bi_rw and notify.fn are never modified once\nthey get initialized, and so they can be set in advance.\n\nheader_to_disk() can also be pulled out of write_header() since only one\ncaller needs it and write_header() can be replaced by rw_header()\ndirectly.\n\nSigned-off-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "10d3bd09a3c25df114f74f7f86e1b58d070bef32",
      "tree": "a44e2fe5ccc5950b87a1d31849e5f0ac24fdcc16",
      "parents": [
        "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "message": "dm: consolidate target deregistration error handling\n\nChange dm_unregister_target to return void and use BUG() for error\nreporting.\n\ndm_unregister_target can only fail because of programming bug in the\ntarget driver. It can\u0027t fail because of user\u0027s behavior or disk errors.\n\nThis patch changes unregister_target to return void and use BUG if\nsomeone tries to unregister non-registered target or unregister target\nthat is in use.\n\nThis patch removes code duplication (testing of error codes in all dm\ntargets) and reports bugs in just one place, in dm_unregister_target. In\nsome target drivers, these return codes were ignored, which could lead\nto a situation where bugs could be missed.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43",
      "tree": "84131d888f5ec610cc343ca7188a5d4044043c2b",
      "parents": [
        "c7a2bd19b7c1e0bd2c7604c53d2583e91e536948"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:04:57 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:57 2009 +0000"
      },
      "message": "dm raid1: fix error count\n\nAlways increase the error count when I/O on a leg of a mirror fails.\n\nThe error count is used to decide whether to select an alternative\nmirror leg.  If the target doesn\u0027t use the \"handle_errors\" feature, the\nerror count is not updated and the bio can get requeued forever by the\nread callback.\n\nFix it by increasing error_count before the handle_errors feature\nchecking.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c7a2bd19b7c1e0bd2c7604c53d2583e91e536948",
      "tree": "bb896040c05397026745de9d05bd6f491d26603f",
      "parents": [
        "90fa1527bddc7147dc0d590ee6184ca88bc50ecf"
      ],
      "author": {
        "name": "Takahiro Yasui",
        "email": "tyasui@redhat.com",
        "time": "Tue Jan 06 03:04:56 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:56 2009 +0000"
      },
      "message": "dm log: fix dm_io_client leak on error paths\n\nIn create_log_context function, dm_io_client_destroy function needs\nto be called, when memory allocation of disk_header, sync_bits and\nrecovering_bits failed, but dm_io_client_destroy is not called.\n\nCc: stable@kernel.org\nSigned-off-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nAcked-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "90fa1527bddc7147dc0d590ee6184ca88bc50ecf",
      "tree": "a6b692b5a7ef777cbd8f2927783f593234b091d1",
      "parents": [
        "a1b51e98676932d031f5eec1325b2df4bbdc8f26"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:54 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:54 2009 +0000"
      },
      "message": "dm snapshot: change yield to msleep\n\nChange yield() to msleep(1). If the thread had realtime priority,\nyield() doesn\u0027t really yield, so the yielding process would loop\nindefinitely and cause machine lockup.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a1b51e98676932d031f5eec1325b2df4bbdc8f26",
      "tree": "0dda5c172f6ef1880dbc9eafb9eb6d404c9447c6",
      "parents": [
        "fe0bdec68b77020281dc814805edfe594ae89e0f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:53 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:53 2009 +0000"
      },
      "message": "dm table: drop reference at unbind\n\nMove one dm_table_put() so that the last reference in the thread\ngets dropped in __unbind().\n\nThis is required for a following patch,\ndm-table-rework-reference-counting.patch, which will change the logic in\nsuch a way that table destructor is called only at specific points in\nthe code.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8e128ce3318a147903c893de1891f6c2306f8a61",
      "tree": "3b45e780570e9beb9ec8e83c677f2d9fd9b458ce",
      "parents": [
        "0bbb2753584231db364b624bf8cf82551b94da7d",
        "3f874b6643e189d3d07618928ceed0013d71593e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:04:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:04:09 2009 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.o-hand.com/linux-mfd\n\n* \u0027for-next\u0027 of git://git.o-hand.com/linux-mfd: (30 commits)\n  mfd: Fix section mismatch in da903x\n  mfd: move drivers/i2c/chips/menelaus.c to drivers/mfd\n  mfd: move drivers/i2c/chips/tps65010.c to drivers/mfd\n  mfd: dm355evm msp430 driver\n  mfd: Add missing break from wm3850-core\n  mfd: Add WM8351 support\n  mfd: Support configurable numbers of DCDCs and ISINKs on WM8350\n  mfd: Handle missing WM8350 platform data\n  mfd: Add WM8352 support\n  mfd: Use irq_to_desc in twl4030 code\n  power_supply: Add Dialog DA9030 battery charger driver\n  mfd: Dialog DA9030 battery charger MFD driver\n  mfd: Register WM8400 codec device\n  mfd: Pass driver_data onto child devices\n  mfd: Fix twl4030-core.c build error\n  mfd: twl4030 regulator bug fixes\n  mfd: twl4030: create some regulator devices\n  mfd: twl4030: cleanup symbols and OMAP dependency\n  mfd: twl4030: simplified child creation code\n  power_supply: Add battery health reporting for WM8350\n  ...\n"
    },
    {
      "commit": "0bbb2753584231db364b624bf8cf82551b94da7d",
      "tree": "559c49330037fa4e2f5d231e06576f80dc49caaf",
      "parents": [
        "0578c3b4d44c34e499e1fd5916ed6c63635b25cf",
        "9e01892c4234070bbcf3a9f582514c8b91464375"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:39 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: convert to stop_machine_create/destroy.\n  stop_machine: introduce stop_machine_create/destroy.\n  parisc: fix module loading failure of large kernel modules\n  module: fix module loading failure of large kernel modules for parisc\n  module: fix warning of unused function when !CONFIG_PROC_FS\n  kernel/module.c: compare symbol values when marking symbols as exported in /proc/kallsyms.\n  remove CONFIG_KMOD\n"
    },
    {
      "commit": "0578c3b4d44c34e499e1fd5916ed6c63635b25cf",
      "tree": "7bcf1e4bb08984b2f5671a48c052c26903855ba6",
      "parents": [
        "7d8a804c594b61a05c698126165b5dc417d94a0f",
        "52942b6b16c6ebb25f4dd4df0208d840ba0cbc5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:11 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  swiotlb: Don\u0027t include linux/swiotlb.h twice in lib/swiotlb.c\n  intel-iommu: fix build error with INTR_REMAP\u003dy and DMAR\u003dn\n  swiotlb: add missing __init annotations\n"
    },
    {
      "commit": "7d8a804c594b61a05c698126165b5dc417d94a0f",
      "tree": "5718ed900d1a8aa7d85eaa02dc27fda8230a688e",
      "parents": [
        "c58bd34d00e04df9a0691732086cf8102b20d907",
        "722d74219ea21223c74e5e894b0afcc5e4ca75a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:02:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:02:09 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: fs/dlm/ast.c: fix warning\n  dlm: add new debugfs entry\n  dlm: add time stamp of blocking callback\n  dlm: change lock time stamping\n  dlm: improve how bast mode handling\n  dlm: remove extra blocking callback check\n  dlm: replace schedule with cond_resched\n  dlm: remove kmap/kunmap\n  dlm: trivial annotation of be16 value\n  dlm: fix up memory allocation flags\n"
    },
    {
      "commit": "c58bd34d00e04df9a0691732086cf8102b20d907",
      "tree": "82e0a95b582974351f24cdf812d023c38d921474",
      "parents": [
        "8606ab6d30dbaaafff985bd462bf33c36997eae9",
        "88f60f62f31092db46aa5c71bf6da67c958bc420"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:58:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:58:06 2009 -0800"
      },
      "message": "Merge branch \u0027i2c-next\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux\n\n* \u0027i2c-next\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux:\n  i2c-omap: fix type of irq handler function\n  i2c-s3c2410: Change IRQ to be plain integer.\n  i2c-s3c2410: Allow more than one i2c-s3c2410 adapter\n  i2c-s3c2410: Remove default platform data.\n  i2c-s3c2410: Use platform data for gpio configuration\n  i2c-s3c2410: Fixup style problems from checkpatch.pl\n  i2c-omap: Enable I2C wakeups for 34xx\n  i2c-omap: reprogram OCP_SYSCONFIG register after reset\n  i2c-omap: convert \u0027rev1\u0027 flag to generic \u0027rev\u0027 u8\n  i2c-omap: fix I2C timeouts due to recursive omap_i2c_{un,}idle()\n  i2c-omap: Clean-up i2c-omap\n  i2c-omap: Don\u0027t compile in OMAP15xx I2C ISR for non-OMAP15xx builds\n  i2c-omap: Mark init-only functions as __init\n  i2c-omap: Add support for omap34xx\n  i2c-omap: FIFO handling support and broken hw workaround for i2c-omap\n  i2c-omap: Add high-speed support to omap-i2c\n  i2c-omap: Close suspected race between omap_i2c_idle() and omap_i2c_isr()\n  i2c-omap: Do not use interruptible wait call in omap_i2c_xfer_msg\n\nFix up apparently-trivial conflict in drivers/i2c/busses/i2c-s3c2410.c\n"
    },
    {
      "commit": "8606ab6d30dbaaafff985bd462bf33c36997eae9",
      "tree": "4a31a004438370e5e51f5f042badfac850ec9ac8",
      "parents": [
        "c54febae996d36c630f09209cd9983ecfda3fcad",
        "ed42350e02bfcb333024949e9653d06916135cc5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:53:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:53:34 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (22 commits)\n  HID: fix error condition propagation in hid-sony driver\n  HID: fix reference count leak hidraw\n  HID: add proper support for pensketch 12x9 tablet\n  HID: don\u0027t allow DealExtreme usb-radio be handled by usb hid driver\n  HID: fix default Kconfig setting for TopSpeed driver\n  HID: driver for TopSeed Cyberlink quirky remote\n  HID: make boot protocol drivers depend on EMBEDDED\n  HID: avoid sparse warning in HID_COMPAT_LOAD_DRIVER\n  HID: hiddev cleanup -- handle all error conditions properly\n  HID: force feedback driver for GreenAsia 0x12 PID\n  HID: switch specialized drivers from \"default y\" to !EMBEDDED\n  HID: set proper dev.parent in hidraw\n  HID: add dynids facility\n  HID: use GFP_KERNEL in hid_alloc_buffers\n  HID: usbhid, use usb_endpoint_xfer_int\n  HID: move usbhid flags to usbhid.h\n  HID: add n-trig digitizer support\n  HID: add phys and name ioctls to hidraw\n  HID: struct device - replace bus_id with dev_name(), dev_set_name()\n  HID: automatically call usbhid_set_leds in usbhid driver\n  ...\n"
    }
  ],
  "next": "c54febae996d36c630f09209cd9983ecfda3fcad"
}
