)]}'
{
  "commit": "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8",
  "tree": "ba8a8200bda4576e1e4dcce2ff27a7a7a94723a2",
  "parents": [
    "de7d4f0e1172a72277d660fa0be59654ea02bed0"
  ],
  "author": {
    "name": "Kristian Hoegsberg",
    "email": "krh@redhat.com",
    "time": "Sun Jul 15 23:37:24 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Mon Jul 16 09:05:34 2007 -0700"
  },
  "message": "lib: add idr_for_each()\n\nThis patch adds an iterator function for the idr data structure.  Compared\nto just iterating through the idr with an integer and idr_find, this\niterator is (almost, but not quite) linear in the number of elements, as\nopposed to the number of integers in the range covered by the idr.  This\nmakes a difference for sparse idrs, but more importantly, it\u0027s a nicer way\nto iterate through the elements.\n\nThe drm subsystem is moving to idr for tracking contexts and drawables, and\nwith this change, we can use the idr exclusively for tracking these\nresources.\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\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": "915572fa030b678835732a166b0f7b86e4dc1fb6",
      "old_mode": 33188,
      "old_path": "include/linux/idr.h",
      "new_id": "8442c0bffc06cac5a847f28acf826e8b4a7c4779",
      "new_mode": 33188,
      "new_path": "include/linux/idr.h"
    },
    {
      "type": "modify",
      "old_id": "b98f01a2eb946b221f5d7d7d193422f95e607a3a",
      "old_mode": 33188,
      "old_path": "lib/idr.c",
      "new_id": "d29da6159dae0637f5da6042c369ec609207b7de",
      "new_mode": 33188,
      "new_path": "lib/idr.c"
    }
  ]
}
