)]}'
{
  "log": [
    {
      "commit": "8215d6ec5fee1e76545decea2cd73717efb5cb42",
      "tree": "54ed2c995c3b91417def0ad31368e3094f72bd81",
      "parents": [
        "0f3649a9e305ea22eb196a84a2d7520afcaa6060"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@novell.com",
        "time": "Sat Mar 06 02:32:27 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:32:27 2010 +0000"
      },
      "message": "dm table: remove unused dm_get_device range parameters\n\nRemove unused parameters(start and len) of dm_get_device()\nand fix the callers.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fb61264297ca42a2a132f0433f75ccf7fd304ac6",
      "tree": "e276ffebdb9fa13aa0d4e639c4ff30f9824c5c10",
      "parents": [
        "2bded7bd7e8b12a913b0b58167a48220560e1514"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Sat Mar 06 02:32:18 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:32:18 2010 +0000"
      },
      "message": "dm mpath: refactor pg_init\n\nThis patch pulls the pg_init path activation code out of\nprocess_queued_ios() into a new function.\n\nNo functional change.\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": "2bded7bd7e8b12a913b0b58167a48220560e1514",
      "tree": "f903c0f06b7b9a3e9fdcc347d00d44fa8290a1d0",
      "parents": [
        "d0259bf0eefc503d3c9c9ccda35033c3dd3aac30"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Sat Mar 06 02:32:13 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:32:13 2010 +0000"
      },
      "message": "dm mpath: wait for pg_init completion when suspending\n\nWhen suspending the device we must wait for all I/O to complete, but\npg-init may be still in progress even after flushing the workqueue\nfor kmpath_handlerd in multipath_postsuspend.\n\nThis patch waits for pg-init completion correctly in\nmultipath_postsuspend().\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": "d0259bf0eefc503d3c9c9ccda35033c3dd3aac30",
      "tree": "8e0a6ebf9e9509875c160369803a2b6dd2abd943",
      "parents": [
        "fce323dd68e13354071538c765b062859e6f8286"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Sat Mar 06 02:30:02 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:30:02 2010 +0000"
      },
      "message": "dm mpath: hold io until all pg_inits completed\n\nm-\u003equeue_io is set to block processing I/Os, and it needs to be kept\nwhile pg-init, which issues multiple path activations, is in progress.\nBut m-\u003equeue is cleared when a path activation completes without error\nin pg_init_done(), even while other path activations are in progress.\nThat may cause undesired -EIO on paths which are not complete activation.\n\nThis patch fixes that by not clearing m-\u003equeue_io until all path\nactivations complete.\n\n(Before the hardware handlers were moved into the SCSI layer, pg_init\nonly used one path.)\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": "fce323dd68e13354071538c765b062859e6f8286",
      "tree": "a6850c35a5d4954a81ef922eeaed2ee4d69e4b89",
      "parents": [
        "c53a381efbe3d0e0629121b3f0d2b62a0e167791"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Sat Mar 06 02:29:59 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:29:59 2010 +0000"
      },
      "message": "dm mpath: avoid storing private suspended state\n\n\u0027suspended\u0027 flag in struct multipath was introduced to check whether\nthe multipath target is in suspended state, but the same check is\ndone through dm_suspended() now, so remove the flag and related code.\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\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f7b934c8127deebf4eb56fbe4a4ae0da16b6dbcd",
      "tree": "75e4a78786f3a782142d9d686d53aac9204f5fc1",
      "parents": [
        "83c0d5d5388a8d45f7a45e0ec34adc52a78c81ad"
      ],
      "author": {
        "name": "Moger, Babu",
        "email": "Babu.Moger@lsi.com",
        "time": "Sat Mar 06 02:29:49 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:29:49 2010 +0000"
      },
      "message": "dm mpath: skip activate_path for failed paths\n\nThis patch adds two minor fixes while processing device mapper path activation.\n\nSkip failed paths while calling activate_path.  If the path is already failed\nthen activate_path will fail for sure. We don\u0027t have to call in that case. In\nsome case this might cause prolonged retries unnecessarily.\n\nChange the misleading message if the path being activated fails with SCSI_DH_NOSYS.\n\nSigned-off-by: Babu Moger \u003cbabu.moger@lsi.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "83c0d5d5388a8d45f7a45e0ec34adc52a78c81ad",
      "tree": "85a59c18293f0c14a547fdd43631b59c21d1136d",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Moger, Babu",
        "email": "Babu.Moger@lsi.com",
        "time": "Sat Mar 06 02:29:45 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:29:45 2010 +0000"
      },
      "message": "dm mpath: pass struct pgpath to pg init done\n\nThis patch removes some unnecessary argument casting. There is no\nfunctional change with this patch.\n\nPasses \u0027struct pgpath\u0027 through to pg_init_done() instead of the enclosed\n\u0027struct dm_path\u0027.\n\nTested the changes with LSI storage..\n\nCC: Chandra Seetharaman \u003cchandra.seetharaman@us.ibm.com\u003e\nSigned-off-by: Babu Moger \u003cbabu.moger@lsi.com\u003e\nAcked-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c2f3d24b783fda20618b73d65678eb5dfae31a5d",
      "tree": "0c5f266885460a4829c1f7c2083cd66004bd1ec2",
      "parents": [
        "64dbce580d5a7e89e8de20b91f80c7267cdad91d"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:27 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:27 2009 +0000"
      },
      "message": "dm mpath: reject messages when device is suspended\n\nThis patch rejects messages that can generate I/O while the device\nitself is suspended.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.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": "67a46dad25ccc8910995d8671f7ec17a6bc823cb",
      "tree": "6e5221b6fdd5ad8de5e88e2c45737f788288c6cf",
      "parents": [
        "6380f26f0424034345461cabaab9a7030d905b59"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "message": "dm mpath: prevent io from work queue while suspended\n\nReject messages that can generate I/O while the device itself\nis suspended.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nAcked-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6380f26f0424034345461cabaab9a7030d905b59",
      "tree": "cc9fbd6e8d990bf3ee2f577ae7f842a4df1d5ef6",
      "parents": [
        "c50abeb38026ea721a812cf8a9b2fac5d3b7684b"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "message": "dm mpath: add mutex to synchronize adding and flushing work\n\nAdd a mutex to allow possible creators of new work to synchronize with\nflushing work queues.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nAcked-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6df400ab64c68fc4072a13019fc20fd7e3d51303",
      "tree": "69a9e9060b6c8ad87acc3514d4c8981767efb3b5",
      "parents": [
        "7c6664114b7342a36f14a6836564e865669b3cea"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:19 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:19 2009 +0000"
      },
      "message": "dm mpath: flush workqueues before suspend completes\n\nThis patch stops the remaining dm-mpath activity during the suspend\nsequence by flushing workqueues in postsuspend function.\n\nThe current dm-mpath target may not be quiet even after suspend completes\nbecause some workqueues (e.g. device_handler\u0027s work, event handling)\nare not flushed during the suspend sequence, even though suspended\ndevices/targets are supposed to be quiet in this state.\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": "3ae31f6a7b6e442fc6a92f29330fbad230dc3992",
      "tree": "9ca152ac3412de2917c0486b64898e6a75f853d9",
      "parents": [
        "42e62a74377bcbb526565a31aa18da8f712b93ee"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Wed Oct 21 09:22:46 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:46 2009 -0600"
      },
      "message": "[SCSI] scsi_dh: Change the scsidh_activate interface to be asynchronous\n\nMake scsi_dh_activate() function asynchronous, by taking in two additional\nparameters, one is the callback function and the other is the data to call\nthe callback function with.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "2bfd2e1337f0d8bb6ff45ce12934c45b83d70ee0",
      "tree": "2d5c570e8068e2bd8ec0491d37c812a0846e10c4",
      "parents": [
        "14d9cb5f760c86b3a8f686909465982231c06627"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Aug 03 12:42:45 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:15 2009 -0500"
      },
      "message": "[SCSI] scsi_dh: Use scsi_dh_set_params() in multipath.\n\nUse scsi_dh_set_params() set parameters provided. Save the parameters in\nparse_hw_handler() and use it in parse_path().\n\nReported-by: Eddie Williams \u003cEddie.Williams@steeleye.com\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nTested-by: Eddie Williams \u003cEddie.Williams@steeleye.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "5dea271b6d87bd1d79a59c1d5baac2596a841c37",
      "tree": "c85bcee4f90729927285fc282c6df94bf18d023d",
      "parents": [
        "a732c207d19e899845ae47139708af898daaf9fd"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jul 23 20:30:42 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 23 20:30:42 2009 +0100"
      },
      "message": "dm table: pass correct dev area size to device_area_is_valid\n\nIncorrect device area lengths are being passed to device_area_is_valid().\n\nThe regression appeared in 2.6.31-rc1 through commit\n754c5fc7ebb417b23601a6222a6005cc2e7f2913.\n\nWith the dm-stripe target, the size of the target (ti-\u003elen) was used\ninstead of the stripe_width (ti-\u003elen/#stripes).  An example of a\nconsequent incorrect error message is:\n\n  device-mapper: table: 254:0: sdb too small for target\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f40c67f0f7e2767f80f7cbcbc1ab86c4113c202e",
      "tree": "e8a20f3ceac54ac6edd0f25ffa95c0216a949c52",
      "parents": [
        "523d9297d43cce3fa6de6474b7674329e98743b1"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Mon Jun 22 10:12:37 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:37 2009 +0100"
      },
      "message": "dm mpath: change to be request based\n\nThis patch converts dm-multipath target to request-based from bio-based.\n\nBasically, the patch just converts the I/O unit from struct bio\nto struct request.\nIn the course of the conversion, it also changes the I/O queueing\nmechanism.  The change in the I/O queueing is described in details\nas follows.\n\nI/O queueing mechanism change\n-----------------------------\nIn I/O submission, map_io(), there is no mechanism change from\nbio-based, since the clone request is ready for retry as it is.\nHowever, in I/O complition, do_end_io(), there is a mechanism change\nfrom bio-based, since the clone request is not ready for retry.\n\nIn do_end_io() of bio-based, the clone bio has all needed memory\nfor resubmission.  So the target driver can queue it and resubmit\nit later without memory allocations.\nThe mechanism has almost no overhead.\n\nOn the other hand, in do_end_io() of request-based, the clone request\ndoesn\u0027t have clone bios, so the target driver can\u0027t resubmit it\nas it is.  To resubmit the clone request, memory allocation for\nclone bios is needed, and it takes some overheads.\nTo avoid the overheads just for queueing, the target driver doesn\u0027t\nqueue the clone request inside itself.\nInstead, the target driver asks dm core for queueing and remapping\nthe original request of the clone request, since the overhead for\nqueueing is just a freeing memory for the clone request.\n\nAs a result, the target driver doesn\u0027t need to record/restore\nthe information of the original request for resubmitting\nthe clone request.  So dm_bio_details in dm_mpath_io is removed.\n\nmultipath_busy()\n---------------------\nThe target driver returns \"busy\", only when the following case:\n  o The target driver will map I/Os, if map() function is called\n  and\n  o The mapped I/Os will wait on underlying device\u0027s queue due to\n    their congestions, if map() function is called now.\n\nIn other cases, the target driver doesn\u0027t return \"busy\".\nOtherwise, dm core will keep the I/Os and the target driver can\u0027t\ndo what it wants.\n(e.g. the target driver can\u0027t map I/Os now, so wants to kill I/Os.)\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\nAcked-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "af4874e03ed82f050d5872d8c39ce64bf16b5c38",
      "tree": "38aa5dee43b4bb7a369995d4f38dee992cb051e0",
      "parents": [
        "1197764e403d97231eb6da2b1e16f511a7fd3101"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Mon Jun 22 10:12:33 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:33 2009 +0100"
      },
      "message": "dm target:s introduce iterate devices fn\n\nAdd .iterate_devices to \u0027struct target_type\u0027 to allow a function to be\ncalled for all devices in a DM target.  Implemented it for all targets\nexcept those in dm-snap.c (origin and snapshot).\n\n(The raid1 version number jumps to 1.12 because we originally reserved\n1.1 to 1.11 for \u0027block_on_error\u0027 but ended up using \u0027handle_errors\u0027\ninstead.)\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: martin.petersen@oracle.com\n"
    },
    {
      "commit": "02ab823fd1a27d193bda06b74fdad685a20a3e5e",
      "tree": "04b3db6e494f483fef34a55e487e88f6d7c585a5",
      "parents": [
        "2bd023452592e5f5cf90dd426cc39b7632b15b76"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Mon Jun 22 10:12:27 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:27 2009 +0100"
      },
      "message": "dm mpath: add start_io and nr_bytes to path selectors\n\nThis patch makes two additions to the dm path selector interface for\ndynamic load balancers:\n  o a new hook, start_io()\n  o a new parameter \u0027nr_bytes\u0027 to select_path()/start_io()/end_io()\n    to pass the size of the I/O\n\nstart_io() is called when a target driver actually submits I/O\nto the selected path.\nPath selectors can use it to start accounting of the I/O.\n(e.g. counting the number of in-flight I/Os.)\nThe start_io hook is based on the patch posted by Stefan Bader:\nhttps://www.redhat.com/archives/dm-devel/2005-October/msg00050.html\n\nnr_bytes, the size of the I/O, is so path selectors can take the\nsize of the I/O into account when deciding which path to use.\ndm-service-time uses it to estimate service time, for example.\n(Added the nr_bytes member to dm_mpath_io instead of using existing\n details.bi_size, since request-based dm patch deletes it.)\n\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8627921fa2ef6d40fd9b787e163ba3a9ff8f471d",
      "tree": "a34175f655e47785104b204e1b461baa8d10ecce",
      "parents": [
        "c927259e34e518d913d86f51c71b786a513f94d6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jun 22 10:12:24 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:24 2009 +0100"
      },
      "message": "dm mpath: support barriers\n\nFlush support for dm-multipath target.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "53b351f972a882ea8b6cdb19602535f1057c884a",
      "tree": "0a3736a570dc7ff3c6ebf0993950a36a9784b142",
      "parents": [
        "a72986c562eeec3f7b992198c168f0f41606fe53"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jun 22 10:12:13 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:13 2009 +0100"
      },
      "message": "dm mpath: flush keventd queue in destructor\n\nThe commit fe9cf30eb8186ef267d1868dc9f12f2d0f40835a moves dm table event\nsubmission from kmultipath queue to kernel kevent queue to avoid a\ndeadlock.\n\nThere is a possibility of race condition because kevent queue is not flushed\nin the multipath destructor. The scenario is:\n- some event happens and is queued to keventd\n- keventd thread is delayed due to scheuling latency or some other work\n- multipath device is destroyed\n- keventd now attempts to process work_struct that is residing in already\n  released memory.\n\nThe patch flushes the keventd queue in multipath constructor.\nI\u0027ve already fixed similar bug in dm-raid1.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "e54f77ddda72781ec1c1696b21aabd6a30cbb7c6",
      "tree": "9ba727373125fce5e75a02ac1b67b2b1f894c81e",
      "parents": [
        "a0cf7ea9549ec60988369f90e5c0f855f08abac9"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Jun 22 10:12:12 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:12 2009 +0100"
      },
      "message": "dm mpath: call activate fn for each path in pg_init\n\nFixed a problem affecting reinstatement of passive paths.\n\nBefore we moved the hardware handler from dm to SCSI, it performed a pg_init\nfor a path group and didn\u0027t maintain any state about each path in hardware\nhandler code.\n\nBut in SCSI dh, such state is now maintained, as we want to fail I/O early on a\npath if it is not the active path.\n\nAll the hardware handlers have a state now and set to active or some form of\ninactive.  They have prep_fn() which uses this state to fail the I/O without\nit ever being sent to the device.\n\nSo in effect when dm-multipath calls scsi_dh_activate(), activate is\nsent to only one path and the \"state\" of that path is changed appropriately\nto \"active\" while other paths in the same path group are never changed\nas they never got an \"activate\".\n\nIn order make sure all the paths in a path group gets their state set\nproperly when a pg_init happens, we need to call scsi_dh_activate() on\nall paths in a path group.\n\nDoing this at the hardware handler layer is not a good option as we\nwant the multipath layer to define the relationship between path and path\ngroups and not the hardware handler.\n\nAttached patch sends an \"activate\" on each path in a path group when a\npath group is switched. It also sends an activate when a path is reinstated.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a0cf7ea9549ec60988369f90e5c0f855f08abac9",
      "tree": "9a073e2360afebe6485ac3a78c796627fc9e80b2",
      "parents": [
        "4d89b7b4e4726893453d0fb4ddbb5b3e16353994"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Jun 22 10:12:11 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:11 2009 +0100"
      },
      "message": "dm mpath: change attached scsi_dh\n\nWhen specifying a different hardware handler via multipath\nfeatures we should be able to override the built-in defaults.\n\nThe problem here is the hardware table from scsi_dh is compiled\nin and cannot be changed from userland. The multipath.conf OTOH\nis purely user-defined and, what\u0027s more, the user might have a valid\nreason for modifying it.\n(EG EMC Clariion can well be run in PNR mode even though ALUA is\nactive, or the user might want to try ALUA on any as-of-yet unknown\ndevices)\n\nSo _not_ allowing multipath to override the device handler setting\nwill just add to the confusion and makes error tracking even more\ndifficult.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e094f4f15f5169526c7200b9bde44b900548a81e",
      "tree": "5ca573d45371779a183276066578bed1f38f11c6",
      "parents": [
        "0e0497c0c017664994819f4602dc07fd95896c52"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jun 22 10:12:10 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:10 2009 +0100"
      },
      "message": "dm mpath: validate hw_handler argument count\n\nFix arg count parsing error in hw handlers.\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0e0497c0c017664994819f4602dc07fd95896c52",
      "tree": "d6a70d29e5eae6ca9cf3ca197db9f0ab8a3b5e51",
      "parents": [
        "f234012f52a37e48f2330e1ca2df69800e797c3b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jun 22 10:08:02 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:08:02 2009 +0100"
      },
      "message": "dm mpath: validate table argument count\n\nThe parser reads the argument count as a number but doesn\u0027t check that\nsufficient arguments are supplied. This command triggers the bug:\n\ndmsetup create mpath --table \"0 `blockdev --getsize /dev/mapper/cr0`\n    multipath 0 0 2 1 round-robin 1000 0 1 1 /dev/mapper/cr0\n    round-robin 0 1 1 /dev/mapper/cr1 1000\"\nkernel BUG at drivers/md/dm-mpath.c:530!\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8f3d8ba20e67991b531e9c0227dcd1f99271a32c",
      "tree": "337efd46f067ce3b7eeab0c3627b02a7edef4afd",
      "parents": [
        "0882e8dd3aad33eca41696d463bb896e6c8817eb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 07 19:55:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 08:28:09 2009 +0200"
      },
      "message": "block: move bio list helpers into bio.h\n\nIt\u0027s used by DM and MD and generally useful, so move the bio list\nhelpers into bio.h.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fe9cf30eb8186ef267d1868dc9f12f2d0f40835a",
      "tree": "357db984073d7362b6c31dd431f77768c65800bf",
      "parents": [
        "784aae735d9b0bba3f8b9faef4c8b30df3bf0128"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:13 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:13 2009 +0000"
      },
      "message": "dm mpath: move trigger_event to system workqueue\n\nThe same workqueue is used both for sending uevents and processing queued I/O.\nDeadlock has been reported in RHEL5 when sending a uevent was blocked waiting\nfor the queued I/O to be processed.  Use scheduled_work() for the asynchronous\nuevents instead.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "10d3bd09a3c25df114f74f7f86e1b58d070bef32",
      "tree": "a44e2fe5ccc5950b87a1d31849e5f0ac24fdcc16",
      "parents": [
        "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "message": "dm: consolidate target deregistration error handling\n\nChange dm_unregister_target to return void and use BUG() for error\nreporting.\n\ndm_unregister_target can only fail because of programming bug in the\ntarget driver. It can\u0027t fail because of user\u0027s behavior or disk errors.\n\nThis patch changes unregister_target to return void and use BUG if\nsomeone tries to unregister non-registered target or unregister target\nthat is in use.\n\nThis patch removes code duplication (testing of error codes in all dm\ntargets) and reports bugs in just one place, in dm_unregister_target. In\nsome target drivers, these return codes were ignored, which could lead\nto a situation where bugs could be missed.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "14e98c5ca8bed825f65cbf11cb0ffd2c09dac2f4",
      "tree": "62cb7234d156c0523584343796d0e3c89d7a80bf",
      "parents": [
        "b81aa1c79201cb424114fd198607951900babe18"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Nov 13 23:39:06 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Nov 13 23:39:06 2008 +0000"
      },
      "message": "dm mpath: warn if args ignored\n\nCurrently dm ignores the parameters provided to hardware handlers\nwithout providing any notifications to the user.\n\nThis patch just prints a warning message so that the user knows that\nthe arguments are ignored.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b81aa1c79201cb424114fd198607951900babe18",
      "tree": "f05501c670fd9919779b6759e2ff816f574186fe",
      "parents": [
        "6edebdee48729ab4ba564bbfcb8dbf6a6cd68a39"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Nov 13 23:39:00 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Nov 13 23:39:00 2008 +0000"
      },
      "message": "dm mpath: avoid attempting to activate null path\n\nPath activation code is called even when the pgpath is NULL. This could\nlead to a panic in activate_path(). Such a panic is seen in -rt kernel.\n\nThis problem has been there before the pg_init() was moved to a\nworkqueue.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "22484856402bfa1ff3defe47f6029ab0418240d9",
      "tree": "140c67bf59674da350a7b51765d6ff7eb101b597",
      "parents": [
        "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47",
        "56b26add02b4bdea81d5e0ebda60db1fe3311ad4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev: (66 commits)\n  [PATCH] kill the rest of struct file propagation in block ioctls\n  [PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET\n  [PATCH] get rid of blkdev_locked_ioctl()\n  [PATCH] get rid of blkdev_driver_ioctl()\n  [PATCH] sanitize blkdev_get() and friends\n  [PATCH] remember mode of reiserfs journal\n  [PATCH] propagate mode through swsusp_close()\n  [PATCH] propagate mode through open_bdev_excl/close_bdev_excl\n  [PATCH] pass fmode_t to blkdev_put()\n  [PATCH] kill the unused bsize on the send side of /dev/loop\n  [PATCH] trim file propagation in block/compat_ioctl.c\n  [PATCH] end of methods switch: remove the old ones\n  [PATCH] switch sr\n  [PATCH] switch sd\n  [PATCH] switch ide-scsi\n  [PATCH] switch tape_block\n  [PATCH] switch dcssblk\n  [PATCH] switch dasd\n  [PATCH] switch mtd_blkdevs\n  [PATCH] switch mmc\n  ...\n"
    },
    {
      "commit": "586e80e6ee0d137c7d79fbae183bb37bc60ee97e",
      "tree": "1f3cc124ed6ad93abd4c14f9c8900333c6cba6fb",
      "parents": [
        "d63a5ce3c0d25c96bdadc78792e5b48b846e899d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Oct 21 17:44:59 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 21 17:44:59 2008 +0100"
      },
      "message": "dm: remove dm header from targets\n\nChange #include \"dm.h\" to #include \u003clinux/device-mapper.h\u003e in all targets.\nTargets should not need direct access to internal DM structures.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "633a08b81206122469365b4c72eaeb71f04f2cb4",
      "tree": "9cd30507efd30645d30d351c7ad0d5966f806532",
      "parents": [
        "a0eb62a0a4470fef5a5f41e7f1442fdd667220ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 29 20:34:12 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:26 2008 -0400"
      },
      "message": "[PATCH] introduce __blkdev_driver_ioctl()\n\nAnalog of blkdev_driver_ioctl() with sane arguments.  For\nnow uses fake struct file, by the end of the series it won\u0027t\nand blkdev_driver_ioctl() will become a wrapper around it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "647b3d0084158c47b1aea8f34d13cab9cd0a5b49",
      "tree": "c36d61d8c85c4e0e6160153ab99a6e7568b44a70",
      "parents": [
        "1bddd9e6453ef1c7bc5b6f4ddbf7d31f4aee7a44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Aug 28 22:15:59 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:18 2008 -0400"
      },
      "message": "[PATCH] lose unused arguments in dm ioctl callbacks\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6000a368cd8e6da1caf101411bdb494cd6fb8b09",
      "tree": "4cd3333af00182e915aa96ffa49069f5f76976dc",
      "parents": [
        "056a44834950ffa51fafa6c76a720fa32e86851a"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Aug 19 18:45:30 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:52 2008 -0400"
      },
      "message": "[SCSI] block: separate failfast into multiple bits.\n\nMultipath is best at handling transport errors. If it gets a device\nerror then there is not much the multipath layer can do. It will just\naccess the same device but from a different path.\n\nThis patch breaks up failfast into device, transport and driver errors.\nThe multipath layers (md and dm mutlipath) only ask the lower levels to\nfast fail transport errors. The user of failfast, read ahead, will ask\nto fast fail on all errors.\n\nNote that blk_noretry_request will return true if any failfast bit\nis set. This allows drivers that do not support the multipath failfast\nbits to continue to fail on any failfast error like before. Drivers\nlike scsi that are able to fail fast specific errors can check\nfor the specific fail fast type. In the next patch I will convert\nscsi.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\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": "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": "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": "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": "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": "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": "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": "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": "2651f5d7d3bc5120a439e498f131e4d731f99b3e",
      "tree": "dbfe481b0ce8b37aa1c02abef2dd53a276cb3529",
      "parents": [
        "bab7cfc733f4453a502b7491b9ee37b091440ec4"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu May 01 14:50:28 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jun 05 09:23:41 2008 -0500"
      },
      "message": "[SCSI] scsi_dh: Remove dm_pg_init_complete\n\nThis patch just removes the dm layer\u0027s path initialization completion\nroutine.  This is separated from the other patch(scsi_dh: Use SCSI\ndevice handler in dm-multipath) Just to make that patch more readable.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bab7cfc733f4453a502b7491b9ee37b091440ec4",
      "tree": "147e7f4bf901e6cfe55a3e2e08d5f3b174d88ccd",
      "parents": [
        "cfae5c9bb66325cd32d5f2ee41f14749f062a53c"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu May 01 14:50:22 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jun 05 09:23:41 2008 -0500"
      },
      "message": "[SCSI] scsi_dh: Add a single threaded workqueue for initializing paths\n\nBefore this patch set (SCSI hardware handlers), initialization of a\npath was done asynchronously. Doing that requires a workqueue in each\ndevice/hardware handler module and leads to unneccessary complication\nin the device handler code, making it difficult to read the code and\nfollow the state diagram.\n\nMoving that workqueue to this level makes the device handler code simpler.\nHence, the workqueue is moved to dm level.\n\nA new workqueue is added instead of adding it to the existing workqueue\n(kmpathd) for the following reasons:\n\t1. Device activation has to happen faster, stacking them along\n\t   with the other workqueue might lead to unnecessary delay\n\t   in the activation of the path.\n\t2. The effect could be felt the other way too. i.e the current\n\t   events that are handled by the existing workqueue might get\n\t   a delayed response.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "cfae5c9bb66325cd32d5f2ee41f14749f062a53c",
      "tree": "abceb01b7053f77366b37331e9b4f8408c89df60",
      "parents": [
        "5e7dccad3621f6e2b572f309cf830a2c902cae80"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu May 01 14:50:11 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jun 05 09:23:41 2008 -0500"
      },
      "message": "[SCSI] scsi_dh: Use SCSI device handler in dm-multipath\n\nThis patch converts dm-mpath to use scsi device handlers instead of\ndm\u0027s hardware handlers.\n\nThis patch does not add any new functionality. Old behaviors remain and\nuserspace tools work as is except that arguments supplied with hardware\nhandler are ignored.\n\nOne behavioral exception is: Activation of a path is synchronous in this\npatch, opposed to the older behavior of being asynchronous (changed in\npatch 07: scsi_dh: Add a single threaded workqueue for initializing a path)\n\nNote: There is no need to get a reference for the device handler module\n(as it was done in the dm hardware handler case) here as the reference\nis held when the device was first found. Instead we check and make sure\nthat support for the specified device is present at table load time.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "009cd09042fbd095e708b412ad7870fb421fa2f0",
      "tree": "7b3a431d8201305142de75e4353a572b3e0a8c79",
      "parents": [
        "0149e57fedcaca8905b6cca091fcb0915ff3e27d"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:35 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:35 2008 +0000"
      },
      "message": "dm mpath: add missing static\n\nA static declaration missing.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b15546f942c09fe55ad55af31841eecacbf4ffd1",
      "tree": "305ddd93c48311518bde9cf9e0ef310bb3b0824a",
      "parents": [
        "7a8c3d3b92883798e4ead21dd48c16db0ec0ff6f"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Fri Oct 19 22:48:02 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:27 2007 +0100"
      },
      "message": "dm mpath: send uevents\n\nThis patch adds calls to dm_path_event for a failed path and a reinstated\npath.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c9e45581ad530cc1ca4b5d4add44a5b625234ada",
      "tree": "3d5ddc7762e9c3d3da78f8c4d98047f3f108dd98",
      "parents": [
        "636d5786c45414fd8e48f2a2325be072274fdba4"
      ],
      "author": {
        "name": "Dave Wysochanski",
        "email": "dwysocha@redhat.com",
        "time": "Fri Oct 19 22:47:53 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:18 2007 +0100"
      },
      "message": "dm mpath: add retry pg init\n\nThis patch allows a failed path group initialisation command to be retried.\n\nIt adds a generic MP_RETRY flag and a \"pg_init_retries\" feature to\ndevice-mapper multipath which limits the number of retries.\n\n1. A hw handler sends a path initialization command to the storage and\nthe command completes with an error code indicating the command\nshould be retried.\n\n2. The hardware handler calls dm_pg_init_complete() with MP_RETRY\nset in err_flags to ask the dm multipath core to retry.\n\n3. If the retry limit has not been exceeded, pg_init() is retried.\nOtherwise fail_path() is called.\n\nIf you are using the userspace multipath-tools or device-mapper-multipath\npackage, you can set pg_init_retries in the \u0027device\u0027 section of your\n/etc/multipath.conf file. For example:\n\nfeatures                \"2 pg_init_retries 7\"\n\nThe number of PG retries attempted is reported in the \u0027dmsetup status\u0027 output.\n\nSigned-off-by: Dave Wysochanski \u003cdwysocha@redhat.com\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nAcked-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "07a83c47cfc00ba5f0f090ccddd3a0703be0eec9",
      "tree": "a17d8028f76ba242a04f3c0678644f93cc7eee7d",
      "parents": [
        "943317efdbc295e8a28df3f5cbd549d066ee8b4a"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "shbader@de.ibm.com",
        "time": "Thu Jul 12 17:28:33 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: disable barriers\n\nThis patch causes device-mapper to reject any barrier requests.  This is done\nsince most of the targets won\u0027t handle this correctly anyway.  So until the\nsituation improves it is better to reject these requests at the first place.\nSince barrier requests won\u0027t get to the targets, the checks there can be\nremoved.\n\nCc: stable@kernel.org\nSigned-off-by: Stefan Bader \u003cshbader@de.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cd3312434cd1f29bee6bff53bf2790d733ad2a2",
      "tree": "fc833f871f1b4d320ee5ab365a3efb3e03b278db",
      "parents": [
        "ac818646d4be79123ad8dc5f1c4da8575d4960f8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:27:01 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: remove duplicate module name from error msgs\n\nRemove explicit module name from messages as the macro now includes it\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "028867ac28e51afc834a5931e7545c022557eded",
      "tree": "0a268776ac68f26c86a28416b35a60ab54e3fb94",
      "parents": [
        "79e15ae424afa0a40b1a0c4478046d6ba0b71e20"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:26:32 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: use kmem_cache macro\n\nUse new KMEM_CACHE() macro and make the newly-exposed structure names more\nmeaningful.  Also remove some superfluous casts and inlines (let a modern\ncompiler be the judge).\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79eb885c96b5ccf8bbffd0dddc4c15a5dd436a1c",
      "tree": "1bae1cea97907415f19a0009aaa8e11e63fef34c",
      "parents": [
        "46b477306afcd0516924b26792c7a42f4dbfa9f0"
      ],
      "author": {
        "name": "Edward Goggin",
        "email": "egoggin@emc.com",
        "time": "Wed May 09 02:32:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm mpath: log device name\n\nMake the mapped device structure accessible to hardware handlers so error\nmessages can include the device name.\n\nSigned-off-by: Edward Goggin \u003cegoggin@emc.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45e157206c732613d1c07e8ceeb1a3e497fb2abf",
      "tree": "327d36f8aea80f3a7fed4bb43232155dd4835145",
      "parents": [
        "2e93ccc1933d08d32d9bde3784c3823e67b9b030"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Dec 08 02:41:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: mpath: use noflush suspending\n\nImplement the pushback feature for the multipath target.\n\nThe pushback request is used when:\n  1) there are no valid paths;\n  2) queue_if_no_path was set;\n  3) a suspend is being issued with the DMF_NOFLUSH_SUSPENDING flag.\n     Otherwise bios are returned to applications with -EIO.\n\nTo check whether queue_if_no_path is specified or not, you need to check\nboth queue_if_no_path and saved_queue_if_no_path, because presuspend saves\nthe original queue_if_no_path value to saved_queue_if_no_path.\n\nThe check for 1 already exists in both map_io() and do_end_io().\nSo this patch adds __must_push_back() to check 2 and 3.\n\nTest results:\nSee the test results in the preceding patch.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d2a7ad29a810441e9dacbaddcc2f0c6045390008",
      "tree": "36bea90fa2f286f525a3b4f05adf40ec4d28221c",
      "parents": [
        "45cbcd798354251b99694086af9d57c99e89bb43"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Dec 08 02:41:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: map and endio symbolic return codes\n\nUpdate existing targets to use the new symbols for return values from target\nmap and end_io functions.\n\nThere is no effect on behaviour.\n\nTest results:\nDone build test without errors.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c649bb9c55e78dcff0e1383c13d91e0bfc2abb4a",
      "tree": "2db97a161e909c22840d72ac15704b56b09a9094",
      "parents": [
        "225a719f79fbc4d0cd9d9ebc5b2e3ac0e95845aa"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:47 2006 -0800"
      },
      "message": "[PATCH] struct path: convert md\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c922d5f7f5457da9e9b5a26dd53e2dcef6ca2f7d",
      "tree": "15e0e7435f428e87662978d23c2567013e56b681",
      "parents": [
        "fec6d055da71fb02a76f9c2c12427fa79974018b"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:40 2006 -0800"
      },
      "message": "[PATCH] struct path: rename DM\u0027s struct path\n\nRename DM\u0027s struct path to struct dm_path to prevent name collision between it\nand struct path from fs/namei.c.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "e69fae561f422f7f9dbda19f448633aa6564663e",
      "tree": "68ca8eb346741c3199549de38adc9fafd5db6c35",
      "parents": [
        "28f16c2039b4eefdc09c99b12f310afb44de5536"
      ],
      "author": {
        "name": "Micha³ Miros³aw",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Oct 03 01:15:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:15 2006 -0700"
      },
      "message": "[PATCH] dm mpath: use kzalloc\n\nUse kzalloc() instead of kmalloc() + memset().\n\nSigned-off-by: Micha³ Miros³aw \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28f16c2039b4eefdc09c99b12f310afb44de5536",
      "tree": "485dd0517e033d68cecafb4e7d5cb7b7bb86c63a",
      "parents": [
        "e52b8f6dbe18c879ad2b5013f991ec9e46813043"
      ],
      "author": {
        "name": "Micha³ Miros³aw",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Oct 03 01:15:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:15 2006 -0700"
      },
      "message": "[PATCH] dm mpath: tidy ctr\n\nAfter initialising m-\u003eti, there\u0027s no need to pass it in subsequent calls to\nstatic functions used for parsing parameters.\n\nSigned-off-by: Micha³ Miros³aw \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e90dae1f58d475b71bcc4eebf6d4fd5217ed85c7",
      "tree": "7131716d3889636fce72009f64cd6f65ed7e324c",
      "parents": [
        "7006f6eca874cd44d37ccb8cfeb8bed04e3bff22"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Oct 03 01:15:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:13 2006 -0700"
      },
      "message": "[PATCH] dm: support ioctls on mapped devices: fix with fake file\n\nThe new ioctl code passes the wrong file pointer to the underlying device.\nNo file pointer is available so make a temporary fake one.\n\nioctl_by_bdev() does set_fs(KERNEL_DS) so it\u0027s for ioctls originating\nwithin the kernel and unsuitable here.  We are processing ioctls that\noriginated in userspace and mapping them to different devices.  Fixing the\nexisting callers that pass a NULL file struct and consolidating the\nfake_file users are separate matters to solve in later patches.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7006f6eca874cd44d37ccb8cfeb8bed04e3bff22",
      "tree": "2e0827157e770e62493dea144e5d9ef73091e554",
      "parents": [
        "9af4aa30b713a58e5952045f52c41a6e3baa2fdc"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 03 01:15:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:13 2006 -0700"
      },
      "message": "[PATCH] dm: export blkdev_driver_ioctl\n\nExport blkdev_driver_ioctl for device-mapper.\n\nIf we get as far as the device-mapper ioctl handler, we know the ioctl is not\na standard block layer BLK* one, so we don\u0027t need to check for them a second\ntime and can call blkdev_driver_ioctl() directly.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9af4aa30b713a58e5952045f52c41a6e3baa2fdc",
      "tree": "87702659749a6db94ec32a829867e080b419bc82",
      "parents": [
        "ab17ffa440cb54ca64111fa4922ba12496fcc8af"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Oct 03 01:15:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:13 2006 -0700"
      },
      "message": "[PATCH] dm mpath: support ioctls\n\nWhen an ioctl is performed on a multipath device simply pass it on to the\nunderlying block device through current_path.  If current path is not yet\nselected, select it.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "485311a23c72c87332f9a55ce25e650e40ae3fc7",
      "tree": "5c70793c578d4c4f70b7cebef68bc71febb1c1f8",
      "parents": [
        "657b3010d8f8a72195dfcbe63040127d596f0b14"
      ],
      "author": {
        "name": "Michal Miroslaw",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Sun Aug 13 23:24:20 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 14 12:54:29 2006 -0700"
      },
      "message": "[PATCH] dm: BUG/OOPS fix\n\nFix BUG I tripped on while testing failover and multipathing.\n\nBUG shows up on error path in multipath_ctr() when parse_priority_group()\nfails after returning at least once without error.  The fix is to\ninitialize m-\u003eti early - just after alloc()ing it.\n\nBUG: unable to handle kernel NULL pointer dereference at virtual address 00000000\n printing eip:\nc027c3d2\n*pde \u003d 00000000\nOops: 0000 [#3]\nModules linked in: qla2xxx ext3 jbd mbcache sg ide_cd cdrom floppy\nCPU:    0\nEIP:    0060:[\u003cc027c3d2\u003e]    Not tainted VLI\nEFLAGS: 00010202   (2.6.17.3 #1)\nEIP is at dm_put_device+0xf/0x3b\neax: 00000001   ebx: ee4fcac0   ecx: 00000000   edx: ee4fcac0\nesi: ee4fc4e0   edi: ee4fc4e0   ebp: 00000000   esp: c5db3e78\nds: 007b   es: 007b   ss: 0068\nProcess multipathd (pid: 15912, threadinfo\u003dc5db2000 task\u003def485a90)\nStack: ec4eda40 c02816bd ee4fc4c0 00000000 f7e89498 f883e0bc c02816f6 f7e89480\n       f7e8948c c0281801 ffffffea f7e89480 f883e080 c0281ffe 00000001 00000000\n       00000004 dfe9cab8 f7a693c0 f883e080 f883e0c0 ca4b99c0 c027c6ee 01400000\nCall Trace:\n \u003cc02816bd\u003e free_pgpaths+0x31/0x45  \u003cc02816f6\u003e free_priority_group+0x25/0x2e\n \u003cc0281801\u003e free_multipath+0x35/0x67  \u003cc0281ffe\u003e multipath_ctr+0x123/0x12d\n \u003cc027c6ee\u003e dm_table_add_target+0x11e/0x18b  \u003cc027e5b4\u003e populate_table+0x8a/0xaf\n \u003cc027e62b\u003e table_load+0x52/0xf9  \u003cc027ec23\u003e ctl_ioctl+0xca/0xfc\n \u003cc027e5d9\u003e table_load+0x0/0xf9  \u003cc0152146\u003e do_ioctl+0x3e/0x43\n \u003cc0152360\u003e vfs_ioctl+0x16c/0x178  \u003cc01523b4\u003e sys_ioctl+0x48/0x60\n \u003cc01029b3\u003e syscall_call+0x7/0xb\nCode: 97 f0 00 00 00 89 c1 83 c9 01 80 e2 01 0f 44 c1 88 43 14 8b 04 24 59 5b 5e 5f 5d c3 53 89 c1 89 d3 ff 4a 08 0f 94 c0 84 c0 74 2a \u003c8b\u003e 01 8b 10 89 d8 e8 f6 fb ff ff 8b 03 8b 53 04 89 50 04 89 02\nEIP: [\u003cc027c3d2\u003e] dm_put_device+0xf/0x3b SS:ESP 0068:c5db3e78\n\nSigned-off-by: Michal Miroslaw \u003cmirq-linux@rere.qmqm.pl\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "72d9486169a2a8353e022813185ba2f32d7dde69",
      "tree": "2fe6c382feb3f21d829abf543c54be486007557c",
      "parents": [
        "5c6bd75d06db512515a3781aa97e42df2faf0815"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 26 00:27:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:36 2006 -0700"
      },
      "message": "[PATCH] dm: improve error message consistency\n\nTidy device-mapper error messages to include context information\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "93d2341c750cda0df48a6cc67b35fe25f1ec47df",
      "tree": "f098a3bbfae65ce967591ee94d605c6e6bea21c6",
      "parents": [
        "fec433aaaae32a02329ad7d71b0f3c91b7525077"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Sun Mar 26 01:37:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] mempool: use mempool_create_slab_pool()\n\nModify well over a dozen mempool users to call mempool_create_slab_pool()\nrather than calling mempool_create() with extra arguments, saving about 30\nlines of code and increasing readability.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "640eb3b0456f8273726d31160aa24568ae703eec",
      "tree": "f7c15ae433fb7bb57251c9496de4d3ba91b761e0",
      "parents": [
        "0e56822d30184d0da35a6ecc51f38c4ceb457a80"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "Stefan.Bader@de.ibm.com",
        "time": "Mon Nov 21 21:32:35 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:14:31 2005 -0800"
      },
      "message": "[PATCH] device-mapper dm-mpath: endio spinlock fix\n\ndo_end_io() can be called without interrupts blocked.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "485ef69edefd7fc7f351c94d0d77b3ed8a242f7b",
      "tree": "597d4529ae29a56fe433399ce840d3cdce7b1680",
      "parents": [
        "269fd2a6f84828fd96218d164dace8c413fa5c03"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Sep 27 21:45:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:42 2005 -0700"
      },
      "message": "[PATCH] device-mapper: Fix queue_if_no_path initialisation\n\nWhen creating a multipath device, if the queue_if_no_path parameter is\nspecified it gets ignored.\n\nWhile the queue_if_no_path variable is correctly set to 1, the\nsaved_queue_if_no_path gets set to 0.  When the device is subsequently made\nlive (resumed), the saved value (0) always overwrites the live value (1) so\nthe option *always* gets turned off.\n\nThe fix adds a parameter to the queue_if_no_path() function to indicate\nwhether the previous value should be preserved or not - if not, as when the\ndevice is being set up, the saved value is set to the new value (1).\n\nSigned-Off-By: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c3cd4f6b275da0f594797b73f721a4185335478f",
      "tree": "f7a3f0945993b02bb94fb770f2be4b01260b3ead",
      "parents": [
        "436d41087d047b61f8ab0604dc74fff3240a8933"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jul 12 15:53:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:19:11 2005 -0700"
      },
      "message": "[PATCH] device-mapper multipath: Fix pg initialisation races\n\nPrevent more than one priority group initialisation function from being\noutstanding at once.  Otherwise the completion functions interfere with each\nother.  Also, reloading the table could reference a freed pointer.\n\nOnly reset queue_io in pg_init_complete if another pg_init isn\u0027t required.\nSkip process_queued_ios if the queue is empty so that we only trigger a\npg_init if there\u0027s I/O.\n\nSigned-off-by: Lars Marowsky-Bree \u003clmb@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "436d41087d047b61f8ab0604dc74fff3240a8933",
      "tree": "46bab3a0cf02a7514b4faa5470a76326e6f8bc72",
      "parents": [
        "a044d016896d2717694003f00d31a98194077511"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jul 12 15:53:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:19:10 2005 -0700"
      },
      "message": "[PATCH] device-mapper multipath: Avoid possible suspension deadlock\n\nTo avoid deadlock when suspending a multipath device after all its paths have\nfailed, stop queueing any I/O that is about to fail *before* calling\nfreeze_bdev instead of after.\n\nInstead of setting a multipath \u0027suspended\u0027 flag which would have to be reset\nif an error occurs during the process, save the previous queueing state and\nleave userspace to restore if it wishes.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a044d016896d2717694003f00d31a98194077511",
      "tree": "5c6e7b60319f345c270d6f86745f47bf0b3ffdad",
      "parents": [
        "f6a80ea8ed44de0b19c42d41928be37a186a3f41"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jul 12 15:53:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:19:10 2005 -0700"
      },
      "message": "[PATCH] device-mapper multipath: Flush workqueue when destroying\n\nThe multipath destructor must flush its workqueue.  Otherwise items that\nreference the destroyed object could remain.\n\nFrom: \"goggin, edward\" \u003cegoggin@emc.com\u003e\nSigned-off-by: Lars Marowsky-Bree \u003clmb@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6a80ea8ed44de0b19c42d41928be37a186a3f41",
      "tree": "2e565669d042e54576a4beaba03145ea35ec2145",
      "parents": [
        "3f603ed319d5120e883e64ac5967b2fc848fc43b"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jul 12 15:53:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:19:10 2005 -0700"
      },
      "message": "[PATCH] device-mapper multipath: Barriers not supported\n\ndm multipath will report barriers as not supported with this patch.\n\nSigned-off-by: Lars Marowsky-Bree \u003clmb@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4f58802fae8a51d9e79454746584175c14f84519",
      "tree": "022533cfacde17b54e8f9b7ac3f12c82ed1c48be",
      "parents": [
        "05062d96a23ec0959ee5ea969f40813170c73c0e"
      ],
      "author": {
        "name": "Lars Marowsky-Bree",
        "email": "lmb@suse.de",
        "time": "Wed Jun 08 15:50:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Wed Jun 08 16:21:14 2005 -0700"
      },
      "message": "[PATCH] dm: Handle READA requests in dm-mpath.c\n\nREADA errors failing with EWOULDBLOCK/EAGAIN do not constitute a valid\nreason for failing the path; this lead to erratic errors on DM multipath\ndevices.  This error can be safely propagated upwards without failing the\npath.\n\nAcked-by: Kevin Corry \u003ckevcorry@us.ibm.com\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Lars Marowsky-Bree \u003clmb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c557308e1f4b6f7d6144a06e8f98c467814f3aed",
      "tree": "fe786dde1aea83e435fd86e75b2ee81238a8ae14",
      "parents": [
        "b84b0287a8ba618568a8bc9ac8847ac332abe90d"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu May 05 16:16:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:46 2005 -0700"
      },
      "message": "[PATCH] device-mapper multipath: Use private workqueue\n\ndm-mpath.c needs to use a private workqueue (like other dm targets already do)\nto avoid interfering with users of the default workqueue.\n\nSigned-Off-By: Alasdair G Kergon \u003cagk@redhat.com\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Lars Marowsky-Bree \u003clmb@suse.de\u003e\nSigned-off-by: \u003cmikenc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
