)]}'
{
  "log": [
    {
      "commit": "63704387009443bdb37d9deaaafa9ab121d45bfb",
      "tree": "cfbe1d775ff7d127ba30e14ccd9bebf77315e435",
      "parents": [
        "d49d4d7c0666c0a0bcac2c72c8402d1c1e9c3c8c"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Jan 12 22:17:21 2012 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Jan 14 12:16:50 2012 +0100"
      },
      "message": "multipath: don\u0027t remove dm device on remove uevent\n\nmultipathd gets remove uevents for dm devices when the devices have\nbeen removed.  It shouldn\u0027t try to actually remove the device itself,\nsince that has already been done, or it wouldn\u0027t have gotten the uevent.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "d49d4d7c0666c0a0bcac2c72c8402d1c1e9c3c8c",
      "tree": "b782757cbbc8f29c70759fb6352d33999c3f45b1",
      "parents": [
        "864162b08067d3e55d52996846d10a046956c6d6"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Jan 12 22:14:56 2012 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Jan 14 12:16:47 2012 +0100"
      },
      "message": "multipath: make tgt_node_name work for iscsi devices\n\ntgt_node_name wasn\u0027t displaying anything for iscsi devices. With this\nchange, if multipath can\u0027t get the node_name, it will check\nsys/devices/platform/hostX/sessionY/iscsi_session/sessionY/targetname\nand if this is available, it will get the node name from there.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "864162b08067d3e55d52996846d10a046956c6d6",
      "tree": "f101c7a20e8e9d445e2a64789182ab3c26ddbdee",
      "parents": [
        "d61ed22b72ddc4de20caef2daf099e07f7777304"
      ],
      "author": {
        "name": "Oren Held",
        "email": "orenhe@il.ibm.com",
        "time": "Fri Dec 30 12:45:09 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Fri Dec 30 12:45:09 2011 +0100"
      },
      "message": "Add default values for IBM XIV Storage System.\n"
    },
    {
      "commit": "d61ed22b72ddc4de20caef2daf099e07f7777304",
      "tree": "5112d4c30c771a99a29bab2c8a8957383427510a",
      "parents": [
        "bb817e4b8c2eef12fb831a17cf935db8a1677d06"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Dec 19 15:41:57 2011 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Fri Dec 23 21:04:59 2011 +0100"
      },
      "message": "multipath: add option to change the number of error messages\n\nThis patch adds a new default config parameter, log_checker_err.  It accepts\ntwo values, \"once\" and \"always\", and defaults of \"always\".  It controls\nhow multipathd logs checker error messages.  If it\u0027s set to \"once\", only the\nfirst checker error message is logged at logging level 2. All future messages\nare logged at level 3, until the device is restored or removed. If it\u0027s set\nto \"always\", all messages are logged at level 2, like multipathd currently does.\n\nThis version actually compiles.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "bb817e4b8c2eef12fb831a17cf935db8a1677d06",
      "tree": "32cd479b9ef6bce416173cd3636a8af84921d63a",
      "parents": [
        "bc43d66e29982de4b039e26aed4a700b95485dfb"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Dec 19 16:19:56 2011 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Fri Dec 23 21:03:15 2011 +0100"
      },
      "message": "multipath: fix scsi timeout code\n\nsysfs_attr_set_value() returns the amount written on on success, or -1 on\nfailure.  sysfs_setc_scsi_tmo() was checking if the return was nonzero, and\nfailing if it was. This meant that it always failed out silently after writing\nthe first value. I\u0027ve changed the check, and added some error messages.  I also\nmade sysfs_attr_set_value return -1 for all errors.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "bc43d66e29982de4b039e26aed4a700b95485dfb",
      "tree": "5e8750e5e0dae5ca11af85419dd6a1db5c6d4369",
      "parents": [
        "de35187a242df87d7873f34319751b814b1d5bd3"
      ],
      "author": {
        "name": "Phillip Susi",
        "email": "psusi@cfl.rr.com",
        "time": "Tue Dec 06 11:12:58 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Dec 06 23:26:22 2011 +0100"
      },
      "message": "multipath-tools: Remove bad udev rules\n\nThis sample udev rules file contains some rules relating to dmraid\nthat both should not be there and are broken anyhow.  They should\nnot be there because firstly, what is a dmraid rule doing in a\nkpartx rule file, and secondly, dmraid already activates partitions\nitself, so there is no need to run kpartx to do that.  The rule is\nbroken because it is matching on the DM_UUID starting with \"dmraid-\",\nbut this comparison is case sensitive, and it actually starts with\n\"DMRAID-\".\n\nSigned-off-by: Phillip Susi \u003cpsusi@cfl.rr.com\u003e\n"
    },
    {
      "commit": "de35187a242df87d7873f34319751b814b1d5bd3",
      "tree": "06547484161506d9c7aa81016cc84ad0b0f6e1e9",
      "parents": [
        "f613f6996542d3f992b6751c31c2def01972be4f"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Nov 15 21:39:34 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Nov 15 21:39:34 2011 +0100"
      },
      "message": "Revert \"multipath: rlookup WWIDs with spaces by alias\"\n\nThis reverts commit 1620040c3b1a4c4f6762d7e606a83c9f5ab8ebff.\n\nwwid can have not whitespace anyway. scsi_id make sure of that.\n"
    },
    {
      "commit": "f613f6996542d3f992b6751c31c2def01972be4f",
      "tree": "4b85449995b66c002757d8235e3bc8d36acaa300",
      "parents": [
        "924579632db98b8e8eb8f9b1a23ade9a42226bfc"
      ],
      "author": {
        "name": "Aruna Balakrishnaiah",
        "email": "aruna@linux.vnet.ibm.com",
        "time": "Tue Nov 15 20:39:57 2011 +0530"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Nov 15 21:34:43 2011 +0100"
      },
      "message": "Update man page for multipath -r\n\nSigned-off-by: Aruna Balakrishnaiah \u003caruna@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "924579632db98b8e8eb8f9b1a23ade9a42226bfc",
      "tree": "0739bcd4b4400181f2075a7e4ee2fede9c09922d",
      "parents": [
        "52fa56fe8994fbd908368fb815af4cb4ecabc3c5"
      ],
      "author": {
        "name": "hegdevasant",
        "email": "vahegde1@linux.vnet.ibm.com",
        "time": "Tue Nov 15 21:33:34 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Nov 15 21:33:34 2011 +0100"
      },
      "message": "kpartx man page update\n\nThis patch updates the kpartx man page.\n\nSigned-off-by: Vasant Hegde \u003chegdevasant@in.ibm.com\u003e\n"
    },
    {
      "commit": "52fa56fe8994fbd908368fb815af4cb4ecabc3c5",
      "tree": "7d81c4005ee3f2dd568f644df8f3a0bf515824c1",
      "parents": [
        "56753df50b08d67fb711e215a556d005f82ddf7b"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 14:38:26 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 14:38:26 2011 +0100"
      },
      "message": "Fix prio default value in multipath.conf.annotated\n\n\"none\" to \"const\"\n"
    },
    {
      "commit": "56753df50b08d67fb711e215a556d005f82ddf7b",
      "tree": "1ddd5124bd34a0e3a71e98f2e0ae73e084173e0f",
      "parents": [
        "c891f83aacdf08d7093f539c5b189fec064e20df"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 13:04:19 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 13:04:19 2011 +0100"
      },
      "message": "Fix polling insterval reported by multipath -t\n\npolling interval default value was not set in the multipath\ncode path, but only in multipathd (where it is used).\n\nMove the default value setting to load_config, where it belongs,\nto have it set in both multipath and multipathd.\n"
    },
    {
      "commit": "c891f83aacdf08d7093f539c5b189fec064e20df",
      "tree": "d2d27c3f87afed28942c09eb72bcc633fb7ea973",
      "parents": [
        "b429df90b6db4d9544d01d5cd052e83710acaab0"
      ],
      "author": {
        "name": "Olivier Lambert",
        "email": "lambert.olivier@gmail.com",
        "time": "Thu Nov 10 12:36:23 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 11:12:37 2011 +0100"
      },
      "message": "update prioritizer for iet target\n\nAdd missing free(), remove spurious whitespaces\n"
    },
    {
      "commit": "b429df90b6db4d9544d01d5cd052e83710acaab0",
      "tree": "7163870bd108d3dfad9af42e6afa26972e6f257d",
      "parents": [
        "547559356422e59215dc92e7612a0f50b694f850"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Nov 11 23:12:49 2011 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 11:12:19 2011 +0100"
      },
      "message": "multipath: don\u0027t print so many add map messages\n\nWhenever a dm device gets a change uevent, multipathd prints an add map\nmessage.  This can get confusing for users, so change that message to\nnot print at the default log level, and add a new message that only\nprints if multipathd will actually try to add a map\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "547559356422e59215dc92e7612a0f50b694f850",
      "tree": "ad713dcf8ca74498e7108b1e5e08101927673e73",
      "parents": [
        "1620040c3b1a4c4f6762d7e606a83c9f5ab8ebff"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Nov 11 23:10:21 2011 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 11:12:17 2011 +0100"
      },
      "message": "multipath: Set the default max_fds to the system max\n\nSince many people don\u0027t realize that they need to set max_fds until they run\nout of file descriptors, default to the system max.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "1620040c3b1a4c4f6762d7e606a83c9f5ab8ebff",
      "tree": "dc76e1b90cdc04f53927937666da9235968a0d01",
      "parents": [
        "76eb07a49fdb1bab770f62834522c5999fe7ab0f"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Nov 11 22:54:26 2011 -0600"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Sat Nov 12 11:12:14 2011 +0100"
      },
      "message": "multipath: rlookup WWIDs with spaces by alias\n\nIf a WWID contained spaces, the rlookup code wasn\u0027t able to look it up\nby its user_friendly_name, since the code was only reading the wwid till\nthe first space.  It now reads to the end of the line.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "76eb07a49fdb1bab770f62834522c5999fe7ab0f",
      "tree": "ca39e42b65d5d4225b079b5520296edadac99faa",
      "parents": [
        "70a5e4b067f8df6aa989b7d8588fb71aeb253789"
      ],
      "author": {
        "name": "hegdevasant",
        "email": "vahegde1@linux.vnet.ibm.com",
        "time": "Thu Nov 10 00:00:01 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Nov 10 00:00:01 2011 +0100"
      },
      "message": "Add missing break statement in kpartx\n\nSigned-off-by: Vasant Hegde \u003cvahegde1@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "70a5e4b067f8df6aa989b7d8588fb71aeb253789",
      "tree": "987885a8da48044579fcacd3b00547bed2a42d6e",
      "parents": [
        "a7498037efa245be908fd5ae7d65b7ec91be216d"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Nov 09 23:53:03 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Nov 09 23:53:03 2011 +0100"
      },
      "message": "Merge a prioritizer for IET scsi software target\n\nWritten by Olivier Lambert \u003clambert.olivier@gmail.com\u003e\n"
    },
    {
      "commit": "a7498037efa245be908fd5ae7d65b7ec91be216d",
      "tree": "c3bda29149e1c053e834a349beca2503a60170ec",
      "parents": [
        "6080ba5eec2d16c848e925ad87a2b736946f2e1c"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Wed Nov 09 23:48:12 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Nov 09 23:48:12 2011 +0100"
      },
      "message": "Vendor/product comparisons are too broad\n\nWe have a POWER machine with a broken multipath setup. Analysis shows\nthat the RDAC driver is being used even though it shouldn\u0027t.\n\nThe vendor/product is:\n\nIBM,IPR-0   65C61818\n\nThere is an entry for this device:\n\n                /* IBM IPR */\n                .vendor        \u003d \"IBM\",\n                .product       \u003d \"IPR.*\",\n\nUnfortunately it looks like a previous entry is matching against this\n(since we do a regex match):\n\n            /* IBM DS5000 */\n                .vendor        \u003d \"IBM\",\n                .product       \u003d \"1818\",\n\nThere are a number of IBM entries that have this issue. The following\npatch ensures we match against the entire product ID.\n"
    },
    {
      "commit": "6080ba5eec2d16c848e925ad87a2b736946f2e1c",
      "tree": "0442e32c0926b9211ba53872edbbaaa00624b7d6",
      "parents": [
        "75c3a3bc4e552c9dd0dcb9968d48984d22debf91"
      ],
      "author": {
        "name": "bmarzins@sourceware.org",
        "email": "bmarzins@sourceware.org",
        "time": "Wed Nov 02 22:44:58 2011 +0100"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Nov 02 22:44:58 2011 +0100"
      },
      "message": "Fix for Red Hat bz #737072.\n\nCVSROOT:        /cvs/dm\nModule name:    multipath-tools\nBranch:         RHEL5_FC6\nChanges by:     bmarzins@sourceware.org    2011-10-24 13:41:32\n\nModified files:\n        path_priority/pp_alua: rtpg.c\n\nLog message:\n        Fix for bz #737072. Shorten the timeout for the alua prio callout function\n        from 5 minutes to 1 minute.\n\nPatches:\nhttp://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/path_priority/pp_alua/rtpg.c.diff?cvsroot\u003ddm\u0026only_with_tag\u003dRHEL5_FC6\u0026r1\u003d1.3.2.5\u0026r2\u003d1.3.2.6\n"
    },
    {
      "commit": "75c3a3bc4e552c9dd0dcb9968d48984d22debf91",
      "tree": "b5da2ebb8501a1e4b23d3751ad25b5e963cfdda3",
      "parents": [
        "3641d566526370f9f9a76948c4ad45286220e84a"
      ],
      "author": {
        "name": "bmarzins@sourceware.org",
        "email": "bmarzins@sourceware.org",
        "time": "Mon Oct 24 13:37:18 2011 +0000"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Nov 02 22:30:38 2011 +0100"
      },
      "message": "multipath-tools/kpartx gpt.c\n\nCVSROOT:\t/cvs/dm\nModule name:\tmultipath-tools\nBranch: \tRHEL5_FC6\nChanges by:\tbmarzins@sourceware.org\t2011-10-24 13:37:18\n\nModified files:\n\tkpartx         : gpt.c\n\nLog message:\n\tFix for bz #719575.  Validate size of GPT partitions.\n\nPatches:\nhttp://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/kpartx/gpt.c.diff?cvsroot\u003ddm\u0026only_with_tag\u003dRHEL5_FC6\u0026r1\u003d1.3\u0026r2\u003d1.3.2.1\n"
    },
    {
      "commit": "3641d566526370f9f9a76948c4ad45286220e84a",
      "tree": "c65a51343ab6e8d60244b196625839d9fc8ad2b1",
      "parents": [
        "e0cb40998ea1330e1419da98414270d2e485177a"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Oct 17 16:16:02 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Oct 18 00:06:06 2011 +0200"
      },
      "message": "multipath: handle offlined paths\n\nThe kernel does not allow multipath to load tables containing offline\ndevices. Because of this, if you try add a path to a multipath device with\nan offline path, the multipathd will continually, retry and fail to reload\nthe table. I\u0027ve limited the retries to three to avoid livelocking.\n\nAlso, if you map included a offline path, multipath was crashing because\nit couldn\u0027t get the required sysfs information before calling get_state().\nIt now checks for this in multipath, like it does in multipathd\n\nLastly, multipathd would keep reprinting the last checker message for\nofflined paths, instead of something useful. It now prints a \"path offline\"\nmessage.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "e0cb40998ea1330e1419da98414270d2e485177a",
      "tree": "2d51b8aa59a44e1a87f3130b2a1d0da6cfea01b7",
      "parents": [
        "58abb990a791663f281569debe1469bb9b005cd9"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Oct 10 22:18:09 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Oct 11 06:52:38 2011 +0200"
      },
      "message": "multipath: better argument type checking\n\nThe way that multipath decided what you passed in as an argument didn\u0027t\nalways work.  If the argument was the name of a file, then multipath\nassumed that it was a path.  That meant if you were in /dev/mapper and ran\n\n# multipath -f \u003cmpath_device_name\u003e\n\nIt would fail, since it thought you gave it a path name, instead of a\nmultipath device name.  Now multipath will only treat the argument\nas a path name if it is a block device with a different major number than\ndevice-mapper\u0027s.  Also, I\u0027ve switched the MAJOR/MINOR/MKDEV macros to\nwork like kpartx, so that they can handle minor numbers over 255.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "58abb990a791663f281569debe1469bb9b005cd9",
      "tree": "84375494aa96517b89e7826af7a50adbb7ed4d4c",
      "parents": [
        "0bfc3d2dedd1dab3b433388aa9724778568ad2c9"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Oct 10 22:19:13 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Oct 11 06:51:16 2011 +0200"
      },
      "message": "multipath: set ACT_RESIZE when the size has changed\n\nWhen the multipath path devices change size, multipath can\u0027t be reloaded\nwith noflush set.  So, don\u0027t set the action to ACT_RELOAD, which will\ncause the multipath device to get stuck in SUSPEND. Use ACT_RESIZE.\n\nAlso, I was seeing some messages that were getting cut off with the\n128 byte messages size, so I doubled that, and the log area size.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "0bfc3d2dedd1dab3b433388aa9724778568ad2c9",
      "tree": "00d5af3233aa69968eced6fdc686ccb4afdc6b6f",
      "parents": [
        "05e94c70b755eddb1a8c0aa36fca80d692267846"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Oct 10 22:16:51 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Oct 11 06:47:51 2011 +0200"
      },
      "message": "multipath: better check for daemon mode\n\nWith the existing check, if a multipath device gets created with a\nblacklisted path (because, for instance, the path was unblacklisted,\nbut multipathd was not reconfigured), multipathd will crash.  This is\nbecause multipathd will add the path when it adds the multipath device,\nbut it won\u0027t have all the necessary information to use the path. The\nnew check makes sure multipathd won\u0027t add blacklisted paths, simply\nbecause they are part of a multipath device.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "05e94c70b755eddb1a8c0aa36fca80d692267846",
      "tree": "1dff3567132d1d82b73dd117f7c5567c248ecc8c",
      "parents": [
        "8d01e08897c95bcaa09b64a9ea763d34e9accbb1"
      ],
      "author": {
        "name": "Aruna Balakrishnaiah",
        "email": "aruna@linux.vnet.ibm.com",
        "time": "Wed Oct 05 20:06:14 2011 +0530"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Oct 05 22:43:09 2011 +0200"
      },
      "message": "\u0027multipath\u0027 with -h and -t option, it returns \u00271\u0027 (fail) for successful command execution\n\n      Fix exit status for -h and -t options in multipath command\n"
    },
    {
      "commit": "8d01e08897c95bcaa09b64a9ea763d34e9accbb1",
      "tree": "7cf47f8b2f4898178c93fa59e3b872c587b381b2",
      "parents": [
        "ce1c220981bb42ab4a4e8a53251867188ef8861e"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Oct 04 23:13:49 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Oct 05 07:55:59 2011 +0200"
      },
      "message": "multipath: make sure all the hwe attributes get merged\n\nNot all of the hwe attributes were getting merged.  Also,\nmultipathd show config was putting an extra set of quotes around the entries\nin the devices section.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "ce1c220981bb42ab4a4e8a53251867188ef8861e",
      "tree": "12bb2605970573ab76a692dfe574d7fbb20efddf",
      "parents": [
        "f7735ad547d9ebb952993ac0a6def0400fb23c80"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Oct 04 23:15:05 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed Oct 05 07:53:50 2011 +0200"
      },
      "message": "multipath: get right sysfs value for checker_timeout\n\nsysfs_get_timeout() wasn\u0027t looking in the correct directory for the\nchecker timeout value. It was looking at .../block/\u003cdevname\u003e/timeout,\ninstead of  .../block/\u003cdevname\u003e/device/timeout\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "f7735ad547d9ebb952993ac0a6def0400fb23c80",
      "tree": "5e0060a92bd19d3bfd3e775cdd8a694cde5e40db",
      "parents": [
        "f4a021095ea10a822f9916006b87129ac68998bf"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Sep 27 15:50:52 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Sep 27 23:03:38 2011 +0200"
      },
      "message": "multipath: add default hardware configs.\n\nHere are some hardware configs I\u0027ve received from vendors, that haven\u0027t made it\nupstream yet, along with a little bit of cleanup. The changes come from Redhat\nBZ #622569, #636213, and #694602\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "f4a021095ea10a822f9916006b87129ac68998bf",
      "tree": "4c53931caad754e234fc004f1a2c587477f69e90",
      "parents": [
        "82c18472716876a4840dd15e4585674b1c226761"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Sep 26 09:50:58 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Mon Sep 26 21:00:20 2011 +0200"
      },
      "message": "multipath: don\u0027t set queue_if_no_path without multipathd\n\nIf multipathd is not running, when all paths to a device have failed, there\u0027s\nno way for them to automatically get restored.  If the device is set to queue,\nwhatever is accessing it will hang forever. This can lead to problems if it\nhappens at boot-up.  This patch unsets queue_if_no_path for all devices created\nwhen multipathd is not running. When multipathd starts, it will automatically\nget reset queue_if_no_path to the proper value.  This new behaviour can be\noverridden using the new \"-q\" option to multipath.\n\nThis version of the patch contacts multipathd\u0027s client socket to tell if it\u0027s\nrunning.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "82c18472716876a4840dd15e4585674b1c226761",
      "tree": "7b27cea78ff8b33e84126dddbd00fb412139b916",
      "parents": [
        "fd79e9d54f46c240be7339e131fcab7900a30f94"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Sep 23 09:35:59 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Fri Sep 23 21:25:34 2011 +0200"
      },
      "message": "multipath: add support for setting oom_score_adj\n\nThe oom_adj procfs interface is deprecated. I\u0027ve added support for using the\nnew oom_score_adj interface.  The code still falls back to using oom_adj\nif oom_score_adj doesn\u0027t exist.\n\nResending, since I was obviously working far too late last night.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "fd79e9d54f46c240be7339e131fcab7900a30f94",
      "tree": "f200960d8dbf01d7a57647d44ee04364c5bbdd55",
      "parents": [
        "9981ecb4d4d3392847f143ff7635179e6dedc289"
      ],
      "author": {
        "name": "Chauhan, Vijay",
        "email": "Vijay.Chauhan@netapp.com",
        "time": "Fri Sep 02 18:52:46 2011 +0530"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Mon Sep 05 22:42:16 2011 +0200"
      },
      "message": "multipath-tools: Adding Netapp as a brand name for RDAC\n\nResending this patch. Previous post had indentation issue due to my mail settings.\n"
    },
    {
      "commit": "9981ecb4d4d3392847f143ff7635179e6dedc289",
      "tree": "829a7c86baea1eae3696c9729b3ad780e2a61b9f",
      "parents": [
        "7ab80a543f556191ee2820d51142e289e367cda7"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Sep 01 21:43:27 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Sep 01 21:43:27 2011 +0200"
      },
      "message": "Remove useless alias pointer reset to NULL\n\nThis is already done by free_multipath()\n"
    },
    {
      "commit": "7ab80a543f556191ee2820d51142e289e367cda7",
      "tree": "10aa519a5b17bc3ca7a92456f0ad0e5bb1b9e23b",
      "parents": [
        "f4b3137176beaacc0084284d1f3d573610123994"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Sep 01 12:08:29 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Sep 01 21:42:50 2011 +0200"
      },
      "message": "multipath: systemd unit file\n\nHere is a systemd unit file for managing multipathd.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "f4b3137176beaacc0084284d1f3d573610123994",
      "tree": "eba549657ba04534ee013fca29b864a90b66ef30",
      "parents": [
        "735f2992398d4179601f3d7043fad606c90171d4"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Wed Jul 13 13:30:42 2011 -0500"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Sep 01 08:58:32 2011 +0200"
      },
      "message": "multipath: check setup_multipath return value.\n\nWhen setup_multipath() fails, it removes the map. So update_path_groups()\nneeds check the return value, and fail without touching the map anymore if\nsetup_multipath() fails.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "735f2992398d4179601f3d7043fad606c90171d4",
      "tree": "f4a70fff8722eb9e6b69e8f22bc41e239923f39b",
      "parents": [
        "4050f1edc37ae5b327be51c4dffb071955c45cb2"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Sep 01 08:50:54 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Sep 01 08:50:54 2011 +0200"
      },
      "message": "multipath: strdup multipath alias, so that it isn\u0027t deleted\n\nWhen a multipath device is added to multipathd with ev_add_map(),\nthe alias is not duplicated, and is freed immediately after ev_add_map()\nreturns, causing a memory error. This patch corrects that.\n"
    },
    {
      "commit": "4050f1edc37ae5b327be51c4dffb071955c45cb2",
      "tree": "48757fee6dd6f2027145dae51d6028dabc732e90",
      "parents": [
        "fa7074f35c67ff1ef29f1aea5a484c5dea25863a"
      ],
      "author": {
        "name": "Moger, Babu",
        "email": "Babu.Moger@netapp.com",
        "time": "Mon Aug 29 12:24:37 2011 -0400"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Thu Sep 01 08:41:50 2011 +0200"
      },
      "message": "multipath-tools: service mode changes for RDAC storage\n\nThis patch was not picked up yet, so resubmitting it again. There no change except it was generated on top of the latest file.\n\nThis patch handles the recent changes in NetApp RDAC storage firmware to report service mode. Firmware changed the inquiry page 0xc9 to report service mode. Purpose this change is to avoid DMMP going into infinite loop of switching back and forth between controllers when a controller is placed in service mode. This fixes the problem and reports the path as failed if the controller is placed in service mode.\n\nSigned-off-by: Babu Moger \u003cbabu.moger@netapp.com\u003e\nReviewed-by: Yanling Qi \u003cyanling.qi@netapp.com\u003e\nReviewed-by: Somasundaram Krishnasamy \u003cSomasundaram.Krishnasamy@netapp.com\u003e\n"
    },
    {
      "commit": "fa7074f35c67ff1ef29f1aea5a484c5dea25863a",
      "tree": "d12d4c4bb18802fd92549c9f5e8c8ce1aa1811b1",
      "parents": [
        "db544f76990d9c4d7d1434b4ac94c5ae530eb3e5"
      ],
      "author": {
        "name": "Ritesh Raj Sarraf",
        "email": "rrs@researchut.com",
        "time": "Wed Aug 17 23:10:37 2011 +0530"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Mon Aug 22 15:40:18 2011 +0200"
      },
      "message": "Add kpartx example to manpage\n\nThanks: Lars Wirzenius\nCloses: 637538\n\nSigned-off-by: Ritesh Raj Sarraf \u003crrs@debian.org\u003e\n"
    },
    {
      "commit": "db544f76990d9c4d7d1434b4ac94c5ae530eb3e5",
      "tree": "d0432155833fc7ca28f4325a1529952bbd19febe",
      "parents": [
        "1216b5a111c6d74b0e93e4c3743db5815d0bab55"
      ],
      "author": {
        "name": "Craig",
        "email": "craig@haquarter.de",
        "time": "Sat Aug 20 00:16:55 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Mon Aug 22 15:39:38 2011 +0200"
      },
      "message": "fix-linebreaks\n\nHi,\n\nerror messages (DM message failed) in the logs look like this in multipath:\n\nJul 24 06:17:47 onosendai multipathd: DM message failed [queue_if_no_path\nJul 24 06:17:47 onosendai ]\nJul 24 06:17:47 onosendai multipathd: sdc: alua not supported\nJul 24 06:17:47 onosendai multipathd: sdd: alua not supported\nJul 24 06:17:47 onosendai multipathd: DM message failed [queue_if_no_path\nJul 24 06:17:47 onosendai ]\n\nThe patch fixes the unneccessary \\n in libmultipath/devmapper.c\n\nBest regards,\n\nCraig\n\n\u003eFrom bb1354f917b7bd205605a41016e0a3e1aff6feac Mon Sep 17 00:00:00 2001\nFrom: craig \u003ccraig@haquarter.de\u003e\nDate: Sun, 24 Jul 2011 06:38:55 +0200\nSubject: [PATCH] fix linebreaks\n"
    },
    {
      "commit": "1216b5a111c6d74b0e93e4c3743db5815d0bab55",
      "tree": "e71189b0c6f1d5a245a87082726e3d72f31499ef",
      "parents": [
        "015de0f9fe36b097cc1401ae664da29a6a7218eb"
      ],
      "author": {
        "name": "Oren Held",
        "email": "oren@held.org.il",
        "time": "Sun Aug 21 13:05:22 2011 +0300"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Mon Aug 22 15:39:09 2011 +0200"
      },
      "message": "Remove prio_callout as a valid option from man page\n\nSigned-off-by: Oren Held \u003corenhe@il.ibm.com\u003e\n"
    },
    {
      "commit": "015de0f9fe36b097cc1401ae664da29a6a7218eb",
      "tree": "3c51b2f28cadf33acd197caa0baaf3bd170733c7",
      "parents": [
        "e14dd49d9cdd0b57e585ab7dc19b4e2fdb7fca2e"
      ],
      "author": {
        "name": "Moger, Babu",
        "email": "Babu.Moger@netapp.com",
        "time": "Fri May 27 10:30:19 2011 -0400"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Tue Jun 07 07:52:05 2011 +0200"
      },
      "message": "multipath-tools: Manual failback fix when priority changes\n\nCurrent code switches the path-group when there is a change in priority. However,\nthis is not the right thing to do when failback is set to manual. This patch fixes\nthis problem. Call update_path_groups only if failback is immediate.\n\nSigned-off-by: Babu Moger \u003cbabu.moger@netapp.com\u003e\n"
    },
    {
      "commit": "e14dd49d9cdd0b57e585ab7dc19b4e2fdb7fca2e",
      "tree": "118c0d0dfd088534594704da924a035ee1e74e4a",
      "parents": [
        "fded849ba2900f6a5700836dc0505ad1f6d79124"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 23:21:42 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 23:21:42 2011 +0200"
      },
      "message": "Fix hang on reconfigure CLI command\n\nRestore the vector locking outside the reconfigure() function.\nMoving it inside caused a double-lock hang situation. The\nfirst locker being uxsock_trigger(), caller of reconfigure().\n\nDiscussion on-going on wether we\u0027d better stop locking from\nuxsock_trigger().\n"
    },
    {
      "commit": "fded849ba2900f6a5700836dc0505ad1f6d79124",
      "tree": "7ce2c54430a1e9f4db2fa87ce0b18d276451539f",
      "parents": [
        "a7f4099fd8a2e1220103e6b211240c521521942d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 25 14:40:42 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 20:27:17 2011 +0200"
      },
      "message": "Use refcounting for sysfs devices\n\nAs we\u0027re caching sysfs devices we need to introduce some sort\nof refcounting here. Otherwise the device might be removed from\nother threads while we\u0027re still accessing it.\n\nReferences: bnc#642846\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "a7f4099fd8a2e1220103e6b211240c521521942d",
      "tree": "dbe5e1150fae91c77274526791a7cfa5e8dc52f3",
      "parents": [
        "c301a3f09203edf91df5a9adf4e32ea2a7238cda"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 25 14:40:31 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 20:27:17 2011 +0200"
      },
      "message": "multipathd: Do not attempt to rename a device\n\nIf a device-mapper device got renamed we should be notified\nvia the waiter thread; no need to do it in the main loop.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "c301a3f09203edf91df5a9adf4e32ea2a7238cda",
      "tree": "d6c804a5d7c5ca33f499848a98bdc1c2441c01af",
      "parents": [
        "5ed9b070d708f8f608ea3f402cc8264f33ef72eb"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 25 14:40:19 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 20:27:17 2011 +0200"
      },
      "message": "Race condition when calling stop_waiter_thread()\n\nWe cannot access the waiter structure from other threads as\nthe lifetime is totally different and it might be deleted\nat any time.\nSo we better store the pthread id in the calling thread and\njust send a signal to the thread.\n\nReferences: bnc#642846\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "5ed9b070d708f8f608ea3f402cc8264f33ef72eb",
      "tree": "2e9000366966397cf624a17252ca491b1e419ac7",
      "parents": [
        "e2ae02287aaec0b56ac832841130e3c855a5a471"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 14:04:35 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 14:04:35 2011 +0200"
      },
      "message": "Quick and dirty adaption of the debian startup file\n\nFor the pidfile is no longer created.\n"
    },
    {
      "commit": "e2ae02287aaec0b56ac832841130e3c855a5a471",
      "tree": "6d5c14e4209e07634e421b8faef7f5e261880233",
      "parents": [
        "7b541d1e2cee70ad5e61edf12333e7ff49615c8c"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 14:00:52 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 14:00:52 2011 +0200"
      },
      "message": "Fix segfault in dm reassign code path\n\nalias is allocated and freed in multipathd/main.c:uev_add_map().\n\nDon\u0027t free it in ev_add_map() called from uev_add_map() to avoid\ndouble free.\n"
    },
    {
      "commit": "7b541d1e2cee70ad5e61edf12333e7ff49615c8c",
      "tree": "d13916ff4a9c8589fcc86990a0d04bfc26883a97",
      "parents": [
        "8d632979a49943b16303e8d97e91ec87d142fc28"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 13:59:53 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 13:59:53 2011 +0200"
      },
      "message": "Set an internal default for feature\n\nFix segfault when no /etc/multipath.conf is present.\n"
    },
    {
      "commit": "8d632979a49943b16303e8d97e91ec87d142fc28",
      "tree": "ae1818f787612fdadf979ac2c8e1f9057c61299d",
      "parents": [
        "de98052933f534a03a291513f2060893b4eb314c"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 11:43:58 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 11:43:58 2011 +0200"
      },
      "message": "Revert \"Add \u0027max_polling_interval\u0027 config variable\"\n\nThis reverts commit efc8ace4b335e752a7d28aca6040af0f9fe37530.\n\nSpurious patch in Hannes branch\n"
    },
    {
      "commit": "de98052933f534a03a291513f2060893b4eb314c",
      "tree": "c3799fc97854df5039dbbe315fb83f0ab9a22c86",
      "parents": [
        "c0a92138b545b25bd7c99502b25fd9fbcaf1b328",
        "61f530a849ab720f3bf02a20be5658d484091f17"
      ],
      "author": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 08:35:34 2011 +0200"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Wed May 25 08:35:34 2011 +0200"
      },
      "message": "Merge remote-tracking branch \u0027hannes/for-christophe\u0027\n\nConflicts:\n\tmultipathd/main.c\n"
    },
    {
      "commit": "61f530a849ab720f3bf02a20be5658d484091f17",
      "tree": "3233f66faff2050601dc41ccb6686ac36b461eb7",
      "parents": [
        "8950cc8f192d5334dc7de43807654c40acb42aea"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Dec 04 14:20:06 2008 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 15:49:36 2011 +0200"
      },
      "message": "Reload map for device read-only setting changes\n\nWhenever the read-only setting for a device changes we have\nto reload the map. This patch implements the required cli command\nand also a uevent handler if a uevent with \u0027DISK_RO\u003d\u0027 setting\nhas been received.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "8950cc8f192d5334dc7de43807654c40acb42aea",
      "tree": "587444b31f291059317cfc5606371745cf29f174",
      "parents": [
        "99a085ffa660fc444ff810ffff565e1cf94ce77c"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri Mar 20 10:30:04 2009 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 15:39:24 2011 +0200"
      },
      "message": "Increase priority value for emc priority callout\n\nFor non-default paths the emc priority callout should\nnot return \u00270\u0027, as this will inhibit the daemon to switch\npaths. And we should be returning \u0027PRIO_UNDEF\u0027 in the\ncase of failure.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "99a085ffa660fc444ff810ffff565e1cf94ce77c",
      "tree": "7726af1988fe4800a238876ddcf4b9442d843063",
      "parents": [
        "afafa306fe133f0423fe0b13150a6e535a054b2c"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 15:33:18 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 15:33:18 2011 +0200"
      },
      "message": "Allow dev_loss to be set to \u0027infinity\u0027\n\nWith this patch we can set dev_loss to infinity, so that\nfailed devices will never removed from the system.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "afafa306fe133f0423fe0b13150a6e535a054b2c",
      "tree": "9e79edc222d4ba20a87ebcb1cbc592bedf8dc87d",
      "parents": [
        "ace982abd6cfe76fab3f89067db52e9f103972f5"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 14:29:07 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 14:29:07 2011 +0200"
      },
      "message": "Update manpages\n\nThe man pages are in dire need of updating. Do it now.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "ace982abd6cfe76fab3f89067db52e9f103972f5",
      "tree": "1e63fb0d1a904288e7431afcd94633b2c8ab1e81",
      "parents": [
        "5dac4db2c1321f385106d231095cc02735da90a9"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Apr 30 09:37:38 2007 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 14:21:59 2011 +0200"
      },
      "message": "multipath: add \u0027-t\u0027 option to dump internal hwtable\n\nThis patch adds an option \u0027-t\u0027 to dump the internal hardware table.\nQuite handy if you want to know the default settings.\nIn doing so it also fixes the keyword allocation; currently the\nkeywords are only initialised if a configuration file is used.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "5dac4db2c1321f385106d231095cc02735da90a9",
      "tree": "80faa2d72355911c0300afa10458c41df857632b",
      "parents": [
        "a87a2aa4d057e29b4b850b1738b00534f883fdf3"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 14:02:00 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 14:07:52 2011 +0200"
      },
      "message": "Reassign existing device-mapper maps\n\nWhen a multipath device is created other maps might already be\nin place pointing to the same block device. To ensure uninterrupted\naccess these maps should be reassigned to point to the\nmultipath devices instead.\nThis patch also adds a configuration variable \u0027reassign_maps\u0027\nto toggle this behaviour.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "a87a2aa4d057e29b4b850b1738b00534f883fdf3",
      "tree": "849315d92fd193d7c6b1dbe1a7dbae348288b392",
      "parents": [
        "2bd1893c3021535bd61d5009fc8d38c5cc399226"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Sep 13 11:06:13 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:42:16 2011 +0200"
      },
      "message": "alua: Handle LBA_DEPENDENT state\n\nSPC-4 added another state, LBA_DEPENDENT. This patch\nadds basic support for it.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "2bd1893c3021535bd61d5009fc8d38c5cc399226",
      "tree": "daa550d85640195354814cbe2346d5dc80139841",
      "parents": [
        "68314b44b4e8b2c2e01ac21bf3b0579f546f1942"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:28:04 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:28:04 2011 +0200"
      },
      "message": "Update multipathd init script for SuSE\n\nAs we know have the \u0027show daemon\u0027 CLI command we can be using\nit to track startup and shutdown.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "68314b44b4e8b2c2e01ac21bf3b0579f546f1942",
      "tree": "d04788bb3cc6c4036b66cc30ed184e73b21548a7",
      "parents": [
        "6cda789a0351a777ca5f7a0ba21de0537e965013"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:22:13 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:22:13 2011 +0200"
      },
      "message": "multipathd: Add PID to \u0027show daemon\u0027 cli command\n\nWe might want to know the PID of the daemon itself.\nSo adding it to the \u0027show daemon\u0027 cli command.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "6cda789a0351a777ca5f7a0ba21de0537e965013",
      "tree": "a8e4b46c6cb7482c1d171fb2dbd40856ebab02c0",
      "parents": [
        "44c3a8f98e247cd453d386be82baf1de36d9b2a9"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:12:24 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:21:38 2011 +0200"
      },
      "message": "Update pid file handling\n\nAs we now have a shutdown CLI command we don\u0027t actually need the\npid file anymore. So any errors on creation can be ignored.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "44c3a8f98e247cd453d386be82baf1de36d9b2a9",
      "tree": "85fb47121f0cc910c78ca77c0c388111b76fa3c4",
      "parents": [
        "3b4bc7d987e2ba4ab725a0bd24276306a5143ba3"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 04 11:02:37 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 13:21:17 2011 +0200"
      },
      "message": "Serialize startup on large machines\n\nOn large installations the startup can take quite long.\nSo to better integration with the init scripts I\u0027ve added\nthe CLI command \u0027show daemon\u0027 which returns the internal\nrunning state of the daemon.\nWith this the init scripts can wait until the daemon\nis properly started.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "3b4bc7d987e2ba4ab725a0bd24276306a5143ba3",
      "tree": "10ce1e7aefabf88ad06ede15a2ebb039dcb5482d",
      "parents": [
        "13520b8a0c99d1a82e17a8b9d3d37123246140ee"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Apr 28 11:11:23 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 11:02:17 2011 +0200"
      },
      "message": "Add \u0027shutdown\u0027 cli command\n\nRather than sending a signal to the process (which might get caught\nby any thread, possibly blocking it) we can as well implement a\n\u0027shutdown\u0027 cli command, making sure the daemon will be terminated.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "13520b8a0c99d1a82e17a8b9d3d37123246140ee",
      "tree": "c6b7b65f5b4aab495616744d8f5565052ed70ab7",
      "parents": [
        "9e7b4d8d6fa8dc9433c1e60d4bd6717aec2f5296"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu May 27 10:37:58 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:52:51 2011 +0200"
      },
      "message": "multipathd: Update \u0027max_fds\u0027 handling\n\nWe don\u0027t need to update the \u0027max_fds\u0027 setting if it\u0027s already\nhigher than we need. And we should be issuing a debug message\nwhen we did.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "9e7b4d8d6fa8dc9433c1e60d4bd6717aec2f5296",
      "tree": "2bd9b54d8807525167953c28e70d81b72ce89a27",
      "parents": [
        "efc8ace4b335e752a7d28aca6040af0f9fe37530"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri Feb 18 09:34:18 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:49:34 2011 +0200"
      },
      "message": "multipathd: crash in reconfigure CLI command\n\nThe \u0027reconfigure\u0027 CLI command doesn\u0027t take the vector lock,\nso if multipathd is processing a table / udev event at the\nsame time it\u0027ll crash.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "efc8ace4b335e752a7d28aca6040af0f9fe37530",
      "tree": "8174e89074e023e7aad1ff9baad36a0c7f17af7f",
      "parents": [
        "25251f26b82e7f729be7140cbb806791e07da70c"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Feb 01 09:46:57 2010 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:43:57 2011 +0200"
      },
      "message": "Add \u0027max_polling_interval\u0027 config variable\n\nWe should be able to set the \u0027max_polling_interval\u0027 variable\nmanually. Especially systems requiring precise failover timing\nwill want to disable the automatic polling interval increase.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "25251f26b82e7f729be7140cbb806791e07da70c",
      "tree": "e1e6dc5b58d0450eaf2e07097f29e5b5487d86b8",
      "parents": [
        "abc8f66328e4d75542d49969b73736419c2cf960"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Feb 10 10:35:28 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:34:38 2011 +0200"
      },
      "message": "libmultipath: Only count UP and GHOST paths for prio update\n\nWhen calculating the priority of a pathgroup we should be\ncounting only UP and GHOST paths; all other values might\nbe stale.\n\nReferences: bnc#665289\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "abc8f66328e4d75542d49969b73736419c2cf960",
      "tree": "caa85ee7f48f589318f18a8be0379e85f3610943",
      "parents": [
        "a0cf544ce46264f637d695df1bfd7a5c85e5c0c8"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Jul 02 14:53:53 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:28:14 2011 +0200"
      },
      "message": "Always synchronize with dm state\n\nWhen running on iSCSI the connection might suffer intermediate\nerrors, causing the path to fail. But by the time the path checker\nruns these errors will be cleared by the iSCSI internal connection\nrecovery, which means the daemon will never see any error and not\nreinstated any failed paths.\n\nReferences: bnc#447887\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "a0cf544ce46264f637d695df1bfd7a5c85e5c0c8",
      "tree": "bc4beb4b0cfac4c83a607d2f7431dda1c7d8bf1c",
      "parents": [
        "6df6f4fb158132d90a9a228ac5b47f3571a7f14d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Feb 09 14:04:25 2009 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:20:40 2011 +0200"
      },
      "message": "multipathd is not starting waitevent checker for single paths\n\nAfter multipathd was started, any SCSI disks that would be added afterwards\nwould not trigger multipathd to create a waitevent thread.\n\nThe waitevent thread listens for kernel\u0027s offline/online events and thoroughly\nchecks what the kernel sees with what multipathd thinks and if something is\noff,\nwhacks multipathd to the right state.\n\nFor devices which did not have a kernel device mapper helper (hp_sw, rdac,\netc) and only have one single path, when the link experiences a momentary blib\nwith I/O on it the path would be marked as failed _only_ by the kernel. This\nevent\nwould _not_ be propagated to multipathd (b/c it did not have a waitevent thread\ncreate). Multipathd would only do the path checker which would provide a\nPATH_UP event (rightly so - as the path would only be down for a second or so).\nHowever, the device mapper path group would be marked as failed, and any\nincoming I/O would be blocked (if queue_if_no_path was set) or fail.\n\nThe end result was the multipathd would think everything was peachy while the\nkernel would be failing (or queueing) the I/O to the multipath device.\n\nReferences: bnc#473841\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "6df6f4fb158132d90a9a228ac5b47f3571a7f14d",
      "tree": "e37d42cef51d97de2d36e0b21aad6296d28a68a1",
      "parents": [
        "4153434e190c31bdd654c946ff5fc4b23c76479a"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Jan 21 15:01:38 2009 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:17:04 2011 +0200"
      },
      "message": "More debugging output when synchronizing path states\n\nWhen synchronizing path state we might end up removing a path.\nHowever, if this path is not in state PATH_DOWN there is an\nerror somewhere. So modify the messages accordingly.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "4153434e190c31bdd654c946ff5fc4b23c76479a",
      "tree": "1fbbe6f9be4ef4b83d0cb95a46c2ad4c236262b2",
      "parents": [
        "81520369cab8b4fe525b0f75f9107cebd74b455d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 12 08:01:18 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:12:59 2011 +0200"
      },
      "message": "libmultipath: Make path state message unique\n\nThere are two identical messages \u0027state \u003d\u0027, so we\nshould modify them to have them better identified.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "81520369cab8b4fe525b0f75f9107cebd74b455d",
      "tree": "fee9dd57e466aafe65a2c15a1b8363e4bfec5e3a",
      "parents": [
        "a197cf1d3bf5a9b464998cf51c739f5265deb014"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Jan 11 15:06:08 2010 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:10:52 2011 +0200"
      },
      "message": "Update dev_loss_tmo for no_path_retry\n\nWhen \u0027no_path_retry\u0027 is active we have to update the dev_loss_tmo\nsetting accordingly to ensure that no devices are removed during\nan all-paths-down scenario.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "a197cf1d3bf5a9b464998cf51c739f5265deb014",
      "tree": "6c6604b9c6257c997cbd300e642b3ebae0e2d597",
      "parents": [
        "d982709f814bfb496f22b78b5951016957a00cf8"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Apr 26 12:01:40 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:52:29 2011 +0200"
      },
      "message": "Check for valid argument in update_multipath_strings()\n\nWe need to check for a valid argument here.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "d982709f814bfb496f22b78b5951016957a00cf8",
      "tree": "47982dc0bfd9807ae7e465acc502c20d8c6c88c6",
      "parents": [
        "16b8503510b11e690051a2a1c4f096505357d799"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu May 27 13:53:43 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:48:05 2011 +0200"
      },
      "message": "libmultipath: Remove duplicate calls to path_offline()\n\nWhen calling pathinfo() path_offline() is called several times\nin a row, which is quite unnecessary.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "16b8503510b11e690051a2a1c4f096505357d799",
      "tree": "bde774effaa58cee4fc9f00b27a1ef51e1175114",
      "parents": [
        "fda83f11c844ce114b98bd5ecd949ec1de906e0a"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:35:34 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:35:34 2011 +0200"
      },
      "message": "Check for offline path in get_prio()\n\nWe need to check for an offline path in get_prio(), otherwise\nthe priority callout might stall.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "fda83f11c844ce114b98bd5ecd949ec1de906e0a",
      "tree": "f9f7e64c488918698a445c53f7c1635aa08d1066",
      "parents": [
        "cc2bec4f2be42f3fa106b6d6d53a82efa5dc3230"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:34:13 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:34:13 2011 +0200"
      },
      "message": "Use state name in get_state()\n\nRather than to display the numerical value we should be returning\nthe path status string.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "cc2bec4f2be42f3fa106b6d6d53a82efa5dc3230",
      "tree": "93a9316a8fb9b60de8ac92ada8c74ac4e093d67a",
      "parents": [
        "9571edeccd3f6922b6d4f357f8b3028573f58521"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:32:15 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:32:15 2011 +0200"
      },
      "message": "Only check offline status for SCSI devices\n\nOnly SCSI devices can be checked for offline status, so we\nshould return PATH_UP for every other type.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "9571edeccd3f6922b6d4f357f8b3028573f58521",
      "tree": "9153ab3a126ad533c250ab27d921dc23e2b44931",
      "parents": [
        "8c6038a94c06bbd329db4bb6e20d33c64f483f93"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:24:29 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 09:24:29 2011 +0200"
      },
      "message": "libmultipath: zero out sense buffer in do_inq()\n\nWe should be zero out the sense buffer when doing an inquiry\nso as not to have invalid contents being passed up.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "8c6038a94c06bbd329db4bb6e20d33c64f483f93",
      "tree": "f48959772c1abbf8b5b6676db96327e55fafec31",
      "parents": [
        "e8bb88d5c2f752aff1bccd14018ead637113c636"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:46:56 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:46:56 2011 +0200"
      },
      "message": "multipathd: fix memory issues in cli.c\n\nSome memory issues in cli.c have been found by valgrind.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "e8bb88d5c2f752aff1bccd14018ead637113c636",
      "tree": "b87e9f805da98ccd816ebccc48af5b0b186a846c",
      "parents": [
        "8c6f0b65666442814ce4dcdee2a2bd2aa746b88e"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:42:31 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:42:31 2011 +0200"
      },
      "message": "multipathd: Remove handling of \u0027umount\u0027 events\n\numount uevents are gone, so we should be removing\nhandling for it, too.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "8c6f0b65666442814ce4dcdee2a2bd2aa746b88e",
      "tree": "cb074dcde34db3903a03f04a78c92de6f161a2a8",
      "parents": [
        "f89600eb85ef9dd0b507010510a24a6cec3a14f0"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Apr 28 11:05:39 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:40:58 2011 +0200"
      },
      "message": "Safe memory allocation in cli_handlers\n\nValgrind pointed out that the memory returned from realloc() is\nnot initialized. So do that explicitely.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "f89600eb85ef9dd0b507010510a24a6cec3a14f0",
      "tree": "87d03df8089889919424b715910e195bc76335b3",
      "parents": [
        "5a947826b5f3cd4c0437ee6cacf7557cd6f5b410"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Jan 12 10:13:04 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:36:45 2011 +0200"
      },
      "message": "multipathd: Fix uxlsnr race condition on shutdown\n\nThe multipath daemon deallocates some memory structures\nupon shutdown which have been allocated in the thread\ncontext of uxlsnr. Upon shutdown this thread is already\ndone for, taking it\u0027s memory structures with it.\nSo we need to establish a proper pthread cleanup\nhandler here to ensure the memory structures are\nfreed correctly.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "5a947826b5f3cd4c0437ee6cacf7557cd6f5b410",
      "tree": "98ae469431cfbf5816d7158bc44dfcdb7932275a",
      "parents": [
        "d5256f71b32305e36cbabef6ba4243b175ef2785"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Nov 20 12:14:42 2008 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 14:14:11 2011 +0200"
      },
      "message": "Rework sysfs device handling in multipathd\n\nRelying on sysfs devices has the disadvantage that the device\nmight already been gone by the time we look at it. And we don\u0027t\nactually need it for eg device-mapper events as we can get all\nrequired information via the device-mapper ioctl.\nSo only access sysfs if we absolutely have to and try to get\nthe information from other places if possible.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "d5256f71b32305e36cbabef6ba4243b175ef2785",
      "tree": "1cf910c6f17b9d6477f4b4755fc367d769e61f02",
      "parents": [
        "224a6f156408405d42dbc12bcc62e052fbc9bc4b"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:52:39 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:52:39 2011 +0200"
      },
      "message": "multipath: add SuSE init file\n\nThis patch adds /etc/init.d/boot.multipath file for SuSE.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "224a6f156408405d42dbc12bcc62e052fbc9bc4b",
      "tree": "9fe6ac17017b01c3d23f395ecb6d551ac9272582",
      "parents": [
        "932e93baa101a7677afc4fe4032818f40da35b80"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Jan 13 15:28:23 2009 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:48:06 2011 +0200"
      },
      "message": "Checker name is not displayed on failure\n\nIf add_checker() isn\u0027t able to locate the checker\nit won\u0027t display the name in free_checker().\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "932e93baa101a7677afc4fe4032818f40da35b80",
      "tree": "715903e3898e3b02ea11a6d75eedfdd4aac6da21",
      "parents": [
        "750db1f0dc08bf1d96ce64d32786dfe07b8ae3f9"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Nov 18 10:57:27 2008 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:42:20 2011 +0200"
      },
      "message": "Unload priority modules\n\nWe only load the priority modules, but never unload them.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "750db1f0dc08bf1d96ce64d32786dfe07b8ae3f9",
      "tree": "614827bf470ccd3c134b61bc781b49344ca7a9fa",
      "parents": [
        "155f87ade05e27205329f4e833212d330c60b293"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Mar 17 08:32:51 2010 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:38:42 2011 +0200"
      },
      "message": "Display avg priority as group priority\n\nNow average priority is used as path group priority, instead of sum of\npriorities of the paths. But while displaying group priority, sum is\nbeing displayed. Change it to print the average priority.\n\nWhen there are no enabled paths, print 0 as priority.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "155f87ade05e27205329f4e833212d330c60b293",
      "tree": "21fa1974499955a33134ede38353d068b557e2f7",
      "parents": [
        "e7b54e70bdd1d6020351a2af2e92dfb16724f2cd"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Jan 12 10:07:58 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:36:48 2011 +0200"
      },
      "message": "libmultipath: Improve debugging of log messages\n\nWith the current definition of log messages we\nonly see something utterly pointless when using\ngdb:\n(gdb) print *(struct logmsg *)la-\u003ebuff\n$15 \u003d {prio \u003d 6, next \u003d 0x80015a68,\n  str \u003d 0x73687574646f776e \u003cAddress 0x73687574646f776e out of bounds\u003e}\n\nWith this fix we are able to see the message\ndirectly:\n\n(gdb) print *(struct logmsg *)la-\u003ebuff\n$6 \u003d {prio \u003d 5, next \u003d 0x8001b220,\n  str \u003d 0x8001d240 \"--------shut down-------\\n\"}\n\nReferences: bnc#659859\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "e7b54e70bdd1d6020351a2af2e92dfb16724f2cd",
      "tree": "182ecf9ce77ff7ab03cbe9531da59a4de268f47e",
      "parents": [
        "96f81469ff993b6063bb8829d9b336590510466d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu May 27 13:51:23 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:32:17 2011 +0200"
      },
      "message": "libmultipath: rework sysfs handling\n\nsysfs_get_device() is called extremely often, so we need\nto make sure to have that as streamlined as possible.\nSo remove all unused fields and use caching as often as\npossible.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "96f81469ff993b6063bb8829d9b336590510466d",
      "tree": "bf75a35a259f5f1172023a9629c919e44d447181",
      "parents": [
        "1e79548232cbe448d2fa22b3f1bdf6353f961c85"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon May 04 16:46:58 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:25:54 2011 +0200"
      },
      "message": "libmultipath: update waiter handling\n\nThe current \u0027waiter\u0027 structure accesses fields which belong\nto the main \u0027mpp\u0027 structure, which has a totally different\nlifetime. With this patch most of these dependencies are\nremoved and the \u0027waiter\u0027 structure can run independently\nof the main \u0027mpp\u0027 structure, reducing the risk of\nuse-after-free faults.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "1e79548232cbe448d2fa22b3f1bdf6353f961c85",
      "tree": "927f6faf27ff5bc8ada1c09b93069082f7b7ed90",
      "parents": [
        "6b16726c299a7adc7d0d2b9a4da001928c04c341"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri Jan 28 09:21:15 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 12:02:33 2011 +0200"
      },
      "message": "libmultipath: do not fallback to search /proc/partitions\n\ndevt2devname() reverse-maps the device number to the\ndevice name. However, when a device is not found in\n/sys/block/dev it\u0027s pointless to retry searching for\nit in /proc/partitions, as both carry the same information.\nAnd the search in /proc/partitions is only meant for\nsystems not providing /sys/block.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "6b16726c299a7adc7d0d2b9a4da001928c04c341",
      "tree": "bf9b95f466a6d66d46754aac9fef6a37869ceac1",
      "parents": [
        "651847893a8efdc3ed4f24a610db4b307b0dcefd"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Mar 30 10:53:05 2010 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 11:58:19 2011 +0200"
      },
      "message": "Start uevent service handler from main thread\n\nWe should start the uevent handler as early as possible so as\nto not miss out any events. However, we cannot process these\nevents until after all paths have been discovered. So we\nshould be starting the uevent service routine only after\nthe discovery process.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "651847893a8efdc3ed4f24a610db4b307b0dcefd",
      "tree": "320c776fe1f7ac6158cffc61ba4c50b39195f27c",
      "parents": [
        "6888db0777e46ff057de5a48e522a5ac573f6115"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Feb 25 16:10:16 2009 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue May 17 11:29:14 2011 +0200"
      },
      "message": "Use lists for uevent processing\n\nWe now have proper list definitions, so we might as well use them\nfor uevent processing. And we can clean up signalling, too;\nthe pthreads condition signalling is unreliable, as a condition\nsignal might be lost if we\u0027re in the middle of processing. So\nwe should rather check the queue status prior to wait for a\ncondition.\nAnd we can introduce a pthread cleanup handler, as well.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "c0a92138b545b25bd7c99502b25fd9fbcaf1b328",
      "tree": "1bc7c0fb14eb0b542bc482fcad7696fb7587922b",
      "parents": [
        "50192396d7bd3d802d9529550e0229d9beaa9afc"
      ],
      "author": {
        "name": "Ankit Jain",
        "email": "jankit@suse.de",
        "time": "Wed May 11 23:14:24 2011 +0530"
      },
      "committer": {
        "name": "Christophe Varoqui",
        "email": "christophe.varoqui@opensvc.com",
        "time": "Mon May 16 20:10:32 2011 +0200"
      },
      "message": "multipathd: Disassociate from /dev/console when daemonizing\n\nCurrently, multipathd redirects stdout/stderr to /dev/console,\nto be able to show error messages when all else fails.\n\nThis patch redirects them to /dev/null instead, to make it a\nwell behaving daemon. This corresponds to FATE request\nhttps://fate.novell.com/310684 .\n\nThis is based on -\ngit://git.kernel.org/pub/scm/linux/storage/multipath-tools/\n\n----\ncommit a3dd997d1b0b55a934103e0b28648003675743e3\nAuthor: Ankit Jain \u003cjankit@suse.de\u003e\nDate:   Wed May 11 22:18:33 2011 +0530\n\n    multipathd: Disassociate from /dev/console\n\n    When daemonizing, redirect stdout/stderr to /dev/null\n    instead of /dev/console. Also, chdir(\"/\") before the redirection,\n    so that any error can be reported.\n    FATE#310684.\n"
    },
    {
      "commit": "6888db0777e46ff057de5a48e522a5ac573f6115",
      "tree": "eb8cc3174aba2f5ce49d5881d6b541cf7528bee3",
      "parents": [
        "35f543f7f2ef1e6f5e7a73144103bf29f8de4594"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon May 04 14:11:18 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon May 16 12:01:31 2011 +0200"
      },
      "message": "Remove sysfs_attr cache\n\nThe sysfs attribute cache was meant to speed up sysfs accesses.\nHowever, we need to update the cache values on each access, so\nthere is no speedup to be had.\nSo remove it and save memory.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "35f543f7f2ef1e6f5e7a73144103bf29f8de4594",
      "tree": "6d46843747a51a9a030bae280c371611af238a09",
      "parents": [
        "7572f6d457b3f32cf6da22b15a83419e33a1445b"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri Sep 25 11:51:25 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Sun May 15 12:45:12 2011 +0200"
      },
      "message": "Fixup strip trailing whitespaces for getuid return value\n\nThe getuid callout might return a wwid with trailing\nspaces (or containing only spaces). The existing\nfixup code will only work if the getuid callout\nreturns a wwid with the entire space used up.\nSo fixup this and also update the logging output\nto correctly state \u0027\u003cempty\u003e\u0027 if the getuid was\nfound to be empty.\n\nReferences: bnc#542085\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "7572f6d457b3f32cf6da22b15a83419e33a1445b",
      "tree": "3be0eea96533a68ec1e1725e320615015a7a4e52",
      "parents": [
        "3ebb4ea46da6ffcefd296081034b045c9de21caf"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Mar 15 11:25:38 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 18:25:33 2011 +0200"
      },
      "message": "Check return value for select_alias()\n\nselect_alias() might fail, so we need to check the return code\nhere.\n\nReferences: bnc#642846\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "3ebb4ea46da6ffcefd296081034b045c9de21caf",
      "tree": "63b118134324b252f7762c2dc7e0b9005dda2d72",
      "parents": [
        "ed06c6122dba3a42cd6be3ab43e37840644d559d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Mar 15 11:32:34 2011 +0100"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 18:24:57 2011 +0200"
      },
      "message": "Use enum free_path_mode for free_paths argument\n\nThe \u0027free_paths\u0027 argument is really an enum, so we can as well\nmark it as such.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "ed06c6122dba3a42cd6be3ab43e37840644d559d",
      "tree": "d730240f543876cfcaf9d6f4552739fb319840b6",
      "parents": [
        "1f86a09ad6e887be55f4a8ae90ebb8ff963a1076"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 12:21:16 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 12:21:16 2011 +0200"
      },
      "message": "vector paranoia\n\nAs usual error checking in vector.c is non-existent.\nIn this case, if realloc fails we will return NULL but\nleave -\u003eallocated on the previous value.\nAnd checking for empty vectors isn\u0027t a bad idea, either.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "1f86a09ad6e887be55f4a8ae90ebb8ff963a1076",
      "tree": "0d643463c874aee1417ef0a9e8b99923b64e3cb4",
      "parents": [
        "ee20f6da62a84f2637aca267098b2c296eaf1642"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Apr 28 11:03:10 2009 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 12:12:41 2011 +0200"
      },
      "message": "Update cli request processing\n\nAdd error checking to cli packet processing and some whitespace fixes.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "ee20f6da62a84f2637aca267098b2c296eaf1642",
      "tree": "d9a0fbd51b06f70b18b4724382a17a8b3da136bb",
      "parents": [
        "3993be343450970e8c49906a5f39c2ba1cf359e8"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Jul 23 10:42:16 2008 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 10:11:53 2011 +0200"
      },
      "message": "Implement \u0027bindings_file\u0027 option\n\nEarly in boot /var might not be accessible, so this patch implements\na \u0027bindings_file\u0027 option which allows to place the persisting bindings\nfile at a different location.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    },
    {
      "commit": "3993be343450970e8c49906a5f39c2ba1cf359e8",
      "tree": "55e9702289a7f933b979a05d80ff097626c9bbd4",
      "parents": [
        "b8d26fcfdd1d554e396bf572b0092e1d0f9dce80"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 09:55:54 2011 +0200"
      },
      "committer": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri May 13 09:55:54 2011 +0200"
      },
      "message": "kpartx: Intendation fix in devmapper.c\n\nWrong intendation.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\n"
    }
  ],
  "next": "b8d26fcfdd1d554e396bf572b0092e1d0f9dce80"
}
