)]}'
{
  "commit": "7b6ba2c7d3baf8cd9f888e05563dcc32e368baab",
  "tree": "89e62613a37d803e4a83b96559acca29526f9638",
  "parents": [
    "6514d511dbe5a77b4bdc0a7e26fd679585112e1e"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hugh.dickins@tiscali.co.uk",
    "time": "Mon Dec 14 17:59:20 2009 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Dec 15 08:53:19 2009 -0800"
  },
  "message": "ksm: separate stable_node\n\nThough we still do well to keep rmap_items in the unstable tree without a\nseparate tree_item at the node, for several reasons it becomes awkward to\nkeep rmap_items in the stable tree without a separate stable_node: lack of\nspace in the nicely-sized rmap_item, the need for an anchor as rmap_items\nare removed, the need for a node even when temporarily no rmap_items are\nattached to it.\n\nSo declare struct stable_node (rb_node to place it in the tree and\nhlist_head for the rmap_items hanging off it), and convert stable tree\nhandling to use it: without yet taking advantage of it.  Note how one\nstable_tree_insert() of a node now has _two_ stable_tree_append()s of the\ntwo rmap_items being merged.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e8e9a2bca809d23d6ff11abf2e03ffc925ce51c5",
      "old_mode": 33188,
      "old_path": "mm/ksm.c",
      "new_id": "9b7af2eb4280c42df709c73c251b5f549b92aa62",
      "new_mode": 33188,
      "new_path": "mm/ksm.c"
    }
  ]
}
