)]}'
{
  "commit": "dd054fce88d33da1aa81d018db75b91b102a6959",
  "tree": "9528caece6b444ebcdb41453b60a1bb4054a1a4d",
  "parents": [
    "9a3e1101b827a59ac9036a672f5fa8d5279d0fe2"
  ],
  "author": {
    "name": "NeilBrown",
    "email": "neilb@suse.de",
    "time": "Fri Dec 23 10:17:53 2011 +1100"
  },
  "committer": {
    "name": "NeilBrown",
    "email": "neilb@suse.de",
    "time": "Fri Dec 23 10:17:53 2011 +1100"
  },
  "message": "md/raid5: handle activation of replacement device when recovery completes.\n\nWhen recovery completes - as reported by a call to -\u003espare_active,\nwe clear In_sync on the original and set it on the replacement.\n\nThen when the original gets removed we move the replacement from\n\u0027replacement\u0027 to \u0027rdev\u0027.\n\nThis could race with other code that is looking at these pointers,\nso we use memory barriers and careful ordering to ensure that\na reader might see one device twice, but never no devices.\nThen the readers guard against using both devices, which could\nonly happen when writing.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "516baf49a1fa6537259c791ec97c801e9728dc10",
      "old_mode": 33188,
      "old_path": "drivers/md/raid5.c",
      "new_id": "b443cd2459df17a39d2072eeedb8b7d394056ad0",
      "new_mode": 33188,
      "new_path": "drivers/md/raid5.c"
    }
  ]
}
