)]}'
{
  "log": [
    {
      "commit": "c475a8ab625d567eacf5e30ec35d6d8704558062",
      "tree": "0971bef7b876f1b3eb160621fc2b61cb5313827b",
      "parents": [
        "d296e9cd02c92e576ecce5344026a4df4353cdb2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jun 21 17:15:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:21 2005 -0700"
      },
      "message": "[PATCH] can_share_swap_page: use page_mapcount\n\nRemember that ironic get_user_pages race?  when the raised page_count on a\npage swapped out led do_wp_page to decide that it had to copy on write, so\nsubstituted a different page into userspace.  2.6.7 onwards have Andrea\u0027s\nsolution, where try_to_unmap_one backs out if it finds page_count raised.\n\nWhich works, but is unsatisfying (rmap.c has no other page_count heuristics),\nand was found a few months ago to hang an intensive page migration test.  A\nyear ago I was hesitant to engage page_mapcount, now it seems the right fix.\n\nSo remove the page_count hack from try_to_unmap_one; and use activate_page in\nunuse_mm when dropping lock, to replace its secondary effect of helping\nswapoff to make progress in that case.\n\nSimplify can_share_swap_page (now called only on anonymous pages) to check\npage_mapcount + page_swapcount \u003d\u003d 1: still needs the page lock to stabilize\ntheir (pessimistic) sum, but does not need swapper_space.tree_lock for that.\n\nIn do_swap_page, move swap_free and unlock_page below page_add_anon_rmap, to\nkeep sum on the high side, and correct when can_share_swap_page called.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba32311eb73f624a85a5fc2e043cda8e076f86ef",
      "tree": "1baa53ef8f4b708ec1807ca3a267c713d00da266",
      "parents": [
        "59afda786a58f2e8f74a48f2af90534d76d5338d"
      ],
      "author": {
        "name": "McMullan, Jason",
        "email": "jason.mcmullan@timesys.com",
        "time": "Mon May 16 21:53:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 17 07:59:18 2005 -0700"
      },
      "message": "[PATCH] swapout oops fix\n\nFix OOPS when swapping on a device that doesn\u0027t have an unplug_io_fn defined\n(eg, ATA Over Ethernet)\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
