)]}'
{
  "log": [
    {
      "commit": "a5e0d73163a848060ac0c2c054274e84a654986e",
      "tree": "708ab200af3653090d3cad95228fae21aa6c52cd",
      "parents": [
        "6dbe51c251a327e012439c4772097a13df43c5b8",
        "f3378b48705154b9089affb2d2e939622aea68f1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 05 17:22:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 05 17:22:08 2013 -0800"
      },
      "message": "Merge tag \u0027md-3.9\u0027 of git://neil.brown.name/md\n\nPull md updates from NeilBrown:\n \"Mostly little bugfixes.\n\n  Only \"feature\" is a new RAID10 layout which slightly improves the\n  number of sets of devices that can concurrently fail, without data\n  loss.\"\n\n* tag \u0027md-3.9\u0027 of git://neil.brown.name/md:\n  md: expedite metadata update when switching  read-auto -\u003e active\n  md: remove CONFIG_MULTICORE_RAID456\n  md/raid1,raid10: fix deadlock with freeze_array()\n  md/raid0: improve error message when converting RAID4-with-spares to RAID0\n  md: raid0: fix error return from create_stripe_zones.\n  md: fix two bugs when attempting to resize RAID0 array.\n  DM RAID: Add support for MD\u0027s RAID10 \"far\" and \"offset\" algorithms\n  MD RAID10: Improve redundancy for \u0027far\u0027 and \u0027offset\u0027 algorithms (part 2)\n  MD RAID10: Improve redundancy for \u0027far\u0027 and \u0027offset\u0027 algorithms (part 1)\n  MD RAID10: Minor non-functional code changes\n  md: raid1,10: Handle REQ_WRITE_SAME flag in write bios\n  md: protect against crash upon fsync on ro array\n"
    },
    {
      "commit": "8735a8134786fa4ef36dee65d7fa779b99ba5fe3",
      "tree": "0049cda7a855a2ba7d3e0c4628d983a8466fafbc",
      "parents": [
        "f283635281132af7bc7b90af3c105b8c0f73b9c7"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "mauelshagen@redhat.com",
        "time": "Fri Mar 01 22:45:52 2013 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Mar 01 22:45:52 2013 +0000"
      },
      "message": "dm cache: add cleaner policy\n\nA simple cache policy that writes back all data to the origin.\n\nThis is used to decommission a dm cache by emptying it.\n\nSigned-off-by: Heinz Mauelshagen \u003cmauelshagen@redhat.com\u003e\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f283635281132af7bc7b90af3c105b8c0f73b9c7",
      "tree": "5ea66de48bc1f93a34b301986fa5455e53ac5a4c",
      "parents": [
        "c6b4fcbad044e6fffcc75bba160e720eb8d67d17"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Mar 01 22:45:51 2013 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Mar 01 22:45:51 2013 +0000"
      },
      "message": "dm cache: add mq policy\n\nA cache policy that uses a multiqueue ordered by recent hit\ncount to select which blocks should be promoted and demoted.\nThis is meant to be a general purpose policy.  It prioritises\nreads over writes.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c6b4fcbad044e6fffcc75bba160e720eb8d67d17",
      "tree": "1fb20e6ca157ebfbf2c97ae022fc6ba3e0550dd6",
      "parents": [
        "7a87edfee75151abb69d47dba2277ff2de0f6071"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Mar 01 22:45:51 2013 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Mar 01 22:45:51 2013 +0000"
      },
      "message": "dm: add cache target\n\nAdd a target that allows a fast device such as an SSD to be used as a\ncache for a slower device such as a disk.\n\nA plug-in architecture was chosen so that the decisions about which data\nto migrate and when are delegated to interchangeable tunable policy\nmodules.  The first general purpose module we have developed, called\n\"mq\" (multiqueue), follows in the next patch.  Other modules are\nunder development.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Heinz Mauelshagen \u003cmauelshagen@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fe5d2f4a15967bbe907e7b3e31e49dae7af7cc6b",
      "tree": "480fe9fd2e9cd0884b375351c4db98a9dfb21aac",
      "parents": [
        "9a3152ab024867100f2f50d124b998d05fb1c3f6"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Feb 21 13:28:10 2013 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 26 11:55:36 2013 +1100"
      },
      "message": "DM RAID: Add support for MD\u0027s RAID10 \"far\" and \"offset\" algorithms\n\nDM RAID:  Add support for MD\u0027s RAID10 \"far\" and \"offset\" algorithms\n\nUntil now, dm-raid.c only supported the \"near\" algorthm of MD\u0027s RAID10\nimplementation.  This patch adds support for the \"far\" and \"offset\"\nalgorithms, but only with the improved redundancy that is brought with\nthe introduction of the \u0027use_far_sets\u0027 bit, which shifts copied stripes\naccording to smaller sets vs the entire array.  That is, the 17th bit\nof the \u0027layout\u0027 variable that defines the RAID10 implementation will\nalways be set.   (More information on how the \u0027layout\u0027 variable selects\nthe RAID10 algorithm can be found in the opening comments of\ndrivers/md/raid10.c.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "55ebbb59c1c6eb1b040f62b8c4ae0b724de6e55a",
      "tree": "93c97e2afe99e3cc329ec5dcd941f968a4729abb",
      "parents": [
        "5f243b9b46a22e5790dbbc36f574c2417af49a41"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 22 21:42:18 2013 -0600"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 24 12:02:36 2013 +1100"
      },
      "message": "DM-RAID: Fix RAID10\u0027s check for sufficient redundancy\n\nBefore attempting to activate a RAID array, it is checked for sufficient\nredundancy.  That is, we make sure that there are not too many failed\ndevices - or devices specified for rebuild - to undermine our ability to\nactivate the array.  The current code performs this check twice - once to\nensure there were not too many devices specified for rebuild by the user\n(\u0027validate_rebuild_devices\u0027) and again after possibly experiencing a failure\nto read the superblock (\u0027analyse_superblocks\u0027).  Neither of these checks are\nsufficient.  The first check is done properly but with insufficient\ninformation about the possible failure state of the devices to make a good\ndetermination if the array can be activated.  The second check is simply\ndone wrong in the case of RAID10 because it doesn\u0027t account for the\nindependence of the stripes (i.e. mirror sets).  The solution is to use the\nproperly written check (\u0027validate_rebuild_devices\u0027), but perform the check\nafter the superblocks have been read and we know which devices have failed.\nThis gives us one check instead of two and performs it in a location where\nit can be done right.\n\nOnly RAID10 was affected and it was affected in the following ways:\n- the code did not properly catch the condition where a user specified\n  a device for rebuild that already had a failed device in the same mirror\n  set.  (This condition would, however, be caught at a deeper level in MD.)\n- the code triggers a false positive and denies activation when devices in\n  independent mirror sets have failed - counting the failures as though they\n  were all in the same set.\n\nThe most likely place this error was introduced (or this patch should have\nbeen included) is in commit 4ec1e369 - first introduced in v3.7-rc1.\nConsequently this fix should also go in v3.7.y, however there is a\nsmall conflict on the .version in raid_target, so I\u0027ll submit a\nseparate patch to -stable.\n\nCc: stable@vger.kernel.org\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4ec1e369af83f7ecdfbd48a905e44fc9910115ba",
      "tree": "5e7287f870140e041190604ede472ae4d7fa2baf",
      "parents": [
        "eb6491236f283eb6ebc5421fcdb14b86701a7e36"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Oct 11 13:40:24 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Oct 11 13:40:24 2012 +1100"
      },
      "message": "DM RAID: Add rebuild capability for RAID10\n\nDM RAID:  Add code to validate replacement slots for RAID10 arrays\n\nRAID10 can handle \u0027copies - 1\u0027 failures for each mirror group.  This code\nensures the user has provided a valid array - one whose devices specified for\nrebuild do not exceed the amount of redundancy available.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fcff06c438b60f415af5983efe92811d6aa02ad1",
      "tree": "704f6598b2de60a86774bc5cf152d4f051bd2dc4",
      "parents": [
        "068535f1fef4c90aee23eb7b9b9a71c5b72d7cd0",
        "63f33b8dda88923487004b20fba825486d009e7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:02:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:02:01 2012 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://neil.brown.name/md\n\nPull md updates from NeilBrown.\n\n* \u0027for-next\u0027 of git://neil.brown.name/md:\n  DM RAID: Add support for MD RAID10\n  md/RAID1: Add missing case for attempting to repair known bad blocks.\n  md/raid5: For odirect-write performance, do not set STRIPE_PREREAD_ACTIVE.\n  md/raid1: don\u0027t abort a resync on the first badblock.\n  md: remove duplicated test on -\u003eopeners when calling do_md_stop()\n  raid5: Add R5_ReadNoMerge flag which prevent bio from merging at block layer\n  md/raid1: prevent merging too large request\n  md/raid1: read balance chooses idlest disk for SSD\n  md/raid1: make sequential read detection per disk based\n  MD RAID10: Export md_raid10_congested\n  MD: Move macros from raid1*.h to raid1*.c\n  MD RAID1: rename mirror_info structure\n  MD RAID10: rename mirror_info structure\n  MD RAID10: Fix compiler warning.\n  raid5: add a per-stripe lock\n  raid5: remove unnecessary bitmap write optimization\n  raid5: lockless access raid5 overrided bi_phys_segments\n  raid5: reduce chance release_stripe() taking device_lock\n"
    },
    {
      "commit": "63f33b8dda88923487004b20fba825486d009e7b",
      "tree": "b7873a3155236bdbf4fbe3b0302fb3aac4c8633e",
      "parents": [
        "bb181e2e48f8c85db08c9cb015cbba9618dbf05c"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jul 31 21:44:26 2012 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Aug 01 20:41:20 2012 +1000"
      },
      "message": "DM RAID: Add support for MD RAID10\n\nSupport the MD RAID10 personality through dm-raid.c\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e49e582965b3694f07a106adc83ddb44aa4f0890",
      "tree": "fcc6ff02fd4bd9afa59b5fd3bdbb9991f1271d8a",
      "parents": [
        "da105ed5fd7edcc5e0df7dbacef4dadda74e7ebe"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Jul 27 15:08:16 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Jul 27 15:08:16 2012 +0100"
      },
      "message": "dm thin: add read only and fail io modes\n\nAdd read-only and fail-io modes to thin provisioning.\n\nIf a transaction commit fails the pool\u0027s metadata device will transition\nto \"read-only\" mode.  If a commit fails once already in read-only mode\nthe transition to \"fail-io\" mode occurs.\n\nOnce in fail-io mode the pool and all associated thin devices will\nreport a status of \"Fail\".\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "eb850de608cc22e0199b3797cd5c0076bae6cda0",
      "tree": "60cf311ac60af6fc5cae3b2cacca19ab8a74e7aa",
      "parents": [
        "542f90381422676544382d4071ba44a2de90a0c1"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Jul 27 15:08:01 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Jul 27 15:08:01 2012 +0100"
      },
      "message": "dm stripe: support for non power of 2 chunksize\n\nSupport non-power-of-2 chunk sizes with dm striping for proper alignment\nof stripe IO on storage that has non-power-of-2 optimal IO sizes (e.g.\nRAID6 10+2).\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f14fa693c93078444b5e95d7cad78ead0383ad50",
      "tree": "72efcd3104d4eab2d420626b98264dd670343fd0",
      "parents": [
        "f09996c993e256fce4b920588959866998d51250"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Jul 27 15:08:00 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Jul 27 15:08:00 2012 +0100"
      },
      "message": "dm stripe: fix size test\n\ndm-stripe is supposed to ensure that all the space allocated to the\nstripes is fully used and that all stripes are the same size.  This\npatch fixes the test.  It checks that device length is divisible by the\nchunk size and checks that the resulting quotient is divisible by the\nnumber of stripes (which is equivalent to testing if device length is\ndivisible by chunk_size * stripes).\n\nPreviously, the code only tested that the number of sectors in the target\nwas divisible by each of the chunk size and the number of stripes\nseparately, which could leave entire stripes unused.\n\n(A setup that genuinely needs some stripes to be shorter than others\ncan be created by concatenating striped targets.)\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "18068bdd5f59229623b2fa518a6389e346642b0d",
      "tree": "90b736d11a48186e48724a448d73da5deeac1f00",
      "parents": [
        "b0239faaf87c38bb419c9264bf20817438ddc3a9"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jul 03 12:55:41 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jul 03 12:55:41 2012 +0100"
      },
      "message": "dm: verity fix documentation\n\nVeritysetup is now part of cryptsetup package.\nRemove on-disk header description (which is not parsed in kernel)\nand point users to cryptsetup where it the format is documented.\nMention units for block size paramaters.\nFix target line specification and dmsetup parameters.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "cc8394d86f045b86ff303d3c9e4ce47d97148951",
      "tree": "ad37143c9709f523fb2ca9fc5ac9de75e9a011f9",
      "parents": [
        "a24c25696b7133dd534d7a9436e576af79d9ce3b"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Sun Jun 03 00:30:01 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Jun 03 00:30:01 2012 +0100"
      },
      "message": "dm thin: provide userspace access to pool metadata\n\nThis patch implements two new messages that can be sent to the thin\npool target allowing it to take a snapshot of the _metadata_.  This,\nread-only snapshot can be accessed by userland, concurrently with the\nlive target.\n\nOnly one metadata snapshot can be held at a time.  The pool\u0027s status\nline will give the block location for the current msnap.\n\nSince version 0.1.5 of the userland thin provisioning tools, the\nthin_dump program displays the msnap as follows:\n\n    thin_dump -m \u003cmsnap root\u003e \u003cmetadata dev\u003e\n\nAvailable here: https://github.com/jthornber/thin-provisioning-tools\n\nNow that userland can access the metadata we can do various things\nthat have traditionally been kernel side tasks:\n\n     i) Incremental backups.\n\n     By using metadata snapshots we can work out what blocks have\n     changed over time.  Combined with data snapshots we can ensure\n     the data doesn\u0027t change while we back it up.\n\n     A short proof of concept script can be found here:\n\n     https://github.com/jthornber/thinp-test-suite/blob/master/incremental_backup_example.rb\n\n     ii) Migration of thin devices from one pool to another.\n\n     iii) Merging snapshots back into an external origin.\n\n     iv) Asyncronous replication.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a4ffc152198efba2ed9e6eac0eb97f17bfebce85",
      "tree": "1901c86e3f4dbfcc3bd753888951a51430f0cde2",
      "parents": [
        "a66cc28f53a7e9679dedb2bc66ddb0e0c6bdd0ee"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:43:38 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:43:38 2012 +0100"
      },
      "message": "dm: add verity target\n\nThis device-mapper target creates a read-only device that transparently\nvalidates the data on one underlying device against a pre-generated tree\nof cryptographic checksums stored on a second device.\n\nTwo checksum device formats are supported: version 0 which is already\nshipping in Chromium OS and version 1 which incorporates some\nimprovements.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nSigned-off-by: Elly Jones \u003cellyjones@chromium.org\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\nCc: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "67e2e2b281812b5caf4923a38aadc6b89e34f064",
      "tree": "c04255840de5e70a0aa2880d1f1c8bfe1b2e7817",
      "parents": [
        "104655fd4dcebd50068ef30253a001da72e3a081"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "message": "dm thin: add pool target flags to control discard\n\nAdd dm thin target arguments to control discard support.\n\nignore_discard: Disables discard support\n\nno_discard_passdown: Don\u0027t pass discards down to the underlying data\ndevice, but just remove the mapping within the thin provisioning target.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2dd9c257fbc243aa76ee6db0bb8371f9f74fad2d",
      "tree": "51c82de6e41b4f53f9d41dfe1211c4feba55dc6d",
      "parents": [
        "c4a69ecdb463a901b4645230613961e134e897cd"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: support read only external snapshot origins\n\nSupport the use of an external _read only_ device as an origin for a thin\ndevice.\n\nAny read to an unprovisioned area of the thin device will be passed\nthrough to the origin.  Writes trigger allocation of new blocks as\nusual.\n\nOne possible use case for this would be VM hosts that want to run\nguests on thinly-provisioned volumes but have the base image on another\ndevice (possibly shared between many VMs).\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c4a69ecdb463a901b4645230613961e134e897cd",
      "tree": "c53e0a569f3d390ea2a97f964225d5383c6401ec",
      "parents": [
        "71fd5ae25d88841c08d5bbea90c0f0a12ca05509"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: relax hard limit on the maximum size of a metadata device\n\nThe thin metadata format can only make use of a device that is \u003c\u003d\nTHIN_METADATA_MAX_SECTORS (currently 15.9375 GB).  Therefore, there is no\npractical benefit to using a larger device.\n\nHowever, it may be that other factors impose a certain granularity for\nthe space that is allocated to a device (E.g. lvm2 can impose a coarse\ngranularity through the use of large, \u003e\u003d 1 GB, physical extents).\n\nRather than reject a larger metadata device, during thin-pool device\nconstruction, switch to allowing it but issue a warning if a device\nlarger than THIN_METADATA_MAX_SECTORS_WARNING (16 GB) is\nprovided.  Any space over 15.9375 GB will not be used.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fe878f34df89ad4af758f40bbec829807dc93a00",
      "tree": "eaa377c640fd595391491725ab477f29062374b1",
      "parents": [
        "035220b33d6865d81d5433600def53373cca7127"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm thin: correct comments\n\nRemove documentation for unimplemented \u0027trim\u0027 message.\n\nI\u0027d planned a \u0027trim\u0027 target message for shrinking thin devices, but\nthis is better handled via the discard ioctl.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "40e47125e6c5110383b0176d7b9d530f2936b1ae",
      "tree": "9653ac1f586cbfe36286c2d987c9330078eb37ad",
      "parents": [
        "4e70daaf05a181b6968e29e72e9f1c16a183e92c"
      ],
      "author": {
        "name": "Masanari Iida",
        "email": "standby24x7@gmail.com",
        "time": "Sun Mar 04 23:16:11 2012 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Mar 07 16:08:24 2012 +0100"
      },
      "message": "Documentation: Fix multiple typo in Documentation\n\nSigned-off-by: Masanari Iida \u003cstandby24x7@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4998d8ed54f5ebca49b7493c8f646344e6597a3e",
      "tree": "df56179ca9639850c5482b19d2bafc68d2d7509b",
      "parents": [
        "de49025466b0179c1be7b3e827d2f7b032033090"
      ],
      "author": {
        "name": "Masanari Iida",
        "email": "standby24x7@gmail.com",
        "time": "Thu Feb 16 22:14:34 2012 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 21 11:40:37 2012 +0100"
      },
      "message": "Documentation: Fix typo in thin-provisioning.txt\n\nCorrect spelling \"descibes\" to \"describes\" in\nDocumentation/device-mapper/thin-provisioning.txt\n\nSigned-off-by: Masanari Iida \u003cstandby24x7@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "b89544575d0096735edc9b0ad187e635487905ad",
      "tree": "8f5aa4a2d4e5e9d1b89935dbaa8d9192a87e6550",
      "parents": [
        "991d9fa02da0dd1f843dc011376965e0c8c6c9b5"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Oct 31 20:21:22 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:22 2011 +0000"
      },
      "message": "dm log userspace: fix comment hyphens\n\nFix comments: clustered-disk needs a hyphen not an underscore.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
      "tree": "a64c94710246b77bb74cd77634581cea3d32cfe1",
      "parents": [
        "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "thornber@redhat.com",
        "time": "Mon Oct 31 20:21:18 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:18 2011 +0000"
      },
      "message": "dm: add thin provisioning target\n\nInitial EXPERIMENTAL implementation of device-mapper thin provisioning\nwith snapshot support.  The \u0027thin\u0027 target is used to create instances of\nthe virtual devices that are hosted in the \u0027thin-pool\u0027 target.  The\nthin-pool target provides data sharing among devices.  This sharing is\nmade possible using the persistent-data library in the previous patch.\n\nThe main highlight of this implementation, compared to the previous\nimplementation of snapshots, is that it allows many virtual devices to\nbe stored on the same data volume, simplifying administration and\nallowing sharing of data between volumes (thus reducing disk usage).\n\nAnother big feature is support for arbitrary depth of recursive\nsnapshots (snapshots of snapshots of snapshots ...).  The previous\nimplementation of snapshots did this by chaining together lookup tables,\nand so performance was O(depth).  This new implementation uses a single\ndata structure so we don\u0027t get this degradation with depth.\n\nFor further information and examples of how to use this, please read\nDocumentation/device-mapper/thin-provisioning.txt\n\nSigned-off-by: Joe Thornber \u003cthornber@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
      "tree": "499461f724d4db3d7118641f4a20f5be23549edd",
      "parents": [
        "95d402f057f2e208e4631893f6cd4a59c7c05e41"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "thornber@redhat.com",
        "time": "Mon Oct 31 20:19:11 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:11 2011 +0000"
      },
      "message": "dm: add persistent data library\n\nThe persistent-data library offers a re-usable framework for the storage\nand management of on-disk metadata in device-mapper targets.\n\nIt\u0027s used by the thin-provisioning target in the next patch and in an\nupcoming hierarchical storage target.\n\nFor further information, please read\nDocumentation/device-mapper/persistent-data.txt\n\nSigned-off-by: Joe Thornber \u003cthornber@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "772ae5f54d69c38a5e3c4352c5fdbdaff141af21",
      "tree": "727b6dc7596b8250d644214695f09e3d6c7e43d1",
      "parents": [
        "327372797c88b24953f454cd51a3734c02697bdd"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Aug 02 12:32:08 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:08 2011 +0100"
      },
      "message": "dm crypt: optionally support discard requests\n\nAdd optional parameter field to dmcrypt table and support\n\"allow_discards\" option.\n\nDiscard requests bypass crypt queue processing. Bio is simple remapped\nto underlying device.\n\nNote that discard will be never enabled by default because of security\nconsequences.  It is up to the administrator to enable it for encrypted\ndevices.\n\n(Note that userspace cryptsetup does not understand new optional\nparameters yet.  Support for this will come later.  Until then, you\nshould use \u0027dmsetup\u0027 to enable and disable this.)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b12d437b73d32203a41fde0d407e91812c866844",
      "tree": "3c7a33f4a45779da4a5edb71678ce7f8ae4169e7",
      "parents": [
        "46bed2b5c16bb7c82e1088d7ae75fb958c8a8c4e"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: support metadata devices\n\nAdd the ability to parse and use metadata devices to dm-raid.  Although\nnot strictly required, without the metadata devices, many features of\nRAID are unavailable.  They are used to store a superblock and bitmap.\n\nThe role, or position in the array, of each device must be recorded in\nits superblock.  This is to help with fault handling, array reshaping,\nand sanity checks.  RAID 4/5/6 devices must be loaded in a specific order:\nin this way, the \u0027array_position\u0027 field helps validate the correctness\nof the mapping when it is loaded.  It can be used during reshaping to\nidentify which devices are added/removed.  Fault handling is impossible\nwithout this field.  For example, when a device fails it is recorded in\nthe superblock.  If this is a RAID1 device and the offending device is\nremoved from the array, there must be a way during subsequent array\nassembly to determine that the failed device was the one removed.  This\nis done by correlating the \u0027array_position\u0027 field and the bit-field\nvariable \u0027failed_devices\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "46bed2b5c16bb7c82e1088d7ae75fb958c8a8c4e",
      "tree": "bab932a8eec324ca470407ff54097d86a3c0e27f",
      "parents": [
        "c1084561bb85da3630540ebe951749a8cd8fc714"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add write_mostly parameter\n\nAdd the write_mostly parameter to RAID1 dm-raid tables.\n\nThis allows the user to set the WriteMostly flag on a RAID1 device that\nshould normally be avoided for read I/O.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c1084561bb85da3630540ebe951749a8cd8fc714",
      "tree": "ecdefcf24dd88f4c19a873fa5d26039a0edf03a7",
      "parents": [
        "c0a2fa1ef1057a1e9450d6f055f1cde2ad4f85a2"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add region_size parameter\n\nAllow the user to specify the region_size.\n\nEnsures that the supplied value meets md\u0027s constraints, viz. the number of\nregions does not exceed 2^21.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c0a2fa1ef1057a1e9450d6f055f1cde2ad4f85a2",
      "tree": "e854f60aea4d5ed24644ee32d6bf97e8cf7e2101",
      "parents": [
        "759dea204cce9f1fc2a5d00ea25211299fc7a4a0"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "message": "dm raid: improve table parameters documentation\n\nAdd more information about some dm-raid table parameters and clarify how\nparameters are printed when \u0027dmsetup table\u0027 is issued.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a3998799fb4df0b0af8271a7d50c4269032397aa",
      "tree": "2a0dc0a082519afd70cc991da36f620bc21272fe",
      "parents": [
        "b26f5e3d7127487e934758c1fbe05d683b082cb0"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "message": "dm flakey: add corrupt_bio_byte feature\n\nAdd corrupt_bio_byte feature to simulate corruption by overwriting a byte at a\nspecified position with a specified value during intervals when the device is\n\"down\".\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b26f5e3d7127487e934758c1fbe05d683b082cb0",
      "tree": "8b120e0e45e3a50c1c5adada0eede0870d62457d",
      "parents": [
        "dfd068b01f02653c6650f1c0eda443b2655d1471"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Aug 02 12:32:05 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:05 2011 +0100"
      },
      "message": "dm flakey: add drop_writes\n\nAdd \u0027drop_writes\u0027 option to drop writes silently while the\ndevice is \u0027down\u0027.  Reads are not touched.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "3407ef5262b55ca5d7139d2b555ef792fe531eec",
      "tree": "fb5e083851c636e515095bb3eb90325f4b175129",
      "parents": [
        "024d37e95ec4a7ccc256973ab2feab01f4fbdd2d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 24 13:54:24 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:24 2011 +0000"
      },
      "message": "dm: add flakey target\n\nThis target is the same as the linear target except that it returns I/O\nerrors periodically.  It\u0027s been found useful in simulating failing\ndevices for testing purposes.\n\nI needed a dm target to do some failure testing on btrfs\u0027s raid code, and\nMike pointed me at this.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0a9d59a2461477bd9ed143c01af9df3f8f00fa81",
      "tree": "df997d1cfb0786427a0df1fbd6f0640fa4248cf4",
      "parents": [
        "a23ce6da9677d245aa0aadc99f4197030350ab54",
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "adc0485b9e6419df0106a37288a72a5cc9d097e6",
      "tree": "44a67ecff3858ac4c83df3e8607c70b2931feebe",
      "parents": [
        "581548db3b3c0f6e25b500329eb02e3c72e7acbe"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Thu Jan 13 23:01:53 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Jan 13 23:18:59 2011 +0100"
      },
      "message": "Documentation: dm-crypt: update cryptsetup homepage\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nAcked-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "9d09e663d5502c46f2d9481c04c1087e1c2da698",
      "tree": "993f10eb7100a6ce8c00c0cff7951d7ffea9488e",
      "parents": [
        "99d03c141b40914b67d63c9d23b8da4386422ed7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "message": "dm: raid456 basic support\n\nThis patch is the skeleton for the DM target that will be\nthe bridge from DM to MD (initially RAID456 and later RAID1).  It\nprovides a way to use device-mapper interfaces to the MD RAID456\ndrivers.\n\nAs with all device-mapper targets, the nominal public interfaces are the\nconstructor (CTR) tables and the status outputs (both STATUSTYPE_INFO\nand STATUSTYPE_TABLE).  The CTR table looks like the following:\n\n1: \u003cs\u003e \u003cl\u003e raid \\\n2:\t\u003craid_type\u003e \u003c#raid_params\u003e \u003craid_params\u003e \\\n3:\t\u003c#raid_devs\u003e \u003cmeta_dev1\u003e \u003cdev1\u003e .. \u003cmeta_devN\u003e \u003cdevN\u003e\n\nLine 1 contains the standard first three arguments to any device-mapper\ntarget - the start, length, and target type fields.  The target type in\nthis case is \"raid\".\n\nLine 2 contains the arguments that define the particular raid\ntype/personality/level, the required arguments for that raid type, and\nany optional arguments.  Possible raid types include: raid4, raid5_la,\nraid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc.  (again, raid1 is\nplanned for the future.)  The list of required and optional parameters\nis the same for all the current raid types.  The required parameters are\npositional, while the optional parameters are given as key/value pairs.\nThe possible parameters are as follows:\n \u003cchunk_size\u003e\t\tChunk size in sectors.\n [[no]sync]\t\tForce/Prevent RAID initialization\n [rebuild \u003cidx\u003e]\tRebuild the drive indicated by the index\n [daemon_sleep \u003cms\u003e]\tTime between bitmap daemon work to clear bits\n [min_recovery_rate \u003ckB/sec/disk\u003e]\tThrottle RAID initialization\n [max_recovery_rate \u003ckB/sec/disk\u003e]\tThrottle RAID initialization\n [max_write_behind \u003cvalue\u003e]\t\tSee \u0027-write-behind\u003d\u0027 (man mdadm)\n [stripe_cache \u003csectors\u003e]\t\tStripe cache size for higher RAIDs\n\nLine 3 contains the list of devices that compose the array in\nmetadata/data device pairs.  If the metadata is stored separately, a \u0027-\u0027\nis given for the metadata device position.  If a drive has failed or is\nmissing at creation time, a \u0027-\u0027 can be given for both the metadata and\ndata drives for a given position.\n\nExamples:\n# RAID4 - 4 data drives, 1 parity\n# No metadata devices specified to hold superblock/bitmap info\n# Chunk size of 1MiB\n# (Lines separated for easy reading)\n0 1960893648 raid \\\n\traid4 1 2048 \\\n\t5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81\n\n# RAID4 - 4 data drives, 1 parity (no metadata devices)\n# Chunk size of 1MiB, force RAID initialization,\n#\tmin recovery rate at 20 kiB/sec/disk\n0 1960893648 raid \\\n        raid4 4 2048 min_recovery_rate 20 sync\\\n        5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81\n\nPerforming a \u0027dmsetup table\u0027 should display the CTR table used to\nconstruct the mapping (with possible reordering of optional\nparameters).\n\nPerforming a \u0027dmsetup status\u0027 will yield information on the state and\nhealth of the array.  The output is as follows:\n1: \u003cs\u003e \u003cl\u003e raid \\\n2:\t\u003craid_type\u003e \u003c#devices\u003e \u003c1 health char for each dev\u003e \u003cresync_ratio\u003e\n\nLine 1 is standard DM output.  Line 2 is best shown by example:\n\t0 1960893648 raid raid4 5 AAAAA 2/490221568\nHere we can see the RAID type is raid4, there are 5 devices - all of\nwhich are \u0027A\u0027live, and the array is 2/490221568 complete with recovery.\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d1f9642381847e2b94caa34c3533211cf36ffcf4",
      "tree": "32ae1cc4b0946247384fe1a31e257658f734b3f7",
      "parents": [
        "2dc5327d3acb3340ab6fa3981401b076b78a51f4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "message": "dm crypt: add multi key capability\n\nThis patch adds generic multikey handling to be used\nin following patch for Loop-AES mode compatibility.\n\nThis patch extends mapping table to optional keycount and\nimplements generic multi-key capability.\n\nWith more keys defined the \u003ckey\u003e string is divided into\nseveral \u003ckeycount\u003e sections and these are used for tfms.\n\nThe tfm is used according to sector offset\n(sector 0-\u003etfm[0], sector 1-\u003etfm[1], sector N-\u003etfm[N modulo keycount])\n(only power of two values supported for keycount here).\n\nBecause of tfms per-cpu allocation, this mode can be take\na lot of memory on large smp systems.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Max Vozeler \u003cmax@hinterhof.net\u003e\n"
    },
    {
      "commit": "0ea6e61122196509af82cc4f36cbdaacbefb8227",
      "tree": "1e6e65d3b73c9c620497966b1786f163a1782228",
      "parents": [
        "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Fri Jul 23 20:51:24 2010 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:21:40 2010 +0200"
      },
      "message": "Documentation: update broken web addresses.\n\nBelow you will find an updated version from the original series bunching all patches into one big patch\nupdating broken web addresses that are located in Documentation/*\nSome of the addresses date as far far back as 1995 etc... so searching became a bit difficult,\nthe best way to deal with these is to use web.archive.org to locate these addresses that are outdated.\nNow there are also some addresses pointing to .spec files some are located, but some(after searching\non the companies site)where still no where to be found. In this case I just changed the address\nto the company site this way the users can contact the company and they can locate them for the users.\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Thomas Weber \u003cweber@corscience.de\u003e\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nCc: Paulo Marques \u003cpmarques@grupopie.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c53a381efbe3d0e0629121b3f0d2b62a0e167791",
      "tree": "96807004e3f27c7030e744b95f0b1e2d73223e8d",
      "parents": [
        "ecdb2e257abc33ae6798d3ccba87bdafa40ef6b6"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat Mar 06 02:29:56 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:29:56 2010 +0000"
      },
      "message": "dm: document when snapshot has finished merging\n\nUpdate Documentation/device-mapper/snapshot.txt to cover \"How to\ndetermine when a snapshot has finished merging\".\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d698aa4500aa3ca9559142060caf0f79da998744",
      "tree": "175577ce2c8ae0918e6f38a2a27ad2b124bb2466",
      "parents": [
        "4454a6216f75a9ef8c4bd0a65e34b101f725ef1e"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:30 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:30 2009 +0000"
      },
      "message": "dm snapshot: add merge target\n\nThe snapshot-merge target allows a snapshot to be merged back into the\nsnapshot\u0027s origin device.\n\nOne anticipated use of snapshot merging is the rollback of filesystems\nto back out problematic system upgrades.\n\nThis patch adds snapshot-merge target management to both\ndm_snapshot_init() and dm_snapshot_exit().  As an initial place-holder,\nsnapshot-merge is identical to the snapshot target.  Documentation is\nprovided.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f5db4af466e2dca0fe822019812d586ca910b00c",
      "tree": "1bbaaa36509df9f7eecc19ccffa434048cf4b555",
      "parents": [
        "754c5fc7ebb417b23601a6222a6005cc2e7f2913"
      ],
      "author": {
        "name": "Jonthan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Jun 22 10:12:35 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:35 2009 +0100"
      },
      "message": "dm raid1: add userspace log\n\nThis patch contains a device-mapper mirror log module that forwards\nrequests to userspace for processing.\n\nThe structures used for communication between kernel and userspace are\nlocated in include/linux/dm-log-userspace.h.  Due to the frequency,\ndiversity, and 2-way communication nature of the exchanges between\nkernel and userspace, \u0027connector\u0027 was chosen as the interface for\ncommunication.\n\nThe first log implementations written in userspace - \"clustered-disk\"\nand \"clustered-core\" - support clustered shared storage.   A userspace\ndaemon (in the LVM2 source code repository) uses openAIS/corosync to\nprocess requests in an ordered fashion with the rest of the nodes in the\ncluster so as to prevent log state corruption.  Other implementations\nwith no association to LVM or openAIS/corosync, are certainly possible.\n\n(Imagine if two machines are writing to the same region of a mirror.\nThey would both mark the region dirty, but you need a cluster-aware\nentity that can handle properly marking the region clean when they are\ndone.  Otherwise, you might clear the region when the first machine is\ndone, not the second.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f392ba889b019602976082bfe7bf486c2594f85c",
      "tree": "962e8f354dfe3df2021476412be8d1bcec8a03d0",
      "parents": [
        "fd5e033908b7b743b5650790f196761dd930f988"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Mon Jun 22 10:12:28 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:28 2009 +0100"
      },
      "message": "dm mpath: add service time load balancer\n\nThis patch adds a service time oriented dynamic load balancer,\ndm-service-time, which selects the path with the shortest estimated\nservice time for the incoming I/O.\nThe service time is estimated by dividing the in-flight I/O size\nby a performance value of each path.\n\nThe performance value can be given as a table argument at the table\nloading time.  If no performance value is given, all paths are\nconsidered equal.\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\n"
    },
    {
      "commit": "fd5e033908b7b743b5650790f196761dd930f988",
      "tree": "cd264d11371b9410e98388e00f4d87459a5e6325",
      "parents": [
        "02ab823fd1a27d193bda06b74fdad685a20a3e5e"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Mon Jun 22 10:12:27 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:27 2009 +0100"
      },
      "message": "dm mpath: add queue length load balancer\n\nThis patch adds a dynamic load balancer, dm-queue-length, which\nbalances the number of in-flight I/Os across the paths.\n\nThe code is based on the patch posted by Stefan Bader:\nhttps://www.redhat.com/archives/dm-devel/2005-October/msg00050.html\n\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\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\n"
    },
    {
      "commit": "e3dcc5a387fc38e9c3c6c4f857cd9a7f71a8553a",
      "tree": "8e257d211df10bdc750ddb2e749f7f735dfcc740",
      "parents": [
        "cf13ab8e02d452e2236d0b5fda9972b3b7f503cb"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Apr 24 22:11:03 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:27:03 2008 +0100"
      },
      "message": "dm crypt: add documentation\n\nAdd description of dm-crypt to device-mapper documentation.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7a8c3d3b92883798e4ead21dd48c16db0ec0ff6f",
      "tree": "21a25dc6bd6afa11430e1ab8d997a4b1c0b960f0",
      "parents": [
        "51e5b2bd34ded40ef48cade8a6a8f1baa0b4275e"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Fri Oct 19 22:48:01 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:26 2007 +0100"
      },
      "message": "dm: uevent generate events\n\nThis patch adds support for the dm_path_event dm_send_event functions which\ncreate and send udev events.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "26b9f228703f0518a90e7513d6fe7b6abeed5138",
      "tree": "3437e92667c338ea46ad47b064ce4908d7d75fe2",
      "parents": [
        "0ba699347e96b5468b42b3decf1f381abbf99652"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "mauelshagen@redhat.com",
        "time": "Wed May 09 02:33:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: delay target\n\nNew device-mapper target that can delay I/O (for testing).  Reads can be\nseparated from writes, redirected to different underlying devices and delayed\nby differing amounts of time.\n\nSigned-off-by: Heinz Mauelshagen \u003cmauelshagen@redhat.com\u003e\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": "411f11405c99141233970c98d23d6a5ec88a4f7f",
      "tree": "afad7a5170c5a68a66fca4277fcbd2b20a0a2cc2",
      "parents": [
        "f73195ad7e68fb4e546350222d31e19ebc1d3578"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Mon Nov 07 01:01:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:54 2005 -0800"
      },
      "message": "[PATCH] Fix dm-snapshot tutorial in Documentation\n\nI\u0027ve recently added this documentation, Alasdair gave some corrections, and\nhere are some further corrections on top of his work (partly style issue,\npartly a technical error due to different past experience, partly a note\nwhich I\u0027ve added - i.e.  transient snapshots are lighter).\n\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e484585ec3ee66cd07a627d3a9e2364640a3807f",
      "tree": "38d0cd1f7b1699b4a14ea77b77b9c0f5a87197cc",
      "parents": [
        "10d2c46f9408d404bffef89d5052953a3b1d9288"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Thu Sep 22 21:44:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:37 2005 -0700"
      },
      "message": "[PATCH] Add dm-snapshot tutorial in Documentation\n\nI\u0027ve recently discovered the real functionality of device-mapper snapshots,\nand since they are not well known, I\u0027ve decided to write some docs for\nthem.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\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"
    }
  ]
}
