)]}'
{
  "log": [
    {
      "commit": "ce52aebd0219edc7a783278fbe80a6ccca0556c0",
      "tree": "9cb6fc1f20e51799b1d72045cf9cad86a4285b4f",
      "parents": [
        "a364092a412975e506415f77f0628cbdd28c3913"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Fri Oct 10 16:02:53 2008 +0100"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Oct 12 08:25:14 2008 -0700"
      },
      "message": "raid, fastboot: hide RAID autodetect option if MD is compiled as a module\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a364092a412975e506415f77f0628cbdd28c3913",
      "tree": "98d7d66e8658c9959b2961f0b40356e981277395",
      "parents": [
        "82cbc11a4146d6a8acd81f81f7fe17387668107f"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Sep 21 15:44:32 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Oct 12 08:25:02 2008 -0700"
      },
      "message": "raid: make RAID autodetect default a KConfig option\n\nRAID autodetect has the side effect of requiring synchronisation\nof all device drivers, which can make the boot several seconds longer\n(I\u0027ve measured 7 on one of my laptops).... even for systems that don\u0027t\nhave RAID setup for the root filesystem (the only FS where this matters).\n\nThis patch makes the default for autodetect a config option; either way\nthe user can always override via the kernel command line.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b0af205afb111e17ac8db64c3b9c4f2c332de92a",
      "tree": "3999a2ffbd36e9d1cc6ca30e6b9d6280f4e50116",
      "parents": [
        "73f6aa4d44ab6157badc456ddfa05b31e58de5f0",
        "0c2322e4ce144e130c03d813fe92de3798662c5e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:11:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:11:47 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:\n  dm: detect lost queue\n  dm: publish dm_vcalloc\n  dm: publish dm_table_unplug_all\n  dm: publish dm_get_mapinfo\n  dm: export struct dm_dev\n  dm crypt: avoid unnecessary wait when splitting bio\n  dm crypt: tidy ctx pending\n  dm crypt: fix async inc_pending\n  dm crypt: move dec_pending on error into write_io_submit\n  dm crypt: remove inc_pending from write_io_submit\n  dm crypt: tidy write loop pending\n  dm crypt: tidy crypt alloc\n  dm crypt: tidy inc pending\n  dm exception store: use chunk_t for_areas\n  dm exception store: introduce area_location function\n  dm raid1: kcopyd should stop on error if errors handled\n  dm mpath: remove is_active from struct dm_path\n  dm mpath: use more error codes\n\nFixed up trivial conflict in drivers/md/dm-mpath.c manually.\n"
    },
    {
      "commit": "0c2322e4ce144e130c03d813fe92de3798662c5e",
      "tree": "a42eeb1a75d9e70a20a6d4d850064ba8292c2289",
      "parents": [
        "54160904260fa764ba6e2dc738770be30fdf9553"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:13 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:13 2008 +0100"
      },
      "message": "dm: detect lost queue\n\nDetect and report buggy drivers that destroy their request_queue.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Stefan Raspl \u003craspl@linux.vnet.ibm.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54160904260fa764ba6e2dc738770be30fdf9553",
      "tree": "5f286d4d4c199772b4fc2fea48dfd10c5ef0ecf9",
      "parents": [
        "ea0ec640940c2ae3a8d71af3249fccf06a9997a3"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Oct 10 13:37:12 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:12 2008 +0100"
      },
      "message": "dm: publish dm_vcalloc\n\nPublish dm_vcalloc in include/linux/device-mapper.h because this function is\nused by targets.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ea0ec640940c2ae3a8d71af3249fccf06a9997a3",
      "tree": "1ee9b5f228d1ab415d1853eed6508e2f2b85ef5e",
      "parents": [
        "89343da077ad564ed130c46e5ea6a79388410fa5"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Oct 10 13:37:11 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:11 2008 +0100"
      },
      "message": "dm: publish dm_table_unplug_all\n\nPublish dm_table_unplug_all in include/linux/device-mapper.h because this\nfunction is used by targets.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "89343da077ad564ed130c46e5ea6a79388410fa5",
      "tree": "63fc3da552cc025d86656172697fcd88782a1091",
      "parents": [
        "82b1519b345d61dcfae526e3fcb08128f39f9bcc"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Oct 10 13:37:10 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:10 2008 +0100"
      },
      "message": "dm: publish dm_get_mapinfo\n\nPublish dm_get_mapinfo in include/linux/device-mapper.h because this function\nis used by targets.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "82b1519b345d61dcfae526e3fcb08128f39f9bcc",
      "tree": "240bc646da63557ed7fa81fa3c17d05b95853f45",
      "parents": [
        "933f01d43326fb12a978a8e0bb062c28a2de4d5a"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Oct 10 13:37:09 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:09 2008 +0100"
      },
      "message": "dm: export struct dm_dev\n\nSplit struct dm_dev in two and publish the part that other targets need in\ninclude/linux/device-mapper.h.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "933f01d43326fb12a978a8e0bb062c28a2de4d5a",
      "tree": "89f25c15fb98d90ee7377437482e444a8ac6a106",
      "parents": [
        "c8081618a9f832fdf7ca81eb087f9f61f2bf07d5"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:08 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:08 2008 +0100"
      },
      "message": "dm crypt: avoid unnecessary wait when splitting bio\n\nDon\u0027t wait between submitting crypt requests for a bio unless\nwe are short of memory.\n\nThere are two situations when we must split an encrypted bio:\n  1) there are no free pages;\n  2) the new bio would violate underlying device restrictions\n(e.g. max hw segments).\n\nIn case (2) we do not need to wait.\n\nAdd output variable to crypt_alloc_buffer() to distinguish between\nthese cases.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c8081618a9f832fdf7ca81eb087f9f61f2bf07d5",
      "tree": "1001d2747eb2a6937ce73469a457eabd364be3c7",
      "parents": [
        "4e59409891c9cc30cb4d5d73250b0c968af8e39b"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:08 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:08 2008 +0100"
      },
      "message": "dm crypt: tidy ctx pending\n\nMove the initialisation of ctx-\u003epending into one place, at the\nstart of crypt_convert().\n\nIntroduce crypt_finished to indicate whether or not the encryption\nis finished, for use in a later patch.\n\nNo functional change.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4e59409891c9cc30cb4d5d73250b0c968af8e39b",
      "tree": "c21382942df3b7dd363bca91fe5cd8fef3c64f0b",
      "parents": [
        "6c031f41db15b6cb0cd33545cec28ca706cd3c7e"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:07 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:07 2008 +0100"
      },
      "message": "dm crypt: fix async inc_pending\n\nThe pending reference count must be incremented *before* the async work is\nqueued to another thread, not after.  Otherwise there\u0027s a race if the\nwork completes and decrements the reference count before it gets incremented.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6c031f41db15b6cb0cd33545cec28ca706cd3c7e",
      "tree": "85434cd7db8ff2e8dc82f5821a9cd3b31ffeb86c",
      "parents": [
        "1e37bb8e557a186d327eb4d1387953880ffc2cdd"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:06 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:06 2008 +0100"
      },
      "message": "dm crypt: move dec_pending on error into write_io_submit\n\nMake kcryptd_crypt_write_io_submit() responsible for decrementing\nthe pending count after an error.\n\nAlso fixes a bug in the async path that forgot to decrement it.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1e37bb8e557a186d327eb4d1387953880ffc2cdd",
      "tree": "dfd5c65642762a69ed94136cde90e92a09d4cc15",
      "parents": [
        "fc5a5e9aa878f86642c962b309f793fb2db0727e"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:05 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:05 2008 +0100"
      },
      "message": "dm crypt: remove inc_pending from write_io_submit\n\nMake the caller reponsible for incrementing the pending count before calling\nkcryptd_crypt_write_io_submit() in the non-async case to bring it into line\nwith the async case.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fc5a5e9aa878f86642c962b309f793fb2db0727e",
      "tree": "ca66747db5cf5897a294971f3417f19adf920028",
      "parents": [
        "dc440d1e56c481f80d5350daadc7d078a04ca729"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:04 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:04 2008 +0100"
      },
      "message": "dm crypt: tidy write loop pending\n\nMove kcryptd_crypt_write_convert_loop inside kcryptd_crypt_write_convert.\nThis change is needed for a later patch.\n\nNo functional change.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "dc440d1e56c481f80d5350daadc7d078a04ca729",
      "tree": "5d7c180f431820a6f1878177b5f59a500227bf1d",
      "parents": [
        "3e1a8bdd05d6b1734a8ccf7af28042d72c447780"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:03 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:03 2008 +0100"
      },
      "message": "dm crypt: tidy crypt alloc\n\nFactor out crypt io allocation code.\nLater patches will call it from another place.\n\nNo functional change.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3e1a8bdd05d6b1734a8ccf7af28042d72c447780",
      "tree": "980ad736241ce5e1deb4a564ac65940477bfb631",
      "parents": [
        "fd14acf6fc9f4635be201960004d847b14236a20"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Oct 10 13:37:02 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:02 2008 +0100"
      },
      "message": "dm crypt: tidy inc pending\n\nMove io pending to one place.\n\nNo functional change, usefull to simplify debugging.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fd14acf6fc9f4635be201960004d847b14236a20",
      "tree": "5c856ce7353374d784e7546769b74a3eea724c54",
      "parents": [
        "a481db784682b33d078c7bf8a1d0581dc09946c1"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Oct 10 13:37:01 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:01 2008 +0100"
      },
      "message": "dm exception store: use chunk_t for_areas\n\nChange uint32_t into chunk_t to remove 32-bit limitation on the\nnumber of chunks on systems with 64-bit sector numbers.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a481db784682b33d078c7bf8a1d0581dc09946c1",
      "tree": "380b08162df8b49e23c846112fb9d376d3b6fe65",
      "parents": [
        "f7c83e2e4783c4f7abe6f3a85a8c5e210f98bc7b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Oct 10 13:37:00 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:37:00 2008 +0100"
      },
      "message": "dm exception store: introduce area_location function\n\nMove this logic to a function, because it will be reused later.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f7c83e2e4783c4f7abe6f3a85a8c5e210f98bc7b",
      "tree": "2ea22c54a1eb2db8ad983883751040d884109e76",
      "parents": [
        "6680073d3ec7c6dbdbf77870bf1fea869767d779"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Oct 10 13:36:59 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:36:59 2008 +0100"
      },
      "message": "dm raid1: kcopyd should stop on error if errors handled\n\ndm-raid1 is setting the \u0027DM_KCOPYD_IGNORE_ERROR\u0027 flag unconditionally\nwhen assigning kcopyd work.  kcopyd is responsible for copying an\nassigned section of disk to one or more other disks.  The\n\u0027DM_KCOPYD_IGNORE_ERROR\u0027 flag affects kcopyd in the following way:\n\nWhen not set:\nkcopyd will immediately stop the copy operation when an error is\nencountered.\n\nWhen set:\nkcopyd will try to proceed regardless of errors and try to continue\ncopying any remaining amount.\n\nSince dm-raid1 tracks regions of the address space that are (or\nare not) in sync and it now has the ability to handle these\nerrors, we can safely enable this optimization.  This optimization\nis conditional on whether mirror error handling has been enabled.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6680073d3ec7c6dbdbf77870bf1fea869767d779",
      "tree": "3e5417645e04b4e33feaec38e73f2e54509d16d0",
      "parents": [
        "01460f3520c100010aacc8f8500cafcb17ce4665"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Oct 10 13:36:58 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:36:58 2008 +0100"
      },
      "message": "dm mpath: remove is_active from struct dm_path\n\nThis patch moves \u0027is_active\u0027 from struct dm_path to struct pgpath\nas it does not need exporting.\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": "01460f3520c100010aacc8f8500cafcb17ce4665",
      "tree": "9f883266f2b0623a876635746d8e2cf7a136a6fc",
      "parents": [
        "3fa8749e584b55f1180411ab1b51117190bac1e5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Oct 10 13:36:57 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Oct 10 13:36:57 2008 +0100"
      },
      "message": "dm mpath: use more error codes\n\nThis patch allows path errors from the multipath ctr function to\npropagate up to userspace as errno values from the ioctl() call.\n\nThis is in response to\n  https://www.redhat.com/archives/dm-devel/2008-May/msg00000.html\nand\n  https://bugzilla.redhat.com/show_bug.cgi?id\u003d444421\n\nThe patch only lets through the errors that it needs to in order to\nget the path errors from parse_path().\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6feef531f55cf4a20fd9eb39f5352e5745203603",
      "tree": "2c52b800edcbdf01abefcf27e900985c087f1b36",
      "parents": [
        "ad3316bf4eeb53c89164f759767f911072b56203"
      ],
      "author": {
        "name": "Denis ChengRq",
        "email": "crquan@gmail.com",
        "time": "Thu Oct 09 08:57:05 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:57:05 2008 +0200"
      },
      "message": "block: mark bio_split_pool static\n\nSince all bio_split calls refer the same single bio_split_pool, the bio_split\nfunction can use bio_split_pool directly instead of the mempool_t parameter;\n\nthen the mempool_t parameter can be removed from bio_split param list, and\nbio_split_pool is only referred in fs/bio.c file, can be marked static.\n\nSigned-off-by: Denis ChengRq \u003ccrquan@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "224cb3e981f1b2f9f93dbd49eaef505d17d894c2",
      "tree": "41f2201e228a1cdb46430779deeaa474cedab7ed",
      "parents": [
        "11914a53d2ec2974a565311af327b8983d8c820d"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Fri Aug 29 09:36:09 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "dm: Call blk_abort_queue on failed paths\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "074a7aca7afa6f230104e8e65eba3420263714a5",
      "tree": "f418313e45bd55be8156c8a3e8f9a216cf63058d",
      "parents": [
        "eddb2e26b5ee3c5da68ba4bf1921ba20e2097bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:14 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: move stats from disk to part0\n\nMove stats related fields - stamp, in_flight, dkstats - from disk to\npart0 and unify stat handling such that...\n\n* part_stat_*() now updates part0 together if the specified partition\n  is not part0.  ie. part_stat_*() are now essentially all_stat_*().\n\n* {disk|all}_stat_*() are gone.\n\n* part_round_stats() is updated similary.  It handles part0 stats\n  automatically and disk_round_stats() is killed.\n\n* part_{inc|dec}_in_fligh() is implemented which automatically updates\n  part0 stats for parts other than part0.\n\n* disk_map_sector_rcu() is updated to return part0 if no part matches.\n  Combined with the above changes, this makes NULL special case\n  handling in callers unnecessary.\n\n* Separate stats show code paths for disk are collapsed into part\n  stats show code paths.\n\n* Rename disk_stat_lock/unlock() to part_stat_lock/unlock()\n\nWhile at it, reposition stat handling macros a bit and add missing\nparentheses around macro parameters.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0762b8bde9729f10f8e6249809660ff2ec3ad735",
      "tree": "12aa94ef16b840f713f833c712d335646c816dc1",
      "parents": [
        "4c46501d1659475dc6c89554af6ce7fe6ecf615c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:12 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: always set bdev-\u003ebd_part\n\nTill now, bdev-\u003ebd_part is set only if the bdev was for parts other\nthan part0.  This patch makes bdev-\u003ebd_part always set so that code\npaths don\u0027t have to differenciate common handling.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b7db9956e57c8151b930d5e5fe5c766e6aad3ff7",
      "tree": "d663a8687fff481abb1498c2ea0eac01ef81cb26",
      "parents": [
        "e56105214943ce5f0901d20e972a7cfd0d1d0656"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:10 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: move policy from disk to part0\n\nMove disk-\u003epolicy to part0-\u003epolicy.  Implement and use get_disk_ro().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ed9e1982347b36573cd622ee5f4e2a7ccd79b3fd",
      "tree": "79d834094d655ec97cfc0a382a9207ebc8e711a5",
      "parents": [
        "870d6656126add8e383645732b03df2b7ccd4f94"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: implement and use {disk|part}_to_dev()\n\nImplement {disk|part}_to_dev() and use them to access generic device\ninstead of directly dereferencing {disk|part}-\u003edev.  To make sure no\nuser is left behind, rename generic devices fields to __dev.\n\nThis is in preparation of unifying partition 0 handling with other\npartitions.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c9959059161ddd7bf4670cf47367033d6b2f79c4",
      "tree": "6454db55f8e34361fe472358e10e0c5cfac1e366",
      "parents": [
        "e71bf0d0ee89e51b92776391c5634938236977d5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:21 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: fix diskstats access\n\nThere are two variants of stat functions - ones prefixed with double\nunderbars which don\u0027t care about preemption and ones without which\ndisable preemption before manipulating per-cpu counters.  It\u0027s unclear\nwhether the underbarred ones assume that preemtion is disabled on\nentry as some callers don\u0027t do that.\n\nThis patch unifies diskstats access by implementing disk_stat_lock()\nand disk_stat_unlock() which take care of both RCU (for partition\naccess) and preemption (for per-cpu counter access).  diskstats access\nshould always be enclosed between the two functions.  As such, there\u0027s\nno need for the versions which disables preemption.  They\u0027re removed\nand double underbars ones are renamed to drop the underbars.  As an\nextra argument is added, there\u0027s no danger of using the old version\nunconverted.\n\ndisk_stat_lock() uses get_cpu() and returns the cpu index and all\ndiskstat functions which access per-cpu counters now has @cpu\nargument to help RT.\n\nThis change adds RCU or preemption operations at some places but also\ncollapses several preemption ops into one at others.  Overall, the\nperformance difference should be negligible as all involved ops are\nvery lightweight per-cpu ones.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f331c0296f2a9fee0d396a70598b954062603015",
      "tree": "f74c467d58940131d97d90c4ea549843185e6ef0",
      "parents": [
        "cf771cb5a7b716f3f9e532fd42a1e3a0a75adec5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 09:01:48 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:05 2008 +0200"
      },
      "message": "block: don\u0027t depend on consecutive minor space\n\n* Implement disk_devt() and part_devt() and use them to directly\n  access devt instead of computing it from -\u003emajor and -\u003efirst_minor.\n\n  Note that all references to -\u003emajor and -\u003efirst_minor outside of\n  block layer is used to determine devt of the disk (the part0) and as\n  -\u003emajor and -\u003efirst_minor will continue to represent devt for the\n  disk, converting these users aren\u0027t strictly necessary.  However,\n  convert them for consistency.\n\n* Implement disk_max_parts() to avoid directly deferencing\n  genhd-\u003eminors.\n\n* Update bdget_disk() such that it doesn\u0027t assume consecutive minor\n  space.\n\n* Move devt computation from register_disk() to add_disk() and make it\n  the only one (all other usages use the initially determined value).\n\nThese changes clean up the code and will help disk-\u003epart dereference\nfix and extended block device numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b99c2ffa980528a197f26c7d876cceeccce8dd5",
      "tree": "65e3bbbccb3f796f0569c47fcfc00e222cd3066e",
      "parents": [
        "960e739d9e9f1c2346d8bdc65299ee2e1ed42218"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 15 10:56:11 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "block: make bi_phys_segments an unsigned int instead of short\n\nraid5 can overflow with more than 255 stripes, and we can increase it\nto an int for free on both 32 and 64-bit archs due to the padding.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "960e739d9e9f1c2346d8bdc65299ee2e1ed42218",
      "tree": "d3b38cbfbf503338cdf08e9ad6c4d41f7684ce34",
      "parents": [
        "5df97b91b5d7ed426034fcc84cb6e7cf682b8838"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 15 10:41:18 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "block: raid fixups for removal of bi_hw_segments\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5df97b91b5d7ed426034fcc84cb6e7cf682b8838",
      "tree": "727b9fb778f72d2b1ff44c007fb5209bacf67f4a",
      "parents": [
        "b8b3e16cfe6435d961f6aaebcfd52a1ff2a988c5"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Aug 15 10:20:02 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "drop vmerge accounting\n\nRemove hw_segments field from struct bio and struct request. Without virtual\nmerge accounting they have no purpose.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7253a33434245ee8243897559188186df65f3611",
      "tree": "24156c85ddd38319ab92ae56a5c585c0f2e273cc",
      "parents": [
        "b01cd5ac43b00c49759c126c21e7d22c7e80b245"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Wed Oct 01 14:39:27 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Oct 01 14:39:27 2008 +0100"
      },
      "message": "dm mpath: add missing path switching locking\n\nMoving the path activation to workqueue along with scsi_dh patches introduced\na race. It is due to the fact that the current_pgpath (in the multipath data\nstructure) can be modified if changes happen in any of the paths leading to\nthe lun. If the changes lead to current_pgpath being set to NULL, then it\nleads to the invalid access which results in the panic below.\n\nThis patch fixes that by storing the pgpath to activate in the multipath data\nstructure and properly protecting it.\n\nNote that if activate_path is called twice in succession with different pgpath,\nwith the second one being called before the first one is done, then activate\npath will be called twice for the second pgpath, which is fine.\n\nUnable to handle kernel paging request for data at address 0x00000020\nFaulting instruction address: 0xd000000000aa1844\ncpu 0x1: Vector: 300 (Data Access) at [c00000006b987a80]\n    pc: d000000000aa1844: .activate_path+0x30/0x218 [dm_multipath]\n    lr: c000000000087a2c: .run_workqueue+0x114/0x204\n    sp: c00000006b987d00\n   msr: 8000000000009032\n   dar: 20\n dsisr: 40000000\n  current \u003d 0xc0000000676bb3f0\n  paca    \u003d 0xc0000000006f3680\n    pid   \u003d 2528, comm \u003d kmpath_handlerd\nenter ? for help\n[c00000006b987da0] c000000000087a2c .run_workqueue+0x114/0x204\n[c00000006b987e40] c000000000088b58 .worker_thread+0x120/0x144\n[c00000006b987f00] c00000000008ca70 .kthread+0x78/0xc4\n[c00000006b987f90] c000000000027cc8 .kernel_thread+0x4c/0x68\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b01cd5ac43b00c49759c126c21e7d22c7e80b245",
      "tree": "ccfda9067457032999a5d2d6ed5203caa2422937",
      "parents": [
        "5037108acd4dc40c210321cc83b0bf8352eda95a"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Oct 01 14:39:24 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Oct 01 14:39:24 2008 +0100"
      },
      "message": "dm: cope with access beyond end of device in dm_merge_bvec\n\nIf for any reason dm_merge_bvec() is given an offset beyond the end of the\ndevice, avoid an oops and always allow one page to be added to an empty bio.\nWe\u0027ll reject the I/O later after the bio is submitted.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5037108acd4dc40c210321cc83b0bf8352eda95a",
      "tree": "96b8684cd33eaee6dda5f07d598c93de36b1476a",
      "parents": [
        "d3a47e82b6bc3724dd60f3ee4e84fe4479104382"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Oct 01 14:39:17 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Oct 01 14:39:17 2008 +0100"
      },
      "message": "dm: always allow one page in dm_merge_bvec\n\nSome callers assume they can always add at least one page to an empty bio,\nso dm_merge_bvec should not return 0 in this case: we\u0027ll reject the I/O\nlater after the bio is submitted.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9744197c3d7b329590c2be33ad7b17409bd798fe",
      "tree": "b82478694d768a54bad23661e31830cc48e95e0f",
      "parents": [
        "45e9c0de2e86485f8b6633fd64ab19cfbff167f6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Sep 19 11:49:54 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Sep 19 11:49:54 2008 +1000"
      },
      "message": "md: Don\u0027t wait UNINTERRUPTIBLE for other resync to finish\n\nWhen two md arrays share some block device (e.g each uses different\npartitions on the one device), a resync of one array will wait for\nthe resync on the other to finish.\n\nThis can be a long time and as it currently waits TASK_UNINTERRUPTIBLE,\nthe softlockup code notices and complains.\n\nSo use TASK_INTERRUPTIBLE instead and make sure to flush signals\nbefore calling schedule.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b2d2c4ceaddc3098f19637a732f74b820a81a9e7",
      "tree": "5fb4150c33066f9fa70cc39853e5400ad6d54dca",
      "parents": [
        "271f5a9b8f8ae0db95de72779d115c9d0b9d3cc5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Sep 01 12:48:13 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Sep 01 12:48:13 2008 +1000"
      },
      "message": "Fix problem with waiting while holding rcu read lock in md/bitmap.c\n\nA recent patch to protect the rdev list with rcu locking leaves us\nwith a problem because we can sleep on memalloc while holding the\nrcu lock.\n\nThe rcu lock is only needed while walking the linked list as\nuninteresting devices (failed or spares) can be removed at any time.\n\nSo only take the rcu lock while actually walking the linked list.\nTake a refcount on the rdev during the time when we drop the lock\nand do the memalloc to start IO.\nWhen we return to the locked code, all the interesting devices\non the list will not have moved, so we can simply use\nlist_for_each_continue_rcu to pick up where we left off.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "271f5a9b8f8ae0db95de72779d115c9d0b9d3cc5",
      "tree": "814bfe03f1c5ae97da163c8f6b24a0cf67cfd783",
      "parents": [
        "bef69ea0dcce574a425feb0a5aa4c63dd108b9a6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Sep 01 12:32:52 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Sep 01 12:32:52 2008 +1000"
      },
      "message": "Remove invalidate_partition call from do_md_stop.\n\nWhen stopping an md array, or just switching to read-only, we\ncurrently call invalidate_partition while holding the mddev lock.\nThe main reason for this is probably to ensure all dirty buffers\nare flushed (invalidate_partition calls fsync_bdev).\n\nHowever if any dirty buffers are found, it will almost certainly cause\na deadlock as starting writeout will require an update to the\nsuperblock, and performing that updates requires taking the mddev\nlock - which is already held.\n\nThis deadlock can be demonstrated by running \"reboot -f -n\" with\na root filesystem on md/raid, and some dirty buffers in memory.\n\nAll other calls to stop an array should already happen after a flush.\nThe normal sequence is to stop using the array (e.g. umount) which\nwill cause __blkdev_put to call sync_blockdev.  Then open the\narray and issue the STOP_ARRAY ioctl while the buffers are all still\nclean.\n\nSo this invalidate_partition is normally a no-op, except for one case\nwhere it will cause a deadlock.\n\nSo remove it.\n\nThis patch possibly addresses the regression recored in\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d11460\nand\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d11452\n\nthough it isn\u0027t yet clear how it ever worked.\n\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "56ac36d722d0d27c03599d1245ac0ab59e474e5c",
      "tree": "e65f4d860549532a570b92995906f3c3dec9c529",
      "parents": [
        "0310fa216decc3ecfab41f327638fa48a81f3735"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Aug 07 10:02:47 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Aug 07 10:02:47 2008 -0700"
      },
      "message": "md: cancel check/repair requests when recovery is needed\n\nIf a \u0027repair\u0027 is requested when an array is in a position to \u0027recover\u0027 raid1\nwill perform the repair while md believes a recovery is happening.  Address\nthis at both ends, i.e. cancel check/repair requests upon detecting a\nrecover condition and do not call -\u003espare_active after completing a\ncheck/repair.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "0310fa216decc3ecfab41f327638fa48a81f3735",
      "tree": "86fc2736802c55de2e21a4e223c34d9e8a1e93a2",
      "parents": [
        "c89a8eee61540df04fc83f32f51ef0f46ec018b1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:54:14 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:56:32 2008 +1000"
      },
      "message": "Allow raid10 resync to happening in larger chunks.\n\nThe raid10 resync/recovery code currently limits the amount of\nin-flight resync IO to 2Meg.  This was copied from raid1 where\nit seems quite adequate.  However for raid10, some layouts require\na bit of seeking to perform a resync, and allowing a larger buffer\nsize means that the seeking can be significantly reduced.\n\nThere is probably no real need to limit the amount of in-flight\nIO at all.  Any shortage of memory will naturally reduce the\namount of buffer space available down to a set minimum, and any\nconcurrent normal IO will quickly cause resync IO to back off.\n\nThe only problem would be that normal IO has to wait for all resync IO\nto finish, so a very large amount of resync IO could cause unpleasant\nlatency when normal IO starts up.\n\nSo: increase RESYNC_DEPTH to allow 32Meg of buffer (if memory is\navailable) which seems to be a good amount.  Also reduce the amount\nof memory reserved as there is no need to keep 2Meg just for resync if\nmemory is tight.\n\nThanks to Keld for the suggestion.\n\nCc: Keld Jørn Simonsen \u003ckeld@dkuug.dk\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c89a8eee61540df04fc83f32f51ef0f46ec018b1",
      "tree": "7bffba40357f654de8ed31bc6a0e7468daa61234",
      "parents": [
        "ac4090d24c6a26211bc4523d920376e054d4f3f8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:54:13 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:56:32 2008 +1000"
      },
      "message": "Allow faulty devices to be removed from a readonly array.\n\nRemoving faulty devices from an array is a two stage process.\nFirst the device is moved from being a part of the active array\nto being similar to a spare device.  Then it can be removed\nby a request from user space.\n\nThe first step is currently not performed for read-only arrays,\nso the second step can never succeed.\n\nSo allow readonly arrays to remove failed devices (which aren\u0027t\nblocked).\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ac4090d24c6a26211bc4523d920376e054d4f3f8",
      "tree": "5aabdbb2448967cbfc23be2fa6714d1c1bbf29dc",
      "parents": [
        "dba034eef2456d2a9f9a76806846c97acf6c3ad1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:54:13 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:56:32 2008 +1000"
      },
      "message": "Don\u0027t let a blocked_rdev interfere with read request in raid5/6\n\nWhen we have externally managed metadata, we need to mark a failed\ndevice as \u0027Blocked\u0027 and not allow any writes until that device\nhave been marked as faulty in the metadata and the Blocked flag has\nbeen removed.\n\nHowever it is perfectly OK to allow read requests when there is a\nBlocked device, and with a readonly array, there may not be any\nmetadata-handler watching for blocked devices.\n\nSo in raid5/raid6 only allow a Blocked device to interfere with\nWrite request or resync.  Read requests go through untouched.\n\nraid1 and raid10 already differentiate between read and write\nproperly.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dba034eef2456d2a9f9a76806846c97acf6c3ad1",
      "tree": "3cf51b72fc5be671e986a39c389aa5332994e2a2",
      "parents": [
        "2b25000bf5157c28d8591f03f0575248a8cbd900"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:54:13 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:56:32 2008 +1000"
      },
      "message": "Fail safely when trying to grow an array with a write-intent bitmap.\n\nWe cannot currently change the size of a write-intent bitmap.\nSo if we change the size of an array which has such a bitmap, it\ntries to set bits beyond the end of the bitmap.\n\nFor now, simply reject any request to change the size of an array\nwhich has a bitmap.  mdadm can remove the bitmap and add a new one\nafter the array has changed size.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2b25000bf5157c28d8591f03f0575248a8cbd900",
      "tree": "f01260723348738076becc9f62872d87819f3159",
      "parents": [
        "19052c0e85a3e9d3b7d190b29fcdbf0e6c105381"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:54:13 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:56:31 2008 +1000"
      },
      "message": "Restore force switch of md array to readonly at reboot time.\n\nA recent patch allowed do_md_stop to know whether it was being called\nvia an ioctl or not, and thus where to allow for an extra open file\ndescriptor when checking if it is in use.\nThis broke then switch to readonly performed by the shutdown notifier,\nwhich needs to work even when the array is still (apparently) active\n(as md doesn\u0027t get told when the filesystem becomes readonly).\n\nSo restore this feature by pretending that there can be lots of\nfile descriptors open, but we still want do_md_stop to switch to\nreadonly.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "19052c0e85a3e9d3b7d190b29fcdbf0e6c105381",
      "tree": "6f61eacfe7ade13f0bf06adba5efac052e1038c0",
      "parents": [
        "2b12a4c524812fb3f6ee590a02e65b95c8c32229"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:54:13 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 05 15:56:31 2008 +1000"
      },
      "message": "Make writes to md/safe_mode_delay immediately effective.\n\nIf we reduce the \u0027safe_mode_delay\u0027, it could still wait for the old\ndelay to completely expire before doing anything about safe_mode.\nThus the effect if the change is delayed.\n\nTo make the effect more immediate, run the timeout function\nimmediately if the delay was reduced.  This may cause it to run\nslightly earlier that required, but that is the safer option.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1e24b15b267293567a8d752721c7ae63f281325a",
      "tree": "ee63644d2dc59899e42ec0802c201140e3a92e5e",
      "parents": [
        "63a16f90167850010864a9e8ebb71d216983090f",
        "388667bed591b2359713bb17d5de0cf56e961447"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 11:56:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 11:56:07 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md: raid10: wake up frozen array\n  md: do not count blocked devices as spares\n  md: do not progress the resync process if the stripe was blocked\n  md: delay notification of \u0027active_idle\u0027 to the recovery thread\n  md: fix merge error\n  md: move async_tx_issue_pending_all outside spin_lock_irq\n"
    },
    {
      "commit": "b17b3d479c4c43c3a980ee553c3be3ca456523de",
      "tree": "6715c10bfe1301eb3c112b17a858b541ce14aef5",
      "parents": [
        "31582b094d640fdab3fd29237b348a4c7c8646fb",
        "93769f58078e2a066b56217cae1e343ac5a6b78c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 11:46:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 11:46:00 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  md: the bitmap code needs to use blk_plug_device_unlocked()\n  block: add a blk_plug_device_unlocked() that grabs the queue lock\n"
    },
    {
      "commit": "93769f58078e2a066b56217cae1e343ac5a6b78c",
      "tree": "71ed73834f6163701f368324de46f4b6713390ed",
      "parents": [
        "6c5e0c4d518a37e1d5d794c14433e80284415079"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 01 20:32:31 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 01 20:32:31 2008 +0200"
      },
      "message": "md: the bitmap code needs to use blk_plug_device_unlocked()\n\nIt doesn\u0027t hold the queue lock, so it\u0027s both racey on the queue flags\nand thus spews a warning.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d5686b444ff3f72808d2b3fbd58672a86cdf38e7",
      "tree": "d3cdebc042269641f7134556e2f8d263d526581a",
      "parents": [
        "a95164d979c5ca061f15bcaadc829c146693d4d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 05:00:11 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:31 2008 -0400"
      },
      "message": "[PATCH] switch mtd and dm-table to lookup_bdev()\n\nNo need to open-code it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "388667bed591b2359713bb17d5de0cf56e961447",
      "tree": "aa8a28db549719fecc540c9c0faf5bba58827ab2",
      "parents": [
        "e542713529e323ff09d7aeb5806cf29f6f160f53"
      ],
      "author": {
        "name": "Arthur Jones",
        "email": "ajones@riverbed.com",
        "time": "Fri Jul 25 12:03:38 2008 -0700"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Aug 01 12:55:14 2008 +1000"
      },
      "message": "md: raid10: wake up frozen array\n\nWhen rescheduling a bio in raid10, we wake up\nthe md thread, but if the array is frozen, this\nwill have no effect.  This causes the array to\nremain frozen for eternity.  We add a wake_up\nto allow the array to de-freeze.  This code is\nnearly identical to the raid1 code, which has\nthis fix already.\n\nSigned-off-by: Arthur Jones \u003cajones@riverbed.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e542713529e323ff09d7aeb5806cf29f6f160f53",
      "tree": "751dffc2043342eb6f76b0c37a07a698462b5516",
      "parents": [
        "df10cfbc4d7ab93260d997df754219d390d62a9d"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 28 23:28:06 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 28 17:52:44 2008 -0700"
      },
      "message": "md: do not count blocked devices as spares\n\nremove_and_add_spares() assumes that failed devices have been hot-removed\nfrom the array.  Removal is skipped in the \u0027blocked\u0027 case so do not count a\ndevice in this state as \u0027spare\u0027.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "df10cfbc4d7ab93260d997df754219d390d62a9d",
      "tree": "23908d827de85f16f9404875859e51babb966856",
      "parents": [
        "d8e64406a037a64444175730294e449c9e21f5ec"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 28 23:10:39 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 28 17:52:37 2008 -0700"
      },
      "message": "md: do not progress the resync process if the stripe was blocked\n\nhandle_stripe will take no action on a stripe when waiting for userspace\nto unblock the array, so do not report completed sectors.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "ae11b1b36da726a8a93409b896704edc6b4f3402",
      "tree": "737e3602cb426c87f64ad26ccbfc12ce707d7b9e",
      "parents": [
        "057ea7c9683c3d684128cced796f03c179ecf1c2"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Jul 17 17:49:02 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 26 15:14:53 2008 -0400"
      },
      "message": "[SCSI] scsi_dh: attach to hardware handler from dm-mpath\n\nmultipath keeps a separate device table which may be\nmore current than the built-in one.\nSo we should make sure to always call -\u003eattach whenever\na multipath map with hardware handler is instantiated.\nAnd we should call -\u003edetach on removal, too.\n\n[sekharan: update as per comments from agk]\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d8e64406a037a64444175730294e449c9e21f5ec",
      "tree": "5ac7525899ebc1d2fd9a83a6e19cd0b1b1b1711d",
      "parents": [
        "2339788376e2d69a9154130e4dacd5b21ce63094"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 23 13:09:48 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 23 13:09:48 2008 -0700"
      },
      "message": "md: delay notification of \u0027active_idle\u0027 to the recovery thread\n\nsysfs_notify might sleep, so do not call it from md_safemode_timeout.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "2339788376e2d69a9154130e4dacd5b21ce63094",
      "tree": "ed8f21a7a726472fd089365b8913f0e950edf12a",
      "parents": [
        "c9f21aaff1d1fb5629325130af469532d19beb93"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 23 20:05:34 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 23 13:09:45 2008 -0700"
      },
      "message": "md: fix merge error\n\nThe original STRIPE_OP_IO removal patch had the following hunk:\n\n-               for (i \u003d conf-\u003eraid_disks; i--; ) {\n+               for (i \u003d conf-\u003eraid_disks; i--; )\n                        set_bit(R5_Wantwrite, \u0026sh-\u003edev[i].flags);\n-                       if (!test_and_set_bit(STRIPE_OP_IO, \u0026sh-\u003eops.pending))\n-                               sh-\u003eops.count++;\n-               }\n\nHowever it appears the hunk became broken after merging:\n-               for (i \u003d conf-\u003eraid_disks; i--; ) {\n+               for (i \u003d conf-\u003eraid_disks; i--; )\n                        set_bit(R5_Wantwrite, \u0026sh-\u003edev[i].flags);\n                        set_bit(R5_LOCKED, \u0026dev-\u003eflags);\n                        s.locked++;\n-                       if (!test_and_set_bit(STRIPE_OP_IO, \u0026sh-\u003eops.pending))\n-                               sh-\u003eops.count++;\n-               }\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "c9f21aaff1d1fb5629325130af469532d19beb93",
      "tree": "41bb8d2e9d0416d76698d7610b2cbda5ea496cda",
      "parents": [
        "4b80991c6cb9efa607bc4fd6f3ecdf5511c31bb0"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 23 12:05:51 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 23 12:05:51 2008 -0700"
      },
      "message": "md: move async_tx_issue_pending_all outside spin_lock_irq\n\nSome dma drivers need to call spin_lock_bh in their device_issue_pending\nroutines.  This change avoids:\n\nWARNING: at kernel/softirq.c:136 local_bh_enable_ip+0x3a/0x85()\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "b7e6f62fe259187f2578d00960ef1b0e6ff6afd5",
      "tree": "796fd3c878a2f8d8d55ea1e52ef236742a48c3dd",
      "parents": [
        "8a392625b665c676a77c62f8608d10ff430bcb83",
        "d41e26b901111f4e540aa2c27ec7a1681c782be9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 10:30:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 10:30:10 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:\n  dm crypt: add merge\n  dm table: remove merge_bvec sector restriction\n  dm: linear add merge\n  dm: introduce merge_bvec_fn\n  dm snapshot: use per device mempools\n  dm snapshot: fix race during exception creation\n  dm snapshot: track snapshot reads\n  dm mpath: fix test for reinstate_path\n  dm mpath: return parameter error\n  dm io: remove struct padding\n  dm log: make dm_dirty_log init and exit static\n  dm mpath: free path selector on invalid args\n"
    },
    {
      "commit": "8a392625b665c676a77c62f8608d10ff430bcb83",
      "tree": "4000a65d61baed73200e47f91dea5263ed16edd0",
      "parents": [
        "519f0141f1c42e2b8b59c7dea005cbf6095358e8",
        "4b80991c6cb9efa607bc4fd6f3ecdf5511c31bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 10:29:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 10:29:12 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (52 commits)\n  md: Protect access to mddev-\u003edisks list using RCU\n  md: only count actual openers as access which prevent a \u0027stop\u0027\n  md: linear: Make array_size sector-based and rename it to array_sectors.\n  md: Make mddev-\u003earray_size sector-based.\n  md: Make super_type-\u003erdev_size_change() take sector-based sizes.\n  md: Fix check for overlapping devices.\n  md: Tidy up rdev_size_store a bit:\n  md: Remove some unused macros.\n  md: Turn rdev-\u003esb_offset into a sector-based quantity.\n  md: Make calc_dev_sboffset() return a sector count.\n  md: Replace calc_dev_size() by calc_num_sectors().\n  md: Make update_size() take the number of sectors.\n  md: Better control of when do_md_stop is allowed to stop the array.\n  md: get_disk_info(): Don\u0027t convert between signed and unsigned and back.\n  md: Simplify restart_array().\n  md: alloc_disk_sb(): Return proper error value.\n  md: Simplify sb_equal().\n  md: Simplify uuid_equal().\n  md: sb_equal(): Fix misleading printk.\n  md: Fix a typo in the comment to cmd_match().\n  ...\n"
    },
    {
      "commit": "d41e26b901111f4e540aa2c27ec7a1681c782be9",
      "tree": "7f05c209b92c0dfc2a96daeac3a4812f34b70b10",
      "parents": [
        "9980c638a666ecd88acaf0a7ab91043d4a3f44d1"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Mon Jul 21 12:00:40 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:40 2008 +0100"
      },
      "message": "dm crypt: add merge\n\nThis patch implements biovec merge function for crypt target.\n\nIf the underlying device has merge function defined, call it.\nIf not, keep precomputed value.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9980c638a666ecd88acaf0a7ab91043d4a3f44d1",
      "tree": "89434f8d20d4e330400d8663dcc53188a9956f8c",
      "parents": [
        "7bc3447b692185c5ea78bee93d0ef1dee2fd7ce7"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Mon Jul 21 12:00:39 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:39 2008 +0100"
      },
      "message": "dm table: remove merge_bvec sector restriction\n\nRemove max_sector restriction - merge function replaced it.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7bc3447b692185c5ea78bee93d0ef1dee2fd7ce7",
      "tree": "f30ddd021bcbb333f12b1a57a6969e0d52b7cdab",
      "parents": [
        "f6fccb1213ba3d661baeb2a5eee0a9701dc03e1b"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Mon Jul 21 12:00:38 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:38 2008 +0100"
      },
      "message": "dm: linear add merge\n\nThis patch implements biovec merge function for linear target.\n\nIf the underlying device has merge function defined, call it.\nIf not, keep precomputed value.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f6fccb1213ba3d661baeb2a5eee0a9701dc03e1b",
      "tree": "456671e791f8a61b40e0d622591b902ca1351ae7",
      "parents": [
        "92e868122edf08b9fc06b112e7e0c80ab94c1f93"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Mon Jul 21 12:00:37 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:37 2008 +0100"
      },
      "message": "dm: introduce merge_bvec_fn\n\nIntroduce a bvec merge function for device mapper devices\nfor dynamic size restrictions.\n\nThis code ensures the requested biovec lies within a single\ntarget and then calls a target-specific function to check\nagainst any constraints imposed by underlying devices.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "92e868122edf08b9fc06b112e7e0c80ab94c1f93",
      "tree": "9cd2e5e2f15adcaf1b8d3f8f55d5a676ad40bfd6",
      "parents": [
        "a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:35 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:35 2008 +0100"
      },
      "message": "dm snapshot: use per device mempools\n\nChange snapshot per-module mempool to per-device mempool.\n\nPer-module mempools could cause a deadlock if multiple\nsnapshot devices are stacked above each other.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366",
      "tree": "f9435bed2d582e4cd3e91e4d6fb18a18f62aa019",
      "parents": [
        "cd45daffd1f7b53aac0835b23e97f814ec3f10dc"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:34 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:34 2008 +0100"
      },
      "message": "dm snapshot: fix race during exception creation\n\nFix a race condition that returns incorrect data when a write causes an\nexception to be allocated whilst a read is still in flight.\n\nThe race condition happens as follows:\n* A read to non-reallocated sector in the snapshot is submitted so that the\n  read is routed to the original device.\n* A write to the original device is submitted. The write causes an exception\n  that reallocates the block.  The write proceeds.\n* The original read is dequeued and reads the wrong data.\n\nThis race can be triggered with CFQ scheduler and one thread writing and\nmultiple threads reading simultaneously.\n\n(This patch relies upon the earlier dm-kcopyd-per-device.patch to avoid a\ndeadlock.)\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "cd45daffd1f7b53aac0835b23e97f814ec3f10dc",
      "tree": "17d35682a8a97f3a73f513531f08ba7e0c8cd718",
      "parents": [
        "def052d21c4e77975bb75cf212f018ec913f8e2f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:32 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:32 2008 +0100"
      },
      "message": "dm snapshot: track snapshot reads\n\nWhenever a snapshot read gets mapped through to the origin, track it in\na per-snapshot hash table indexed by chunk number, using memory allocated\nfrom a new per-snapshot mempool.\n\nWe need to track these reads to avoid race conditions which will be fixed\nby patches that follow.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "def052d21c4e77975bb75cf212f018ec913f8e2f",
      "tree": "88a7bcd180f23d33b0e4f7728476b7b241df1f34",
      "parents": [
        "148acff615b403168cdf39e55bfcfaa6e4a7d233"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:31 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:31 2008 +0100"
      },
      "message": "dm mpath: fix test for reinstate_path\n\nFix test for reinstate_path method before attempting to use it.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\n"
    },
    {
      "commit": "148acff615b403168cdf39e55bfcfaa6e4a7d233",
      "tree": "e9879aecb1403f89ec1a6d37d2608dd9bf51e2ef",
      "parents": [
        "6ae2fa6718c398290be29ef740873640d25058b6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:30 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:30 2008 +0100"
      },
      "message": "dm mpath: return parameter error\n\nReturn a specific error message if there are an invalid number of multipath\narguments.\n\nThis invalid command returns an \"Unknown error\" because the ti-\u003eerror field is\nnot set\n\ndmsetup create --table \u00270 2 multipath 0 0 1 1 round-robin 0 1 1 /dev/sdh\u0027 mpath0\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6ae2fa6718c398290be29ef740873640d25058b6",
      "tree": "057e8601891ed77fecbdb968033cc9dc06f8b788",
      "parents": [
        "c8da2f8dd86d70559ec4e50251f6a755b42bd5b4"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Mon Jul 21 12:00:28 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:28 2008 +0100"
      },
      "message": "dm io: remove struct padding\n\nRearrange struct dm_io.\nShrinks size from 40 -\u003e 32 allowing more objects/slab.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c8da2f8dd86d70559ec4e50251f6a755b42bd5b4",
      "tree": "1991d27441d08a727160d75d7b2723b5514b19e1",
      "parents": [
        "371b2e348b7731a548b0a7432ca2ba32e90dd16f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Jul 21 12:00:27 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:27 2008 +0100"
      },
      "message": "dm log: make dm_dirty_log init and exit static\n\ndm_dirty_log_{init,exit}() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "371b2e348b7731a548b0a7432ca2ba32e90dd16f",
      "tree": "d7adce2fcaf95bfbbdfd4779d0e03e2980308b65",
      "parents": [
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:24 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:24 2008 +0100"
      },
      "message": "dm mpath: free path selector on invalid args\n\nFree path selector if the arguments are invalid.\n\nThis command (note that it is invalid) causes reference leak on module\n\"dm_round_robin\" and prevents the module from being removed.\n\ndmsetup create --table \u00270 2 multipath 0 0 1 1 round-robin /dev/sdh\u0027 mpath0\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4b80991c6cb9efa607bc4fd6f3ecdf5511c31bb0",
      "tree": "5e2ba7d509af245c29bdf04b00960cc367972c44",
      "parents": [
        "f2ea68cf42aafdd93393b6b8b20fc3c2b5f4390c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:25 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:25 2008 +1000"
      },
      "message": "md: Protect access to mddev-\u003edisks list using RCU\n\nAll modifications and most access to the mddev-\u003edisks list are made\nunder the reconfig_mutex lock.  However there are three places where\nthe list is walked without any locking.  If a reconfig happens at this\ntime, havoc (and oops) can ensue.\n\nSo use RCU to protect these accesses:\n  - wrap them in rcu_read_{,un}lock()\n  - use list_for_each_entry_rcu\n  - add to the list with list_add_rcu\n  - delete from the list with list_del_rcu\n  - delay the \u0027free\u0027 with call_rcu rather than schedule_work\n\nNote that export_rdev did a list_del_init on this list.  In almost all\ncases the entry was not in the list anymore so it was a no-op and so\nsafe.  It is no longer safe as after list_del_rcu we may not touch\nthe list_head.\nAn audit shows that export_rdev is called:\n  - after unbind_rdev_from_array, in which case the delete has\n     already been done,\n  - after bind_rdev_to_array fails, in which case the delete isn\u0027t needed.\n  - before the device has been put on a list at all (e.g. in\n      add_new_disk where reading the superblock fails).\n  - and in autorun devices after a failure when the device is on a\n      different list.\n\nSo remove the list_del_init call from export_rdev, and add it back\nimmediately before the called to export_rdev for that last case.\n\nNote also that -\u003esame_set is sometimes used for lists other than\nmddev-\u003elist (e.g. candidates).  In these cases rcu is not needed.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f2ea68cf42aafdd93393b6b8b20fc3c2b5f4390c",
      "tree": "00b025b91898ff32dba742b5075dd290fec4dc91",
      "parents": [
        "d6e2215052810678bc9782fd980b52706fc71f50"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:25 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:25 2008 +1000"
      },
      "message": "md: only count actual openers as access which prevent a \u0027stop\u0027\n\nOpen isn\u0027t the only thing that increments -\u003eactive.  e.g. reading\n/proc/mdstat will increment it briefly.  So to avoid false positives\nin testing for concurrent access, introduce a new counter that counts\njust the number of times the md device it open.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d6e2215052810678bc9782fd980b52706fc71f50",
      "tree": "63f355d1e072b6c4c48913e114c0154a5b08d792",
      "parents": [
        "f233ea5c9e0d8b95e4283bf6a3436b88f6fd3586"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Mon Jul 21 17:05:25 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:25 2008 +1000"
      },
      "message": "md: linear: Make array_size sector-based and rename it to array_sectors.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f233ea5c9e0d8b95e4283bf6a3436b88f6fd3586",
      "tree": "8a36b621de46da23f3957c6e3ea4d653c2937544",
      "parents": [
        "15f4a5fdf3aa07b53f6a7969664741db5882e485"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Mon Jul 21 17:05:22 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:22 2008 +1000"
      },
      "message": "md: Make mddev-\u003earray_size sector-based.\n\nThis patch renames the array_size field of struct mddev_s to array_sectors\nand converts all instances to use units of 512 byte sectors instead of 1k\nblocks.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "15f4a5fdf3aa07b53f6a7969664741db5882e485",
      "tree": "1bd897fbbcf512d3c0c3b2b55633ae590558f314",
      "parents": [
        "d07bd3bcc456228b56a790897162a634691fed9b"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Mon Jul 21 14:42:12 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 14:42:12 2008 +1000"
      },
      "message": "md: Make super_type-\u003erdev_size_change() take sector-based sizes.\n\nAlso, change the type of the size parameter from unsigned long long to\nsector_t and rename it to num_sectors.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d07bd3bcc456228b56a790897162a634691fed9b",
      "tree": "cabb0feee45a7b3383fff4202adc35793c8bdbb1",
      "parents": [
        "d7027458d68b2f1752a28016dcf2ffd0a7e8f567"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Mon Jul 21 14:42:07 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 14:42:07 2008 +1000"
      },
      "message": "md: Fix check for overlapping devices.\n\nThe checks in overlaps() expect all parameters either in block-based\nor sector-based quantities. However, its single caller passes two\nrdev-\u003edata_offset arguments as well as two rdev-\u003esize arguments, the\nformer being sector counts while the latter are measured in 1K blocks.\n\nThis could cause rdev_size_store() to accept an invalid size from user\nspace. Fix it by passing only sector-based quantities to overlaps().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d7027458d68b2f1752a28016dcf2ffd0a7e8f567",
      "tree": "03bb7d75f4951eba4eff21926d1ce71c6d728260",
      "parents": [
        "7e93a89251d4ed7bd4475db62616ccd03ddfd01a"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Sat Jul 12 10:37:50 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 14:22:18 2008 +1000"
      },
      "message": "md: Tidy up rdev_size_store a bit:\n\n - used strict_strtoull in place of simple_strtoull\n - use my_mddev in place of rdev-\u003emddev (they have the same value)\nand more significantly,\n - don\u0027t adjust mddev-\u003esize to fit, rather reject changes which make\n   rdev-\u003esize smaller than mddev-\u003esize\n\nAdjusting mddev-\u003esize is a hangover from bind_rdev_to_array which\ndoes a similar thing.  But it really is a better design to insist that\nmddev-\u003esize is set as required, then the rdev-\u003esizes are set to allow\nfor that.  The previous way invites confusion.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "89a93f2f4834f8c126e8d9dd6b368d0b9e21ec3d",
      "tree": "e731456fec0cab1225ad3e806dc8d3efefa0a78b",
      "parents": [
        "260eddf4391f162a69d1d163729249635fa7a78f",
        "fe9233fb6914a0eb20166c967e3020f7f0fba2c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (102 commits)\n  [SCSI] scsi_dh: fix kconfig related build errors\n  [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of\n  [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h\n  [SCSI] make struct scsi_{host,target}_type static\n  [SCSI] fix locking in host use of blk_plug_device()\n  [SCSI] zfcp: Cleanup external header file\n  [SCSI] zfcp: Cleanup code in zfcp_erp.c\n  [SCSI] zfcp: zfcp_fsf cleanup.\n  [SCSI] zfcp: consolidate sysfs things into one file.\n  [SCSI] zfcp: Cleanup of code in zfcp_aux.c\n  [SCSI] zfcp: Cleanup of code in zfcp_scsi.c\n  [SCSI] zfcp: Move status accessors from zfcp to SCSI include file.\n  [SCSI] zfcp: Small QDIO cleanups\n  [SCSI] zfcp: Adapter reopen for large number of unsolicited status\n  [SCSI] zfcp: Fix error checking for ELS ADISC requests\n  [SCSI] zfcp: wait until adapter is finished with ERP during auto-port\n  [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver\n  [SCSI] sg: Add target reset support\n  [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC\n  [SCSI] sd: Move scsi_disk() accessor function to sd.h\n  ...\n"
    },
    {
      "commit": "fe9233fb6914a0eb20166c967e3020f7f0fba2c9",
      "tree": "45d6f25301e41ff9323f2eee20fce6ae341cda7f",
      "parents": [
        "d7f305e9a08040649b0800245e67708df58cdb55"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri May 23 18:16:40 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Jul 15 09:16:43 2008 -0500"
      },
      "message": "[SCSI] scsi_dh: fix kconfig related build errors\n\nDo not automatically \"select\" SCSI_DH for dm-multipath. If SCSI_DH\ndoesn\u0027t exist,just do not allow  hardware handlers to be used.\n\nHandle SCSI_DH being a module also. Make sure it doesn\u0027t allow DM_MULTIPATH\nto be compiled in when SCSI_DH is a module.\n\n[jejb: added comment for Kconfig syntax]\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "dddec01eb8e2b56267b37a6f9f0997a64b4e0b2a",
      "tree": "b6d8bfbce9abd105384b9d116499afbe306b9c22",
      "parents": [
        "7daf705f362e349983e92037a198b8821db198af",
        "32502b8413a77b54b9e19809404109590c32dfb7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:15:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:15:14 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block: (37 commits)\n  splice: fix generic_file_splice_read() race with page invalidation\n  ramfs: enable splice write\n  drivers/block/pktcdvd.c: avoid useless memset\n  cdrom: revert commit 22a9189 (cdrom: use kmalloced buffers instead of buffers on stack)\n  scsi: sr avoids useless buffer allocation\n  block: blk_rq_map_kern uses the bounce buffers for stack buffers\n  block: add blk_queue_update_dma_pad\n  DAC960: push down BKL\n  pktcdvd: push BKL down into driver\n  paride: push ioctl down into driver\n  block: use get_unaligned_* helpers\n  block: extend queue_flag bitops\n  block: request_module(): use format string\n  Add bvec_merge_data to handle stacked devices and -\u003emerge_bvec()\n  block: integrity flags can\u0027t use bit ops on unsigned short\n  cmdfilter: extend default read filter\n  sg: fix odd style (extra parenthesis) introduced by cmd filter patch\n  block: add bounce support to blk_rq_map_user_iov\n  cfq-iosched: get rid of enable_idle being unused warning\n  allow userspace to modify scsi command filter on per device basis\n  ...\n"
    },
    {
      "commit": "0f420358e3a2abc028320ace7783e2e38cae77bf",
      "tree": "99b068212ad1dd8c5e97b151d796d66f53d1f3bb",
      "parents": [
        "b73df2d3d629aefa187a0a3574fd81455e026bc8"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:23 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:23 2008 +1000"
      },
      "message": "md: Turn rdev-\u003esb_offset into a sector-based quantity.\n\nRename it to sb_start to make sure all users have been converted.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b73df2d3d629aefa187a0a3574fd81455e026bc8",
      "tree": "87e2a32c602c99cf69c298d3ed6e145a6202b481",
      "parents": [
        "e7debaa4951b37d6c9ace4c6b984cd4805c5bfbb"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:23 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:23 2008 +1000"
      },
      "message": "md: Make calc_dev_sboffset() return a sector count.\n\nAs BLOCK_SIZE_BITS is 10 and\n\n\tMD_NEW_SIZE_SECTORS(2 * x) \u003d 2 * NEW_SIZE_BLOCKS(x),\n\nthe return value of calc_dev_sboffset() doubles. Fix up all three\ncallers accordingly.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e7debaa4951b37d6c9ace4c6b984cd4805c5bfbb",
      "tree": "9d61e2341af2161c0298c1396e6a85a1d4437eef",
      "parents": [
        "d71f9f88d74166dcdef743a057f9222d64d2d509"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:23 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:23 2008 +1000"
      },
      "message": "md: Replace calc_dev_size() by calc_num_sectors().\n\nNumber of sectors is the preferred unit for sizes of raid devices,\nso change calc_dev_size() so that it returns this unit instead of\nthe number of 1K blocks.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d71f9f88d74166dcdef743a057f9222d64d2d509",
      "tree": "af2c0a93855347bce2fc24ecffa27be035bc8ef0",
      "parents": [
        "df5b20cf68f9c90204c5fd36b7b090635cee3cdf"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:22 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:22 2008 +1000"
      },
      "message": "md: Make update_size() take the number of sectors.\n\nChanging the internal representations of sizes of raid devices\nfrom 1K blocks to sector counts (512B units) is desirable because\nit allows to get rid of many divisions/multiplications and unnecessary\ncasts that are present in the current code.\n\nThis patch is a first step in this direction. It replaces the old\n1K-based \"size\" argument of update_size() by \"num_sectors\" and\nfixes up its two callers.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "df5b20cf68f9c90204c5fd36b7b090635cee3cdf",
      "tree": "d3d5690609085352485e8ddcc1650833df4be224",
      "parents": [
        "26ef379f53993b1da3c19b63257cd47e1d9cd672"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:22 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:22 2008 +1000"
      },
      "message": "md: Better control of when do_md_stop is allowed to stop the array.\n\ndo_md_stop check the number of active users before allowing the array\nto be stopped.\nTwo problems:\n  1/ it assumes the request is coming through an open file descriptor\n     (via ioctl) so it allows for that.  This is not always the case.\n  2/ it doesn\u0027t do the check it the array hasn\u0027t been activated.\n     This is not good for cases when we use an inactive array to hold\n     some devices in a container.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "26ef379f53993b1da3c19b63257cd47e1d9cd672",
      "tree": "c02f2acfb14c6b8294e101f53fb10a9d978844bb",
      "parents": [
        "80fab1d77b2852711917baa437e4fdab31c21fef"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:21 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:21 2008 +1000"
      },
      "message": "md: get_disk_info(): Don\u0027t convert between signed and unsigned and back.\n\nThe current code copies a signed int from user space, converts it to\nunsigned and passes the unsigned value to find_rdev_nr() which expects\na signed value. Simply pass the signed value from user space directly.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "80fab1d77b2852711917baa437e4fdab31c21fef",
      "tree": "ee5fb082245d49780a890c09a3ba23c714fc4359",
      "parents": [
        "ebc243372842a81dddbe00bd047a25b8ee7d8b87"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:21 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:21 2008 +1000"
      },
      "message": "md: Simplify restart_array().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ebc243372842a81dddbe00bd047a25b8ee7d8b87",
      "tree": "8c362c91d8628b1362b7abb8abcd0a1e7ca7803c",
      "parents": [
        "ce0c8e05f8ef93d991d665aade8c4bf35806ea1a"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:20 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:20 2008 +1000"
      },
      "message": "md: alloc_disk_sb(): Return proper error value.\n\nIf alloc_page() fails, ENOMEM is a more suitable error value\nthan EINVAL.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ce0c8e05f8ef93d991d665aade8c4bf35806ea1a",
      "tree": "e3fb5bb279452161aca0351993f76b98ffbbb662",
      "parents": [
        "05710466c9ef2e3ee55166934c801a2393c32f80"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:20 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:20 2008 +1000"
      },
      "message": "md: Simplify sb_equal().\n\nThe only caller of sb_equal() tests the return value against\nzero, so it\u0027s OK to return the negated return value of memcmp().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "05710466c9ef2e3ee55166934c801a2393c32f80",
      "tree": "a0560ff7920fcb4de9af3b054dc40033b429701f",
      "parents": [
        "0306d5efbf897c7d410fd30b89fc7d97372aa501"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jul 11 22:02:20 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Fri Jul 11 22:02:20 2008 +1000"
      },
      "message": "md: Simplify uuid_equal().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2283af5b0b99565f516eacd756df2b1ddf9f4f85",
      "tree": "4930014b56cb1773e175cbeb8e7833584e3074bb",
      "parents": [
        "6329d3021bcfa9038621e6e917d98929421d8ec8",
        "7a1fc53c5adb910751a9b212af90302eb4ffb527"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 10 09:49:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 10 09:49:46 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.26\u0027 of git://neil.brown.name/md\n\n* \u0027for-2.6.26\u0027 of git://neil.brown.name/md:\n  md: ensure all blocks are uptodate or locked when syncing\n"
    },
    {
      "commit": "7a1fc53c5adb910751a9b212af90302eb4ffb527",
      "tree": "9006ecc4323f2a55e6e16f2e19e41ec3c4c3a1ea",
      "parents": [
        "9bbbca3a0ee09293108b67835c6bdf6196d7bcb3"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Jul 10 04:54:57 2008 -0700"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 10 15:25:18 2008 +1000"
      },
      "message": "md: ensure all blocks are uptodate or locked when syncing\n\nRemove the dubious attempt to prefer \u0027compute\u0027 over \u0027read\u0027.  Not only is it\nwrong given commit c337869d (md: do not compute parity unless it is on a failed\ndrive), but it can trigger a BUG_ON in handle_parity_checks5().\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "35020f1a06edade6f52fc8349e150d95cdf7fd90",
      "tree": "97941f31c713ddb4a5882a81af891fc1e9cc92e3",
      "parents": [
        "7f6ce7692807ad60d9341e41d565a7888a5bc2dd"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Sun Mar 23 15:10:33 2008 +0100"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:53:20 2008 +1000"
      },
      "message": "md: sb_equal(): Fix misleading printk.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7f6ce7692807ad60d9341e41d565a7888a5bc2dd",
      "tree": "35ba61e02f4287c93c43a4c789000f67aed2b410",
      "parents": [
        "910d8cb3f4ef2c4a5914176592d2f2bc3cd94cdd"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Sun Mar 23 18:34:54 2008 +0100"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:53:00 2008 +1000"
      },
      "message": "md: Fix a typo in the comment to cmd_match().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "910d8cb3f4ef2c4a5914176592d2f2bc3cd94cdd",
      "tree": "3f3a692af0b19088762a9f2f7327f025243fb42a",
      "parents": [
        "9687a60c78bbf5649d9acbde1e8818be4c8c8b94"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Mar 25 21:00:53 2008 +0100"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:52:45 2008 +1000"
      },
      "message": "md: Fix typo in array_state comment.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9687a60c78bbf5649d9acbde1e8818be4c8c8b94",
      "tree": "df518b5c38d064c838e9304ceca5b2dbc9d4b903",
      "parents": [
        "13e53df354caea8986df951dcb6353c823e1f858"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Mar 25 22:24:09 2008 +0100"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:52:26 2008 +1000"
      },
      "message": "md: sync_speed_show(): Trivial cleanups.\n\n- Remove superfluous parentheses.\n- Make format string match the type of the variable that is printed.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "13e53df354caea8986df951dcb6353c823e1f858",
      "tree": "16c6c2cde80cea148d467cffe7d08bfee042091e",
      "parents": [
        "2f9618ce63cb049c5587f5c650f2725c0035aa96"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Wed Mar 26 00:07:03 2008 +0100"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:52:15 2008 +1000"
      },
      "message": "md: do_md_run(): Fix misleading error message.\n\nIn case pers-\u003erun() succeeds but creating the bitmap fails, we\nprint an error message stating that pers-\u003erun() has failed.\n\nPrint this message only if pers-\u003erun() really failed.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2f9618ce63cb049c5587f5c650f2725c0035aa96",
      "tree": "87dbc733f7bc0fcbe753854055e42e1002d6f8bd",
      "parents": [
        "bb57fc64b251d2696900d8a8f25ad5272d5d9c2a"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Apr 25 18:57:58 2008 +0200"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:52:00 2008 +1000"
      },
      "message": "md: md_getgeo(): Move comment to proper position.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bb57fc64b251d2696900d8a8f25ad5272d5d9c2a",
      "tree": "62192d4c890c41e7a75307b0fcf586c7c4d00d56",
      "parents": [
        "0529613a1970fef1ba82ded431e2e2ee35b658af"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Apr 25 19:06:35 2008 +0200"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 08 10:51:29 2008 +1000"
      },
      "message": "md: md_ioctl(): Fix misleading indentation.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0529613a1970fef1ba82ded431e2e2ee35b658af",
      "tree": "63d9e89424fa5fe9aef6bf0b6f0ab63f4fe886be",
      "parents": [
        "5b1a4bf220a8f6f2650fdfdfebfda0f22f674d97",
        "b5470dc5fc18a8ff6517c3bb538d1479e58ecb02"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@notabene.brown",
        "time": "Tue Jul 08 10:13:28 2008 +1000"
      },
      "committer": {
        "name": "Neil Brown",
        "email": "neilb@notabene.brown",
        "time": "Tue Jul 08 10:13:28 2008 +1000"
      },
      "message": "Merge branch \u0027for-neil\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/md into for-next\n"
    }
  ],
  "next": "5b1a4bf220a8f6f2650fdfdfebfda0f22f674d97"
}
