)]}'
{
  "commit": "a9701a30470856408d08657eb1bd7ae29a146190",
  "tree": "eb6ea8c82fdc1b50bf56abadeee63a935034cf27",
  "parents": [
    "bd926c63b7a6843d3ce2728396c0891e54fce5c4"
  ],
  "author": {
    "name": "NeilBrown",
    "email": "neilb@suse.de",
    "time": "Tue Nov 08 21:39:34 2005 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Wed Nov 09 07:56:38 2005 -0800"
  },
  "message": "[PATCH] md: support BIO_RW_BARRIER for md/raid1\n\nWe can only accept BARRIER requests if all slaves handle\nbarriers, and that can, of course, change with time....\n\nSo we keep track of whether the whole array seems safe for barriers,\nand also whether each individual rdev handles barriers.\n\nWe initially assumes barriers are OK.\n\nWhen writing the superblock we try a barrier, and if that fails, we flag\nthings for no-barriers.  This will usually clear the flags fairly quickly.\n\nIf writing the superblock finds that BIO_RW_BARRIER is -ENOTSUPP, we need to\nresubmit, so introduce function \"md_super_wait\" which waits for requests to\nfinish, and retries ENOTSUPP requests without the barrier flag.\n\nWhen writing the real raid1, write requests which were BIO_RW_BARRIER but\nwhich aresn\u0027t supported need to be retried.  So raid1d is enhanced to do this,\nand when any bio write completes (i.e.  no retry needed) we remove it from the\nr1bio, so that devices needing retry are easy to find.\n\nWe should hardly ever get -ENOTSUPP errors when writing data to the raid.\nIt should only happen if:\n  1/ the device used to support BARRIER, but now doesn\u0027t.  Few devices\n     change like this, though raid1 can!\nor\n  2/ the array has no persistent superblock, so there was no opportunity to\n     pre-test for barriers when writing the superblock.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "220273e81ed6b2599b29dc031d4f7a87c486fb01",
      "old_mode": 33188,
      "old_path": "drivers/md/bitmap.c",
      "new_id": "51315302a85e43ab651a4edaba742784d5e04af2",
      "new_mode": 33188,
      "new_path": "drivers/md/bitmap.c"
    },
    {
      "type": "modify",
      "old_id": "caa4add00c1b2240a3eb0579897587e67a51171e",
      "old_mode": 33188,
      "old_path": "drivers/md/md.c",
      "new_id": "199016932de500188c2fb0e04e8dacd6a5946f1f",
      "new_mode": 33188,
      "new_path": "drivers/md/md.c"
    },
    {
      "type": "modify",
      "old_id": "fb6b866c28f5f41e84254cb233fac24782854b22",
      "old_mode": 33188,
      "old_path": "drivers/md/raid1.c",
      "new_id": "1cbf51fbd43fe4539862f39cd6b97e8932d6f36a",
      "new_mode": 33188,
      "new_path": "drivers/md/raid1.c"
    },
    {
      "type": "modify",
      "old_id": "91467a3c4a52c6c99d8b324d0429e4983cad6c13",
      "old_mode": 33188,
      "old_path": "include/linux/raid/md.h",
      "new_id": "13e7c4b62367f6e75d536e1eb124265694db50db",
      "new_mode": 33188,
      "new_path": "include/linux/raid/md.h"
    },
    {
      "type": "modify",
      "old_id": "11629f92180ab966749ae273e045419d3f8c700e",
      "old_mode": 33188,
      "old_path": "include/linux/raid/md_k.h",
      "new_id": "d5854c2b27218e01b2449127394855fd2a5d0eda",
      "new_mode": 33188,
      "new_path": "include/linux/raid/md_k.h"
    },
    {
      "type": "modify",
      "old_id": "60e19b667548feccf6d8dd5cac96ab0c3420c3a5",
      "old_mode": 33188,
      "old_path": "include/linux/raid/raid1.h",
      "new_id": "292b98f2b408dd375154c9bf24569c5289c0f6ee",
      "new_mode": 33188,
      "new_path": "include/linux/raid/raid1.h"
    }
  ]
}
