)]}'
{
  "commit": "d2b698644c97cb033261536a4f2010924a00eac9",
  "tree": "32192650a01c913a85953c0a756fca06320fef46",
  "parents": [
    "b8313b6da7e2e7c7f47d93d8561969a3ff9ba0ea"
  ],
  "author": {
    "name": "Jonathan Brassow",
    "email": "jbrassow@redhat.com",
    "time": "Fri Sep 04 20:40:32 2009 +0100"
  },
  "committer": {
    "name": "Alasdair G Kergon",
    "email": "agk@redhat.com",
    "time": "Fri Sep 04 20:40:32 2009 +0100"
  },
  "message": "dm raid1: do not allow log_failure variable to unset after being set\n\nThis patch fixes a bug which was triggering a case where the primary leg\ncould not be changed on failure even when the mirror was in-sync.\n\nThe case involves the failure of the primary device along with\nthe transient failure of the log device.  The problem is that\nbios can be put on the \u0027failures\u0027 list (due to log failure)\nbefore \u0027fail_mirror\u0027 is called due to the primary device failure.\nNormally, this is fine, but if the log device failure is transient,\na subsequent iteration of the work thread, \u0027do_mirror\u0027, will\nreset \u0027log_failure\u0027.  The \u0027do_failures\u0027 function then resets\nthe \u0027in_sync\u0027 variable when processing bios on the failures list.\nThe \u0027in_sync\u0027 variable is what is used to determine if the\nprimary device can be switched in the event of a failure.  Since\nthis has been reset, the primary device is incorrectly assumed\nto be not switchable.\n\nThe case has been seen in the cluster mirror context, where one\nmachine realizes the log device is dead before the other machines.\nAs the responsibilities of the server migrate from one node to\nanother (because the mirror is being reconfigured due to the failure),\nthe new server may think for a moment that the log device is fine -\nthus resetting the \u0027log_failure\u0027 variable.\n\nIn any case, it is inappropiate for us to reset the \u0027log_failure\u0027\nvariable.  The above bug simply illustrates that it can actually\nhurt us.\n\nCc: stable@kernel.org\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9726577cde493f2ca21b7fd28386d1d2a31c8786",
      "old_mode": 33188,
      "old_path": "drivers/md/dm-raid1.c",
      "new_id": "33f179e66bf55ab5d99d3c3fee3b4d02ab475c1f",
      "new_mode": 33188,
      "new_path": "drivers/md/dm-raid1.c"
    }
  ]
}
