)]}'
{
  "commit": "5bf295975416f8e97117bbbcfb0191c00bc3e2b4",
  "tree": "9d7ddfe9d4632c8d6cacb6c4dd7b9cb49f837432",
  "parents": [
    "110518bccf076726cc93bf604527d8019aae50ba"
  ],
  "author": {
    "name": "NeilBrown",
    "email": "neilb@suse.de",
    "time": "Thu May 07 12:50:57 2009 +1000"
  },
  "committer": {
    "name": "NeilBrown",
    "email": "neilb@suse.de",
    "time": "Thu May 07 12:50:57 2009 +1000"
  },
  "message": "md: remove ability to explicit set an inactive array to \u0027clean\u0027.\n\nBeing able to write \u0027clean\u0027 to an \u0027array_state\u0027 of an inactive array\nto activate it in \u0027clean\u0027 mode is both unnecessary and inconvenient.\n\nIt is unnecessary because the same can be achieved by writing\n\u0027active\u0027.  This activates and array, but it still remains \u0027clean\u0027\nuntil the first write.\n\nIt is inconvenient because writing \u0027clean\u0027 is more often used to\ncause an \u0027active\u0027 array to revert to \u0027clean\u0027 mode (thus blocking\nany writes until a \u0027write-pending\u0027 is promoted to \u0027active\u0027).\n\nAllowing \u0027clean\u0027 to both activate an array and mark an active array as\nclean can lead to races:  One program writes \u0027clean\u0027 to mark the\nactive array as clean at the same time as another program writes\n\u0027inactive\u0027 to deactivate (stop) and active array.  Depending on which\nwrites first, the array could be deactivated and immediately\nreactivated which isn\u0027t what was desired.\n\nSo just disable the use of \u0027clean\u0027 to activate an array.\n\nThis avoids a race that can be triggered with mdadm-3.0 and external\nmetadata, so it suitable for -stable.\n\nReported-by: Rafal Marszewski \u003crafal.marszewski@intel.com\u003e\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8350bde60d1bdea8e44bba10b0e524e8e60efc7b",
      "old_mode": 33188,
      "old_path": "drivers/md/md.c",
      "new_id": "1dd723d31882626091a2c58c0e57567c21a5b4a4",
      "new_mode": 33188,
      "new_path": "drivers/md/md.c"
    }
  ]
}
