)]}'
{
  "commit": "a4ffc0a0b240a29cbe489f6db9dae112a49ef1c1",
  "tree": "9719c706444f4b720aff2bb4bdf23a4be3f4b1e3",
  "parents": [
    "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
    "af195ac82e38ba802fd86b5a014ed05ef6dd88bb"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Thu Feb 07 19:30:50 2008 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Thu Feb 07 19:30:50 2008 -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: (44 commits)\n  dm raid1: report fault status\n  dm raid1: handle read failures\n  dm raid1: fix EIO after log failure\n  dm raid1: handle recovery failures\n  dm raid1: handle write failures\n  dm snapshot: combine consecutive exceptions in memory\n  dm: stripe enhanced status return\n  dm: stripe trigger event on failure\n  dm log: auto load modules\n  dm: move deferred bio flushing to workqueue\n  dm crypt: use async crypto\n  dm crypt: prepare async callback fn\n  dm crypt: add completion for async\n  dm crypt: add async request mempool\n  dm crypt: extract scatterlist processing\n  dm crypt: tidy io ref counting\n  dm crypt: introduce crypt_write_io_loop\n  dm crypt: abstract crypt_write_done\n  dm crypt: store sector mapping in dm_crypt_io\n  dm crypt: move queue functions\n  ...\n",
  "tree_diff": []
}
