)]}'
{
  "log": [
    {
      "commit": "dd00cc486ab1c17049a535413d1751ef3482141c",
      "tree": "d90ff69ea06792b9284f2f2665c96624f121b88a",
      "parents": [
        "3b5ad0797c0e4049001f961a8b58f1d0ce532072"
      ],
      "author": {
        "name": "Yoann Padioleau",
        "email": "padator@wanadoo.fr",
        "time": "Thu Jul 19 01:49:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:50 2007 -0700"
      },
      "message": "some kmalloc/memset -\u003ekzalloc (tree wide)\n\nTransform some calls to kmalloc/memset to a single kzalloc (or kcalloc).\n\nHere is a short excerpt of the semantic patch performing\nthis transformation:\n\n@@\ntype T2;\nexpression x;\nidentifier f,fld;\nexpression E;\nexpression E1,E2;\nexpression e1,e2,e3,y;\nstatement S;\n@@\n\n x \u003d\n- kmalloc\n+ kzalloc\n  (E1,E2)\n  ...  when !\u003d \\(x-\u003efld\u003dE;\\|y\u003df(...,x,...);\\|f(...,x,...);\\|x\u003dE;\\|while(...) S\\|for(e1;e2;e3) S\\)\n- memset((T2)x,0,E1);\n\n@@\nexpression E1,E2,E3;\n@@\n\n- kzalloc(E1 * E2,E3)\n+ kcalloc(E1,E2,E3)\n\n[akpm@linux-foundation.org: get kcalloc args the right way around]\nSigned-off-by: Yoann Padioleau \u003cpadator@wanadoo.fr\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nAcked-by: Pierre Ossman \u003cdrzeus-list@drzeus.cx\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc1ff9588a6d56258ff9576a31aa34f17757c666",
      "tree": "071fe0a07269c656448dc5dbe453eaa8e6f1a24a",
      "parents": [
        "f44db678edcc6f4c2779ac43f63f0b9dfa28b724"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:29:15 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: handle log failure\n\nWhen writing to a mirror, the log must be updated first.  Failure\nto update the log could result in the log not properly reflecting\nthe state of the mirror if the machine should crash.\n\nWe change the return type of the rh_flush function to give us\nthe ability to check if a log write was successful.  If the\nlog write was unsuccessful, we fail the writes to avoid the\ncase where the log does not properly reflect the state of the\nmirror.\n\nA follow-up patch - which is dependent on the ability to\nrequeue I/O\u0027s to core device-mapper - will requeue the I/O\u0027s\nfor retry (allowing the mirror to be reconfigured.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f44db678edcc6f4c2779ac43f63f0b9dfa28b724",
      "tree": "bbd835d00ca6ed0805c5c7331ebc5dd7978d299c",
      "parents": [
        "d0d444c7d48c14d59f665887c758fde248f1cb37"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:29:04 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: handle resync failures\n\nDevice-mapper mirroring currently takes a best effort approach to\nrecovery - failures during mirror synchronization are completely ignored.\nThis means that regions are marked \u0027in-sync\u0027 and \u0027clean\u0027 and removed\nfrom the hash list.  Future reads and writes that query the region\nwill incorrectly interpret the region as in-sync.\n\nThis patch handles failures during the recovery process.  If a failure\noccurs, the region is marked as \u0027not-in-sync\u0027 (aka RH_NOSYNC) and added\nto a new list \u0027failed_recovered_regions\u0027.\n\nRegions on the \u0027failed_recovered_regions\u0027 list are not marked as \u0027clean\u0027\nupon removal from the list.  Furthermore, if the DM_RAID1_HANDLE_ERRORS\nflag is set, the region is marked as \u0027not-in-sync\u0027.  This action prevents\nany future read-balancing from choosing an invalid device because of the\n\u0027not-in-sync\u0027 status.\n\nIf \"handle_errors\" is not specified when creating a mirror (leaving the\nDM_RAID1_HANDLE_ERRORS flag unset), failures will be ignored exactly as they\nwould be without this patch.  This is to preserve backwards compatibility with\nuser-space tools, such as \u0027pvmove\u0027.  However, since future read-balancing\npolicies will rely on the correct sync status of a region, a user must choose\n\"handle_errors\" when using read-balancing.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "943317efdbc295e8a28df3f5cbd549d066ee8b4a",
      "tree": "63eea4f14c4b3913b6755d802afb7631007a9e0e",
      "parents": [
        "0764147b111b8ca886e4f2e9c9e019106b09b657"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:28:25 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: clear region outside spinlock\n\nA clear_region function is permitted to block (in practice, rare) but gets\ncalled in rh_update_states() with a spinlock held.\n\nThe bits being marked and cleared by the above functions are used\nto update the on-disk log, but are never read directly.  We can\nperform these operations outside the spinlock since the\nbits are only changed within one thread viz.\n   - mark_region in rh_inc()\n   - clear_region in rh_update_states().\n\nSo, we grab the clean_regions list items via list_splice() within the\nspinlock and defer clear_region() until we iterate over the list for\ndeletion - similar to how the recovered_regions list is already handled.\nWe then move the flush() call down to ensure it encapsulates the changes\nwhich are done by the later calls to clear_region().\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c95bc206da4bc9838bad826883f8f461a972e441",
      "tree": "6a5667088ae684000b48946e61ccd17e09c4c04f",
      "parents": [
        "0cd3312434cd1f29bee6bff53bf2790d733ad2a2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jul 12 17:27:24 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: fix status\n\nFix mirror status line broken in dm-log-report-fault-status.patch:\n  - space missing between two words\n  - placeholder (\"0\") required for compatibility with a subsequent patch\n  - incorrect offset parameter\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cd3312434cd1f29bee6bff53bf2790d733ad2a2",
      "tree": "fc833f871f1b4d320ee5ab365a3efb3e03b278db",
      "parents": [
        "ac818646d4be79123ad8dc5f1c4da8575d4960f8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:27:01 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: remove duplicate module name from error msgs\n\nRemove explicit module name from messages as the macro now includes it\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b997b82d266c9fb910fc2ad95b9bb93b3bccf9be",
      "tree": "e6f9b05361b4d15d6ce3ac21f11e69f7809d1780",
      "parents": [
        "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: switch rh_in_sync to blocking in do_reads\n\nThe call to rh_in_sync() in do_reads() should be allowed to block.  It is in\nthe mirror worker thread which already permits blocking operations.  This will\nbe needed to support clustered mirroring which will perform network\noperations.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105",
      "tree": "25c3f22f87d2d6aff90768764a6aa7d7d1c45936",
      "parents": [
        "26b9f228703f0518a90e7513d6fe7b6abeed5138"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: fix to commit pending clear region requests\n\nWith the code as it is, it is possible for oustanding clear region requests\nnever to get flushed when a mirror is deactivated or suspended.  This means\nthere will always be some resync work required when a mirror is activated,\neven though it may very well be in-sync.\n\nAlways requesting the flush doesn\u0027t hurt us.  This is because the log tracks\nwhether any changes occurred and, if not, no flush is performed.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88be163abb5324bab09f5eff9646590eec5314eb",
      "tree": "0db6fc18ae4b534d78da1e9756fa13405cc96dbd",
      "parents": [
        "5d234d1e03d0a4cef4da32177be6657b45cc513f"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: update dm io interface\n\nThis patch ports dm-raid1.c to the new dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4",
      "tree": "f0559bd5e25dbafaee331815c75774fa0834252b",
      "parents": [
        "315dcc226f066c1d3cef79283dcde807fe0e32d1"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: add handle_errors feature flag\n\nThis patch adds the ability to specify desired features in the mirror\nconstructor/mapping table.\n\nThe first feature of interest is \"handle_errors\".  Currently, mirroring will\nignore any I/O errors from the devices.  Subsequent patches will check for\nthis flag and handle the errors.  If flag/feature is not present, mirror will\ndo nothing - maintaining backwards compatibility.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315dcc226f066c1d3cef79283dcde807fe0e32d1",
      "tree": "f3abf75905aec13819292564ef4c2711c8bf4b8d",
      "parents": [
        "01d03a660e73fb524957c09825a3eb7c2ae7c205"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: report fault status\n\nThis patch reports the status of the log device so that userspace can detect\nthe error and take appropriate action.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ad36fe2b451cc85cc7b14f4128286759e217124",
      "tree": "05e6111d39c969ee729309d6bded6bcfe08aa44e",
      "parents": [
        "8defab33774a5c33920196a2ee9c0a946d22ba67"
      ],
      "author": {
        "name": "Holger Smolinski",
        "email": "smolinski@de.ibm.com",
        "time": "Wed May 09 02:32:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm raid1: one kmirrord per mirror\n\nThis patch replaces the single instance of kmirrord by one instance per mirror\nset.  This change is required to avoid a deadlock in kmirrord when the\npersistent dirty log of a mirror itself resides on a mirror.  The single\ninstance of kmirrord then issues a sync write to the dirty log in write_bits\nwhich gets deferred to kmirrord itself later in the call chain.  But kmirrord\nnever does the deferred work because it is still waiting for the sync\nwrite_bits.\n\n_mirror_sets is removed as it no longer needed, and we always flush the\nworkqueue before destroying it to ensure all work is complete before\ndestroying it.\n\nSigned-off-by: Holger Smolinski \u003csmolinski@de.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3ee6b2f621fec7bc8bfe43fb465e938c37c8d20",
      "tree": "3d790014bbd3280fc7b0232dc212f4b34f06092f",
      "parents": [
        "31c93a0c29bf96efd806ccf4ee81cacf04f255de"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Dec 08 02:41:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: log: rename complete_resync_work\n\nThe complete_resync_work function only provides the ability to change an\nout-of-sync region to in-sync.  This patch enhances the function to allow us\nto change the status from in-sync to out-of-sync as well, something that is\nneeded when a mirror write to one of the devices or an initial resync on a\ngiven region fails.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d2a7ad29a810441e9dacbaddcc2f0c6045390008",
      "tree": "36bea90fa2f286f525a3b4f05adf40ec4d28221c",
      "parents": [
        "45cbcd798354251b99694086af9d57c99e89bb43"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Dec 08 02:41:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: map and endio symbolic return codes\n\nUpdate existing targets to use the new symbols for return values from target\nmap and end_io functions.\n\nThere is no effect on behaviour.\n\nTest results:\nDone build test without errors.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "33184048dc4f9d5550d3b6a88c8e0ff92033eb6e",
      "tree": "e48a69f43b6efd99c6bd82ee768e5bff2358dbcd",
      "parents": [
        "5d55fdf94998db1df9ee7f1def8806bfd0e5ff73"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Nov 08 17:44:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 08 18:29:23 2006 -0800"
      },
      "message": "[PATCH] dm: raid1: fix waiting for io on suspend\n\nAll device-mapper targets must complete outstanding I/O before suspending.\nThe mirror target generates I/O in its recovery phase and fails to wait for\nit.  It needs to be tracked so we can ensure that it has completed before we\nsuspend.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cdm-devel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e52b8f6dbe18c879ad2b5013f991ec9e46813043",
      "tree": "56fe2bf95b2ca00a66e639a5d060067f09c07e65",
      "parents": [
        "695368ac3302174531429a90d55c3f7f9b83906e"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Oct 03 01:15:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:15 2006 -0700"
      },
      "message": "[PATCH] dm mirror: remove trailing space from table\n\nRemove trailing space from \u0027dmsetup table\u0027 output.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c06aad854fdb9da38fcc22dccfe9d72919453e43",
      "tree": "a27fc99fe974cc5df08393c5b16b4499b07aa3e5",
      "parents": [
        "9a654518e1b774b8e8f74a819fd12a931e7672c9"
      ],
      "author": {
        "name": "Daniel Kobras",
        "email": "kobras@linux.de",
        "time": "Sun Aug 27 01:23:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:28 2006 -0700"
      },
      "message": "[PATCH] dm: Fix deadlock under high i/o load in raid1 setup.\n\nOn an nForce4-equipped machine with two SATA disk in raid1 setup using dmraid,\nwe experienced frequent deadlock of the system under high i/o load.  \u0027cat\n/dev/zero \u003e ~/zero\u0027 was the most reliable way to reproduce them: Randomly\nafter a few GB, \u0027cp\u0027 would be left in \u0027D\u0027 state along with kjournald and\nkmirrord.  The functions cp and kjournald were blocked in did vary, but\nkmirrord\u0027s wchan always pointed to \u0027mempool_alloc()\u0027.  We\u0027ve seen this pattern\non 2.6.15 and 2.6.17 kernels.  http://lkml.org/lkml/2005/4/20/142 indicates\nthat this problem has been around even before.\n\nSo much for the facts, here\u0027s my interpretation: mempool_alloc() first tries\nto atomically allocate the requested memory, or falls back to hand out\npreallocated chunks from the mempool.  If both fail, it puts the calling\nprocess (kmirrord in this case) on a private waitqueue until somebody refills\nthe pool.  Where the only \u0027somebody\u0027 is kmirrord itself, so we have a\ndeadlock.\n\nI worked around this problem by falling back to a (blocking) kmalloc when\nbefore kmirrord would have ended up on the waitqueue.  This defeats part of\nthe benefits of using the mempool, but at least keeps the system running.  And\nit could be done with a two-line change.  Note that mempool_alloc() clears the\nGFP_NOIO flag internally, and only uses it to decide whether to wait or return\nan error if immediate allocation fails, so the attached patch doesn\u0027t change\nbehaviour in the non-deadlocking case.  Path is against current git\n(2.6.18-rc4), but should apply to earlier versions as well.  I\u0027ve tested on\n2.6.15, where this patch makes the difference between random lockup and a\nstable system.\n\nSigned-off-by: Daniel Kobras \u003ckobras@linux.de\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72d9486169a2a8353e022813185ba2f32d7dde69",
      "tree": "2fe6c382feb3f21d829abf543c54be486007557c",
      "parents": [
        "5c6bd75d06db512515a3781aa97e42df2faf0815"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 26 00:27:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:36 2006 -0700"
      },
      "message": "[PATCH] dm: improve error message consistency\n\nTidy device-mapper error messages to include context information\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce503f59ae899c3e75a8a1cf46f2d44c0c5b5c7c",
      "tree": "7bec805d077c3a7f47f7a1965a1a8020082c5544",
      "parents": [
        "8a835f11bce68ed990533e49b5dedb00bee46d71"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Jun 26 00:27:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:35 2006 -0700"
      },
      "message": "[PATCH] dm kcopyd: error accumulation fix\n\nkcopyd should accumulate errors - otherwise I/O failures may be ignored\nunintentionally.\n\nAnd invert \u0027success\u0027 (used in a future patch), using a more intuitive\n!(read_err || write_err).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "702ca6f0be9ef95087ee2c9f31e6517492554483",
      "tree": "e59b9a1e71e68a9f0230d12a10931b60da1ac9c4",
      "parents": [
        "143535396c7ebd9395a931a000b3963f457712b8"
      ],
      "author": {
        "name": "Kevin Corry",
        "email": "kevcorry@us.ibm.com",
        "time": "Mon Jun 26 00:27:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:35 2006 -0700"
      },
      "message": "[PATCH] dm mirror log: sector size fix\n\nOn-disk logs for dm-mirror devices are currently hard-coded to use 512 byte\nhard-sector-sizes.  This patch fixes dm-log so it will work with devices with\nnon-512-byte hard-sector-sizes.\n\nTo maintain full compatibility, instead of moving the clean-bits bitset to a\nbitset, and enlarges the disk-header buffer to encompass both the header and\nthe bitset.  The I/O routines for the bitset are removed, and the I/O routines\nfor the disk-header now also read/write the bitset.\n\nSigned-off-by: Kevin Corry \u003ckevcorry@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4c8b3ba34cc1aeab451c7a5cc843c5fd62cbe3d",
      "tree": "2b211393b1ffacd05a7fbae994012b7000e2c233",
      "parents": [
        "f0b04115368ff383654a3bd26baf8f4be5e81132"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:35 2006 -0700"
      },
      "message": "[PATCH] dm: mirror sector offset fix\n\nThe device-mapper core does not perform any remapping of bios before passing\nthem to the targets.  If a particular mapping begins part-way into a device,\ntargets obtain the sector relative to the start of the mapping by subtracting\nti-\u003ebegin.\n\nThe dm-raid1 target didn\u0027t do this everywhere: this patch fixes it, taking\ncare to subtract ti-\u003ebegin exactly once for each bio.\n\n[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "179e09172ab663b8587ecc46bb18a56a770304a9",
      "tree": "4d57324584c43f81ac2a6d258bb46e75fb6b4327",
      "parents": [
        "a842ef297fd91b1b93f2aa5898d2efd19e95f6a5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Jun 26 00:24:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:18 2006 -0700"
      },
      "message": "[PATCH] drivers: use list_move()\n\nThis patch converts the combination of list_del(A) and list_add(A, B) to\nlist_move(A, B) under drivers/.\n\nAcked-by: Corey Minyard \u003cminyard@mvista.com\u003e\nCc: Ben Collins \u003cbcollins@debian.org\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Alasdair Kergon \u003cdm-devel@redhat.com\u003e\nCc: Gerd Knorr \u003ckraxel@bytesex.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Andrew Vasquez \u003clinux-driver@qlogic.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ee218cd67b385759993a6c840ea45f0ee0a8b30",
      "tree": "788d33b31e9d008eeb2de2a7f874e45b09695719",
      "parents": [
        "930d332a23682202c07df0276dd665a57755b37d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Mar 27 01:17:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:58 2006 -0800"
      },
      "message": "[PATCH] dm: remove SECTOR_FORMAT\n\nWe don\u0027t know what type sector_t has.  Sometimes it\u0027s unsigned long, sometimes\nit\u0027s unsigned long long.  For example on ppc64 it\u0027s unsigned long with\nCONFIG_LBD\u003dn and on x86_64 it\u0027s unsigned long long with CONFIG_LBD\u003dn.\n\nThe way to handle all of this is to always use unsigned long long and to\nalways typecast the sector_t when printing it.\n\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "930d332a23682202c07df0276dd665a57755b37d",
      "tree": "0a0202fb581a65a0b63a4a98aa725eb2088a7814",
      "parents": [
        "76df1c651b66bdf07d60b3d60789feb5f58d73e3"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 27 01:17:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:58 2006 -0800"
      },
      "message": "[PATCH] drivers/md/dm-raid1.c: Fix inconsistent mirroring after interrupted recovery\n\ndm-mirror has potential data corruption problem: while on-disk log shows\nthat all disk contents are in-sync, actual contents of the disks are not\nsynchronized.  This problem occurs if initial recovery (synching) is\ninterrupted and resumed.\n\nAttached patch fixes this problem.\n\nBackground:\n\nrh_dec() changes the region state from RH_NOSYNC (out-of-sync) to RH_CLEAN\n(in-sync), which results in the corresponding bit of clean_bits being set.\n\nThis is harmful if on-disk log is used and the map is removed/suspended\nbefore the initial sync is completed.  The clean_bits is written down to\nthe on-disk log at the map removal, and, upon resume, it\u0027s read and copied\nto sync_bits.  Since the recovery process refers to the sync_bits to find a\nregion to be recovered, the region whose state was changed from RH_NOSYNC\nto RH_CLEAN is no longer recovered.\n\nIf you haven\u0027t applied dm-raid1-read-balancing.patch proposed in dm-devel\nsometimes ago, the contents of the mirrored disk just corrupt silently.  If\nyou have, balanced read may get bogus data from out-of-sync disks.\n\nThe patch keeps RH_NOSYNC state unchanged.  It will be changed to\nRH_RECOVERING when recovery starts and get reclaimed when the recovery\ncompletes.  So it doesn\u0027t leak the region hash entry.\n\nDescription:\n\nKeep RH_NOSYNC state unchanged when I/O on the region completes.\n\nrh_dec() changes the region state from RH_NOSYNC (out-of-sync) to RH_CLEAN\n(in-sync), which results in the corresponding bit of clean_bits being set.\n\nThis is harmful if on-disk log is used and the map is removed/suspended\nbefore the initial sync is completed.  The clean_bits is written down to\nthe on-disk log at the map removal, and, upon resume, it\u0027s read and copied\nto sync_bits.  Since the recovery process refers to the sync_bits to find a\nregion to be recovered, the region whose state was changed from RH_NOSYNC\nto RH_CLEAN is no longer recovered.\n\nIf you haven\u0027t applied dm-raid1-read-balancing.patch proposed in dm-devel\nsometimes ago, the contents of the mirrored disk just corrupt silently.  If\nyou have, balanced read may get bogus data from out-of-sync disks.\n\nThe RH_NOSYNC region will be changed to RH_RECOVERING when recovery starts\non the region and get reclaimed when the recovery completes.  So it doesn\u0027t\nleak the region hash entry.\n\nAlasdair said:\n\n  I\u0027ve analysed the relevant part of the state machine and I believe that\n  the patch is correct.\n\n  (Further work on this code is still needed - this patch has the\n  side-effect of holding onto memory unnecessarily for long periods of time\n  under certain workloads - but better that than corrupting data.)\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eaae62abaa1ad1f231932b6cdd9fb1b91df6651",
      "tree": "cda02cffff075a8b542ddcea4fa0ff0064130502",
      "parents": [
        "53184082b070dfb077218828fdf839826102ed96"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Sun Mar 26 01:37:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:59 2006 -0800"
      },
      "message": "[PATCH] mempool: use common mempool kmalloc allocator\n\nThis patch changes several mempool users, all of which are basically just\nwrappers around kmalloc(), to use the common mempool_kmalloc/kfree, rather\nthan their own wrapper function, removing a bunch of duplicated code.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1a190807074bd6ad8771e00b00752771ae586cb",
      "tree": "ea9df244d215722e422f7bd7560dd9fe59789f44",
      "parents": [
        "2d5fe68987341a59a3fd97c71695efcabb0c6fd5"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 06 00:20:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:00 2006 -0800"
      },
      "message": "[PATCH] device-mapper raid1: add default mirror\n\nThis patch introduces a new field to the mirror_set (default_mirror) to store\nthe default mirror.\n\n(A subsequent patch will allow us to change the default mirror in the event of\na failure.)\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7692c5dd48026d952199c2b97c3418f927cc0407",
      "tree": "f198721b3b65a782ae0ed7400120cc45e0ce87c1",
      "parents": [
        "233886dd32ad71daf9c21bf3728c0933a94870f0"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Nov 21 21:32:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:14:31 2005 -0800"
      },
      "message": "[PATCH] device-mapper raid1: drop mark_region spinlock fix\n\nThe spinlock region_lock is held while calling mark_region which can sleep.\nDrop the spinlock before calling that function.\n\nA region\u0027s state and inclusion in the clean list are altered by rh_inc and\nrh_dec.  The state variable is set to RH_CLEAN in rh_dec, but only if\n\u0027pending\u0027 is zero.  It is set to RH_DIRTY in rh_inc, but not if it is already\nso.  The changes to \u0027pending\u0027, the state, and the region\u0027s inclusion in the\nclean list need to be atomicly.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "844e8d904a7c1446e3f040683b4a0645c3eb168f",
      "tree": "5e277539dab95d6325cec564a91e0e70acdce021",
      "parents": [
        "e5dcdd80a60627371f40797426273048630dc8ca"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Fri Sep 09 16:23:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:09 2005 -0700"
      },
      "message": "[PATCH] dm: fix rh_dec()/rh_inc() race in dm-raid1.c\n\nFix another bug in dm-raid1.c that the dirty region may stay in or be moved\nto clean list and freed while in use.\n\nIt happens as follows:\n\n   CPU0                                   CPU1\n   ------------------------------------------------------------------------------\n   rh_dec()\n     if (atomic_dec_and_test(pending))\n        \u003cthe region is still marked dirty\u003e\n                                          rh_inc()\n                                            if the region is clean\n                                               mark the region dirty\n                                               and remove from clean list\n        mark the region clean\n        and move to clean list\n                                                  atomic_inc(pending)\n\nAt this stage, the region is in clean list and will be mistakenly reclaimed\nby rh_update_states() later.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48f1f5328267f52a34e61b8b0e6fc55a23c1348a",
      "tree": "aba1dd52b8b0825cfb88f3ec2fd0b10efb07db01",
      "parents": [
        "d27a4dddd96f4ee898f8d1d597d38f8f4079bbb0"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Aug 04 12:53:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 04 13:00:55 2005 -0700"
      },
      "message": "[PATCH] dm-raid locking fix\n\nThis code was never designed to handle more than one instance of do_work()\nrunning at once.\n\nSigned-Off-By: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d88854f08961d26f3a63cfae7972188d26a128e4",
      "tree": "60a7319d8c79898325baaab17b655acaf2ec8040",
      "parents": [
        "374a6cf281771b23e263efd31fdc896924394dba"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 07 17:59:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:11 2005 -0700"
      },
      "message": "[PATCH] device-mapper: dm-raid1: Limit bios to size of mirror region\n\nSet the target\u0027s split_io field when building a dm-mirror device so\nincoming bios won\u0027t span the mirror\u0027s internal regions.  Without this,\nregions can be accessed while not holding correct locks and data corruption\nis possible.\n\nReported-By: \"Zhao Qian\" \u003czhaoqian@aaastor.com\u003e\nFrom: Kevin Corry \u003ckevcorry@us.ibm.com\u003e\nSigned-Off-By: Alasdair G Kergon \u003cagk@redhat.com\u003e\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"
    }
  ]
}
