)]}'
{
  "commit": "a0b6c9a78c41dc36732d6e1e90f0f2f57b29816f",
  "tree": "4e68c76c95a74e1c8f3360c10e2c3496b7a7df0d",
  "parents": [
    "3d76c082907e8f83c5d5c4572f38d53ad8f00c4b"
  ],
  "author": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Mon Sep 28 07:46:33 2009 -0700"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Oct 05 21:02:04 2009 +0200"
  },
  "message": "rcu: Clean up code based on review feedback from Josh Triplett, part 4\n\nThese issues identified during an old-fashioned face-to-face code\nreview extending over many hours.  This group improves an existing\nabstraction and introduces two new ones.  It also fixes an RCU\nstall-warning bug found while making the other changes.\n\no\tMake RCU_INIT_FLAVOR() declare its own variables, removing\n\tthe need to declare them at each call site.\n\no\tCreate an rcu_for_each_leaf() macro that scans the leaf\n\tnodes of the rcu_node tree.\n\no\tCreate an rcu_for_each_node_breadth_first() macro that does\n\ta breadth-first traversal of the rcu_node tree, AKA\n\tstepping through the array in index-number order.\n\no\tIf all CPUs corresponding to a given leaf rcu_node\n\tstructure go offline, then any tasks queued on that leaf\n\twill be moved to the root rcu_node structure.  Therefore,\n\tthe stall-warning code must dump out tasks queued on the\n\troot rcu_node structure as well as those queued on the leaf\n\trcu_node structures.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c12541491934126-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d5597830faf5a24e75ce1c1d27fa1fe123e7b646",
      "old_mode": 33188,
      "old_path": "kernel/rcutree.c",
      "new_id": "e2e272b5c2779b7e9de1dba43ac67253a193ca95",
      "new_mode": 33188,
      "new_path": "kernel/rcutree.c"
    },
    {
      "type": "modify",
      "old_id": "e6ab31cc28ba07c7b7ed25e16f880b5846380d64",
      "old_mode": 33188,
      "old_path": "kernel/rcutree.h",
      "new_id": "676eecd371d947fbc0881a6f6f7e4c2f794487ea",
      "new_mode": 33188,
      "new_path": "kernel/rcutree.h"
    },
    {
      "type": "modify",
      "old_id": "65250219ab6dfed051675f724fa92ecfd401304d",
      "old_mode": 33188,
      "old_path": "kernel/rcutree_plugin.h",
      "new_id": "57200fe96d0aa6509a0fcf0144a3b13c3ae1660d",
      "new_mode": 33188,
      "new_path": "kernel/rcutree_plugin.h"
    }
  ]
}
