)]}'
{
  "log": [
    {
      "commit": "856e08e23762dfb92ffc68fd0a8d228f9e152160",
      "tree": "fa9977a39da542eebb2129712703c11009a56ff2",
      "parents": [
        "560f8e5532d63a314271bfb99d3d1d53c938ed14"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "message": "md/raid10: avoid reading from known bad blocks - part 1\n\nThis patch just covers the basic read path:\n 1/ read_balance needs to check for badblocks, and return not only\n    the chosen slot, but also how many good blocks are available\n    there.\n 2/ read submission must be ready to issue multiple reads to\n    different devices as different bad blocks on different devices\n    could mean that a single large read cannot be served by any one\n    device, but can still be served by the array.\n    This requires keeping count of the number of outstanding requests\n    per bio.  This count is stored in \u0027bi_phys_segments\u0027\n\nOn read error we currently just fail the request if another target\ncannot handle the whole request.  Next patch refines that a bit.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "560f8e5532d63a314271bfb99d3d1d53c938ed14",
      "tree": "c47cbeb54b1e98f626a3e4af1bf0a184a831d3b9",
      "parents": [
        "1294b9c973251a5e68b62c9b40dd914517bda675"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "message": "md/raid10: Split handle_read_error out from raid10d.\n\nraid10d() is too big and is about to get bigger, so split\nhandle_read_error() out as a separate function.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1294b9c973251a5e68b62c9b40dd914517bda675",
      "tree": "45547cfff8997a3a633490341f8166dc6d00e962",
      "parents": [
        "b84db560ead5417b5594349512baf8837959df4f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "message": "md/raid10: simplify/reindent some loops.\n\nWhen a loop ends with a large if, it can be neater to change the\nif to invert the condition and just \u0027continue\u0027.\nThen the body of the if can be indented to a lower level.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b84db560ead5417b5594349512baf8837959df4f",
      "tree": "77f8cfe305a32ace5f4ead4eb820e3f9fa14ce67",
      "parents": [
        "73e92e51b7969ef5477dd28fe2ae4d77675896f4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:23 2011 +1000"
      },
      "message": "md/raid5: Clear bad blocks on successful write.\n\nOn a successful write to a known bad block, flag the sh\nso that raid5d can remove the known bad block from the list.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "73e92e51b7969ef5477dd28fe2ae4d77675896f4",
      "tree": "05f3d45d6c686abed79c0e5fac1d0b61ae9f93bd",
      "parents": [
        "bc2607f393bd4fb844c1886a02af929ca0372056"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "message": "md/raid5.  Don\u0027t write to known bad block on doubtful devices.\n\nIf a device has seen write errors, don\u0027t write to any known\nbad blocks on that device.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bc2607f393bd4fb844c1886a02af929ca0372056",
      "tree": "45c7f9c538b5e196e389454286771f3beb8628ba",
      "parents": [
        "7f0da59bdc2f65795a57009d78f7753d3aea1de3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "message": "md/raid5: write errors should be recorded as bad blocks if possible.\n\nWhen a write error is detected, don\u0027t mark the device as failed\nimmediately but rather record the fact for handle_stripe to deal with.\n\nHandle_stripe then attempts to record a bad block.  Only if that fails\ndoes the device get marked as faulty.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7f0da59bdc2f65795a57009d78f7753d3aea1de3",
      "tree": "4ab3ae7188122657c12dfab61626d96360fb6240",
      "parents": [
        "31c176ecdf3563140e6395249eda51a18130d9f6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "message": "md/raid5: use bad-block log to improve handling of uncorrectable read errors.\n\nIf we get an uncorrectable read error - record a bad block rather than\nfailing the device.\nAnd if these errors (which may be due to known bad blocks) cause\nrecovery to be impossible, record a bad block on the recovering\ndevices, or abort the recovery.\n\nAs we might abort a recovery without failing a device we need to teach\nRAID5 about recovery_disabled handling.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "31c176ecdf3563140e6395249eda51a18130d9f6",
      "tree": "5ad7dba363214e9d36fa921c221316d2597078ef",
      "parents": [
        "62096bce231b3760882ed91205fc84682d6b0529"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:22 2011 +1000"
      },
      "message": "md/raid5: avoid reading from known bad blocks.\n\nThere are two times that we might read in raid5:\n1/ when a read request fits within a chunk on a single\n   working device.\n   In this case, if there is any bad block in the range of\n   the read, we simply fail the cache-bypass read and\n   perform the read though the stripe cache.\n\n2/ when reading into the stripe cache.  In this case we\n   mark as failed any device which has a bad block in that\n   strip (1 page wide).\n   Note that we will both avoid reading and avoid writing.\n   This is correct (as we will never read from the block, there\n   is no point writing), but not optimal (as writing could \u0027fix\u0027\n   the error) - that will be addressed later.\n\nIf we have not seen any write errors on the device yet, we treat a bad\nblock like a recent read error.  This will encourage an attempt to fix\nthe read error which will either generate a write error, or will\nensure good data is stored there.  We don\u0027t yet forget the bad block\nin that case.  That comes later.\n\nNow that we honour bad blocks when reading we can allow devices with\nbad blocks into the array.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "62096bce231b3760882ed91205fc84682d6b0529",
      "tree": "90b8a89be6f3c1983e88a4b0fe9d5a0e15ccda7e",
      "parents": [
        "3a9f28a5117e00a868dd8b4395f9a707ae56764b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:38:13 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:38:13 2011 +1000"
      },
      "message": "md/raid1: factor several functions out or raid1d()\n\nraid1d is too big with several deep branches.\nSo separate them out into their own functions.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "3a9f28a5117e00a868dd8b4395f9a707ae56764b",
      "tree": "36fe0fc7a7ccfc0da03dea546286b7bdef581246",
      "parents": [
        "d8f05d2995d467a91db1af01637e6ffd94660ca8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:33:42 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:33:42 2011 +1000"
      },
      "message": "md/raid1: improve handling of read failure during recovery.\n\nIf we cannot read a block from anywhere during recovery, there is\nnow a better approach than just giving up.\nWe can record a bad block on each device and keep going - being\ncareful not to clear the bad block when a write succeeds as it might -\nit will be a write of incorrect data.\n\nWe have now reached the state where - for raid1 - we only call\nmd_error if md_set_badblocks has failed.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "d8f05d2995d467a91db1af01637e6ffd94660ca8",
      "tree": "e35959bc4f6c370c982df8222eb818c720b94ffd",
      "parents": [
        "cd5ff9a16f0831f68c1024d5d776075b5123b034"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:33:00 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:33:00 2011 +1000"
      },
      "message": "md/raid1: record badblocks found during resync etc.\n\nIf we find a bad block while writing as part of resync/recovery we\nneed to report that back to raid1d which must record the bad block,\nor fail the device.\n\nSimilarly when fixing a read error, a further error should just\nrecord a bad block if possible rather than failing the device.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "cd5ff9a16f0831f68c1024d5d776075b5123b034",
      "tree": "490e297bde3d0c52b55d38b38ed1cdb5b5b6f43e",
      "parents": [
        "2ca68f5ed7383733102ee53cd8fa4021ecc3b275"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:32:41 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:32:41 2011 +1000"
      },
      "message": "md/raid1:  Handle write errors by updating badblock log.\n\nWhen we get a write error (in the data area, not in metadata),\nupdate the badblock log rather than failing the whole device.\n\nAs the write may well be many blocks, we trying writing each\nblock individually and only log the ones which fail.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "2ca68f5ed7383733102ee53cd8fa4021ecc3b275",
      "tree": "29543cff802770d90380b889cf8b0cc01e7d1814",
      "parents": [
        "4367af556133723d0f443e14ca8170d9447317cb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:32:10 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:32:10 2011 +1000"
      },
      "message": "md/raid1: store behind-write pages in bi_vecs.\n\nWhen performing write-behind we allocate pages to store the data\nduring write.\nPreviously we just keep a list of pages.  Now we keep a list of\nbi_vec which includes offset and size.\nThis means that the r1bio has complete information to create a new\nbio which will be needed for retrying after write errors.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "4367af556133723d0f443e14ca8170d9447317cb",
      "tree": "d87bb40920f0f43cea586b7dd99b45f713ffd614",
      "parents": [
        "1f68f0c4b677ccd6935ff61e4e6888787505f8dc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:49 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:49 2011 +1000"
      },
      "message": "md/raid1: clear bad-block record when write succeeds.\n\nIf we succeed in writing to a block that was recorded as\nbeing bad, we clear the bad-block record.\n\nThis requires some delayed handling as the bad-block-list update has\nto happen in process-context.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "1f68f0c4b677ccd6935ff61e4e6888787505f8dc",
      "tree": "aaff73efbc3fb7b6092eb2106e142e1684c4b554",
      "parents": [
        "0b7d83865cb7a60b1768212c1e60b8fd7c280506"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "message": "md/raid1: avoid writing to known-bad blocks on known-bad drives.\n\nIf we have seen any write error on a drive, then don\u0027t write to\nany known-bad blocks on that drive.\nIf necessary, we divide the write request up into pieces just\nlike we do for reads, so each piece is either all written or\nall not written to any given drive.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "0b7d83865cb7a60b1768212c1e60b8fd7c280506",
      "tree": "6a2bd09b219504e4ae8649d77eff487191667d24",
      "parents": [
        "de393cdea66cbd63c90725663f400c76faf1b255"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "message": "md: update documentation for md/rdev/state sysfs interface\n\nPrevious patches in the bad block series extended behavior of\nrdev\u0027s \u0027state\u0027 interface but lacked documentation update.\nFix it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "de393cdea66cbd63c90725663f400c76faf1b255",
      "tree": "6a2bf37bee98bf7de42856f904bd23c81e082f8e",
      "parents": [
        "d7a9d443bc8a75a24873c0506f50051edfedc714"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "message": "md: make it easier to wait for bad blocks to be acknowledged.\n\nIt is only safe to choose not to write to a bad block if that bad\nblock is safely recorded in metadata - i.e. if it has been\n\u0027acknowledged\u0027.\n\nIf it hasn\u0027t we need to wait for the acknowledgement.\n\nWe support that using rdev-\u003eblocked wait and\nmd_wait_for_blocked_rdev by introducing a new device flag\n\u0027BlockedBadBlock\u0027.\n\nThis flag is only advisory.\nIt is cleared whenever we acknowledge a bad block, so that a waiter\ncan re-check the particular bad blocks that it is interested it.\n\nIt should be set by a caller when they find they need to wait.\nThis (set after test) is inherently racy, but as\nmd_wait_for_blocked_rdev already has a timeout, losing the race will\nhave minimal impact.\n\nWhen we clear \"Blocked\" was also clear \"BlockedBadBlocks\" incase it\nwas set incorrectly (see above race).\n\nWe also modify the way we manage \u0027Blocked\u0027 to fit better with the new\nhandling of \u0027BlockedBadBlocks\u0027 and to make it consistent between\nexternally managed and internally managed metadata.   This requires\nthat each raidXd loop checks if the metadata needs to be written and\ntriggers a write (md_check_recovery) if needed.  Otherwise a queued\nwrite request might cause raidXd to wait for the metadata to write,\nand only that thread can write it.\n\nBefore writing metadata, we set FaultRecorded for all devices that\nare Faulty, then after writing the metadata we clear Blocked for any\ndevice for which the Fault was certainly Recorded.\n\nThe \u0027faulty\u0027 device flag now appears in sysfs if the device is faulty\n*or* it has unacknowledged bad blocks.  So user-space which does not\nunderstand bad blocks can continue to function correctly.\nUser space which does, should not assume a device is faulty until it\nsees the \u0027faulty\u0027 flag, and then sees the list of unacknowledged bad\nblocks is empty.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d7a9d443bc8a75a24873c0506f50051edfedc714",
      "tree": "6255771f6cca87698dcc8eb11d62e7fc217b8d0b",
      "parents": [
        "06f603851fa90bcd236328438278d4dc8b655495"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "message": "md: add \u0027write_error\u0027 flag to component devices.\n\nIf a device has ever seen a write error, we will want to handle\nknown-bad-blocks differently.\nSo create an appropriate state flag and export it via sysfs.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "06f603851fa90bcd236328438278d4dc8b655495",
      "tree": "49a7f239a9c2de4bf97d998f161b229a565e33cd",
      "parents": [
        "d2eb35acfdccbe2a3622ed6cc441a5482148423b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "message": "md/raid1: avoid reading known bad blocks during resync\n\nWhen performing resync/etc, keep the size of the request\nsmall enough that it doesn\u0027t overlap any known bad blocks.\nDevices with badblocks at the start of the request are completely\nexcluded.\nIf there is nowhere to read from due to bad blocks, record\na bad block on each target device.\n\nNow that we never read from known-bad-blocks we can allow devices with\nknown-bad-blocks into a RAID1.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d2eb35acfdccbe2a3622ed6cc441a5482148423b",
      "tree": "77600cab29fc9e1fd39d612773086a456fc32d88",
      "parents": [
        "9f2f3830789a4c9c1af2d1437d407c43e05136e6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:48 2011 +1000"
      },
      "message": "md/raid1: avoid reading from known bad blocks.\n\nNow that we have a bad block list, we should not read from those\nblocks.\nThere are several main parts to this:\n  1/ read_balance needs to check for bad blocks, and return not only\n     the chosen device, but also how many good blocks are available\n     there.\n  2/ fix_read_error needs to avoid trying to read from bad blocks.\n  3/ read submission must be ready to issue multiple reads to\n     different devices as different bad blocks on different devices\n     could mean that a single large read cannot be served by any one\n     device, but can still be served by the array.\n     This requires keeping count of the number of outstanding requests\n     per bio.  This count is stored in \u0027bi_phys_segments\u0027\n  4/ retrying a read needs to also be ready to submit a smaller read\n     and queue another request for the rest.\n\nThis does not yet handle bad blocks when reading to perform resync,\nrecovery, or check.\n\n\u0027md_trim_bio\u0027 will also be used for RAID10, so put it in md.c and\nexport it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9f2f3830789a4c9c1af2d1437d407c43e05136e6",
      "tree": "8e20afbfca82acd7346fb93d35170f44ee01a807",
      "parents": [
        "2699b67223aca6b1450fc2f72e40fada952afc85"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "message": "md: Disable bad blocks and v0.90 metadata.\n\nv0.90 metadata cannot record bad blocks, so when loading metadata\nfor such a device, set shift to -1.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2699b67223aca6b1450fc2f72e40fada952afc85",
      "tree": "c84d0cbb763ad03cd770a218a37f0f1ec31118af",
      "parents": [
        "34b343cff4354ab9864be83be88405fd53d928a0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "message": "md: load/store badblock list from v1.x metadata\n\nSpace must have been allocated when array was created.\nA feature flag is set when the badblock list is non-empty, to\nensure old kernels don\u0027t load and trust the whole device.\n\nWe only update the on-disk badblocklist when it has changed.\nIf the badblocklist (or other metadata) is stored on a bad block, we\ndon\u0027t cope very well.\n\nIf metadata has no room for bad block, flag bad-blocks as disabled,\nand do the same for 0.90 metadata.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "34b343cff4354ab9864be83be88405fd53d928a0",
      "tree": "10d75ecac6091f955cbb8a60b79f443355ca4ea8",
      "parents": [
        "6e0d2d0312fb20c1edac1b2c849068c1c7944abf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "message": "md: don\u0027t allow arrays to contain devices with bad blocks.\n\nAs no personality understand bad block lists yet, we must\nreject any device that is known to contain bad blocks.\nAs the personalities get taught, these tests can be removed.\n\nThis only applies to raid1/raid5/raid10.\nFor linear/raid0/multipath/faulty the whole concept of bad blocks\ndoesn\u0027t mean anything so there is no point adding the checks.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "6e0d2d0312fb20c1edac1b2c849068c1c7944abf",
      "tree": "5272bdcaf69ccc6d3f2b4e6df90a530d8ee69fbb",
      "parents": [
        "16c791a5af3e50d0c11760485fd68e5829f3be4d"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "message": "md: add documentation for bad block log\n\nPrevious patch in the bad block series added new sysfs interfaces\n([unacknowledged_]bad_blocks) for each rdev without documentation.\nAdd it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "16c791a5af3e50d0c11760485fd68e5829f3be4d",
      "tree": "24182e37b278a55a9b05b19154ff52597d220714",
      "parents": [
        "2230dfe4ccc3add340dc6d437965b2de1d269fde"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:47 2011 +1000"
      },
      "message": "md/bad-block-log: add sysfs interface for accessing bad-block-log.\n\nThis can show the log (providing it fits in one page) and\nallows bad blocks to be \u0027acknowledged\u0027 meaning that they\nhave safely been recorded in metadata.\n\nClearing bad blocks is not allowed via sysfs (except for\ncode testing).  A bad block can only be cleared when\na write to the block succeeds.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "2230dfe4ccc3add340dc6d437965b2de1d269fde",
      "tree": "fc45b727ad2e1a148e7d20f327b45a3afc474e9d",
      "parents": [
        "a519b26dbe6533416d21b552053b0bf687f878d7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:46 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:31:46 2011 +1000"
      },
      "message": "md: beginnings of bad block management.\n\nThis the first step in allowing md to track bad-blocks per-device so\nthat we can fail individual blocks rather than the whole device.\n\nThis patch just adds a data structure for recording bad blocks, with\nroutines to add, remove, search the list.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "a519b26dbe6533416d21b552053b0bf687f878d7",
      "tree": "bef24eab8604ef2275eb8f1b591ea52bd4b89194",
      "parents": [
        "768e587e18c1c4ce0403b9532115752189422408"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 07:56:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 07:56:24 2011 +1000"
      },
      "message": "md: remove suspicious size_of()\n\nWhen calling bioset_create we pass the size of the front_pad as\n   sizeof(mddev)\nwhich looks suspicious as mddev is a pointer and so it looks like a\ncommon mistake where\n   sizeof(*mddev)\nwas intended.\nThe size is actually correct as we want to store a pointer in the\nfront padding of the bios created by the bioset, so make the intent\nmore explicit by using\n   sizeof(mddev_t *)\n\nReported-by: Zdenek Kabelac \u003czdenek.kabelac@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "768e587e18c1c4ce0403b9532115752189422408",
      "tree": "1b0d65fc839aa562c409a46984e1e15b1ae629d6",
      "parents": [
        "3520fa4db7fc4ae1b0373dcecdaf720f620dab2d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Jul 27 11:00:37 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:37 2011 +1000"
      },
      "message": "MD: generate an event when array sync is complete\n\nThis patch causes MD to generate an event (for device-mapper) when the\nsynchronization thread is reaped.  This is expected behavior for device-mapper.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "3520fa4db7fc4ae1b0373dcecdaf720f620dab2d",
      "tree": "62c675a29c65f89ec15f4a52203e5e0f731c2aa5",
      "parents": [
        "654e8b5abc0a793f0c029128db6e4804691a383e"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Jul 27 11:00:37 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:37 2011 +1000"
      },
      "message": "MD bitmap: Revert DM dirty log hooks\n\n\nRevert most of commit e384e58549a2e9a83071ad80280c1a9053cfd84c\n  md/bitmap: prepare for storing write-intent-bitmap via dm-dirty-log.\n\nMD should not need to use DM\u0027s dirty log - we decided to use md\u0027s\nbitmaps instead.\n\nKeeping the DIV_ROUND_UP clean-ups that were part of commit\ne384e58549a2e9a83071ad80280c1a9053cfd84c, however.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "654e8b5abc0a793f0c029128db6e4804691a383e",
      "tree": "536950fcc8c418c8716ba152e439fe86d24f3365",
      "parents": [
        "8cfa7b0f67b4d899efc7f39eb7e172fd79237811"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "MD: raid1 s/sysfs_notify_dirent/sysfs_notify_dirent_safe\n\nIf device-mapper creates a RAID1 array that includes devices to\nbe rebuilt, it will deref a NULL pointer when finished because\nsysfs is not used by device-mapper instantiated RAID devices.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8cfa7b0f67b4d899efc7f39eb7e172fd79237811",
      "tree": "df1002e5eccbf4b241dc9e948bb894de2106d6e2",
      "parents": [
        "cbea21703b2484f83faef040ed1de30114794392"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: Avoid BUG caused by multiple failures.\n\nWhile preparing to write a stripe we keep the parity block or blocks\nlocked (R5_LOCKED) - towards the end of schedule_reconstruction.\n\nIf the array is discovered to have failed before this write completes\nwe can leave those blocks LOCKED, and init_stripe will notice that a\nfree stripe still has a locked block and will complain.\n\nSo clear the R5_LOCKED flag in handle_failed_stripe, and demote the\n\u0027BUG\u0027 to a \u0027WARN_ON\u0027.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "cbea21703b2484f83faef040ed1de30114794392",
      "tree": "a6b06a5341cb8ece8807b09d3f35f928671b8578",
      "parents": [
        "ddd5115fe5594f5aae3c7f0008a5327bb1d19397"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid10: move rdev-\u003ecorrected_errors counting\n\nRead errors are considered to corrected if write-back and re-read\ncycle is finished without further problems. Thus moving the rdev-\u003e\ncorrected_errors counting after the re-reading looks more reasonable\nIMHO.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ddd5115fe5594f5aae3c7f0008a5327bb1d19397",
      "tree": "a3bfeaea386bbecb4bc4cd56ff3139c5d9975981",
      "parents": [
        "9d3d80113df824a266c5db3fac357a036ebc0b62"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: move rdev-\u003ecorrected_errors counting\n\nRead errors are considered to corrected if write-back and re-read\ncycle is finished without further problems. Thus moving the rdev-\u003e\ncorrected_errors counting after the re-reading looks more reasonable\nIMHO.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9d3d80113df824a266c5db3fac357a036ebc0b62",
      "tree": "26607a8761b06cfc05e4259a6609a48d9dab3f26",
      "parents": [
        "65a06f06744d3deae61f3596566952a8da92199f"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid1: move rdev-\u003ecorrected_errors counting\n\nRead errors are considered to corrected if write-back and re-read\ncycle is finished without further problems. Thus moving the rdev-\u003e\ncorrected_errors counting after the re-reading looks more reasonable\nIMHO. Also included a couple of whitespace fixes on sync_page_io().\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "65a06f06744d3deae61f3596566952a8da92199f",
      "tree": "5befc4ef2e1965c55a112d436bd980ff6c0bef55",
      "parents": [
        "700c72138938cf428c74379806886c6b017d6295"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md: get rid of unnecessary casts on page_address()\n\npage_address() returns void pointer, so the casts can be removed.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "700c72138938cf428c74379806886c6b017d6295",
      "tree": "93ca6eb628d36e841131aa62a85b45d16b3f45fa",
      "parents": [
        "2bb77736ae5dca0a189829fbb7379d43364a9dac"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid10: Improve decision on whether to fail a device with a read error.\n\nNormally we would fail a device with a READ error.  However if doing\nso causes the array to fail, it is better to leave the device\nin place and just return the read error to the caller.\n\nThe current test for decide if the array will fail is overly\nsimplistic.\nWe have a function \u0027enough\u0027 which can tell if the array is failed or\nnot, so use it to guide the decision.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2bb77736ae5dca0a189829fbb7379d43364a9dac",
      "tree": "a15efb6810aaf67af679bd05edb5419ac9f19583",
      "parents": [
        "5389042ffa36976caa45a79af16081d759001fa7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid10: Make use of new recovery_disabled handling\n\nWhen we get a read error during recovery, RAID10 previously\narranged for the recovering device to appear to fail so that\nthe recovery stops and doesn\u0027t restart.  This is misleading and wrong.\n\nInstead, make use of the new recovery_disabled handling and mark\nthe target device and having recovery disabled.\n\nAdd appropriate checks in add_disk and remove_disk so that devices\nare removed and not re-added when recovery is disabled.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5389042ffa36976caa45a79af16081d759001fa7",
      "tree": "eb303de141a50f41ccac438e734b65dbfe25825e",
      "parents": [
        "a478a069b6adf186373a6648c54fc5f1d3c2f8eb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md: change managed of recovery_disabled.\n\nIf we hit a read error while recovering a mirror, we want to abort the\nrecovery without necessarily failing the disk - as having a disk this\na read error is better than not having an array at all.\n\nCurrently this is managed with a per-array flag \"recovery_disabled\"\nand is only implemented for RAID1.  For RAID10 we will need finer\ngrained control as we might want to disable recovery for individual\ndevices separately.\n\nSo push more of the decision making into the personality.\n\u0027recovery_disabled\u0027 is now a \u0027cookie\u0027 which is copied when the\npersonality want to disable recovery and is changed when a device is\nadded to the array as this is used as a trigger to \u0027try recovery\nagain\u0027.\n\nThis will allow RAID10 to get the control that it needs.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a478a069b6adf186373a6648c54fc5f1d3c2f8eb",
      "tree": "ac10604e2b0e3525c25c6fb23128ab1fc858a550",
      "parents": [
        "36fad858a7404a9656122a9e560a224ae2a00979"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md: remove ro check in md_check_recovery()\n\nCommit c89a8eee6154 (\"Allow faulty devices to be removed from a\nreadonly array.\") added some work on ro array in the function,\nbut it couldn\u0027t be done since we didn\u0027t allow the ro array to be\nhandled from the beginning. Fix it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "36fad858a7404a9656122a9e560a224ae2a00979",
      "tree": "95f8a7a6b8dad6bb8d7c7735f7845888b5e702db",
      "parents": [
        "8bda470e8ebde35f9349e98ecbce4dfb508a60fa"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md: introduce link/unlink_rdev() helpers\n\nThere are places where sysfs links to rdev are handled\nin a same way. Add the helper functions to consolidate\nthem.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8bda470e8ebde35f9349e98ecbce4dfb508a60fa",
      "tree": "105aa6781eef93c5a2f996c53dfa25fbce818dfe",
      "parents": [
        "a0a02a7ad62b5615b17294c2075e4916f8d1f0a4"
      ],
      "author": {
        "name": "Christian Dietrich",
        "email": "christian.dietrich@informatik.uni-erlangen.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid: use printk_ratelimited instead of printk_ratelimit\n\nAs per printk_ratelimit comment, it should not be used.\n\nSigned-off-by: Christian Dietrich \u003cchristian.dietrich@informatik.uni-erlangen.de\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a0a02a7ad62b5615b17294c2075e4916f8d1f0a4",
      "tree": "e3f9f7582a869915d3ac8242253c822b61e77e4b",
      "parents": [
        "acfe726bdd0000a9be1b308b29fad1e9ae62178c"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md: use proper little-endian bitops\n\nUsing __test_and_{set,clear}_bit_le() with ignoring its return value\ncan be replaced with __{set,clear}_bit_le().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: NeilBrown \u003cneilb@suse.de\u003e\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "acfe726bdd0000a9be1b308b29fad1e9ae62178c",
      "tree": "468713f2be848747723b89fe5afbf39cdfc375ef",
      "parents": [
        "474af965fe0005b334cabdb2904a7d712c21489b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: finalise new merged handle_stripe.\n\nhandle_stripe5() and handle_stripe6() are now virtually identical.\nSo discard one and rename the other to \u0027analyse_stripe()\u0027.\n\nIt always returns 0, so change it to \u0027void\u0027 and remove the \u0027done\u0027\nvariable in handle_stripe().\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "474af965fe0005b334cabdb2904a7d712c21489b",
      "tree": "1d63b4bbe47e2976dd10e7fa4674299b58efc45a",
      "parents": [
        "84789554e96c0263ad8aa9be91397ece1f88c768"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: move some more common code into handle_stripe\n\nThe RAID6 version of this code is usable for RAID5 providing:\n  - we test \"conf-\u003emax_degraded\" rather than \"2\" as appropriate\n  - we make sure s-\u003efailed_num[1] is meaningful (and not \u0027-1\u0027)\n    when s-\u003efailed \u003e 1\n\nThe \u0027return 1\u0027 must become \u0027goto finish\u0027 in the new location.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "84789554e96c0263ad8aa9be91397ece1f88c768",
      "tree": "678ee7d5ba7a1473d4fd532a80e878b228c2066b",
      "parents": [
        "c8ac1803ff0af5aa614587ac0c66d46b7a3bdfcc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: move more common code into handle_stripe\n\nApart from \u0027prexor\u0027 which can only be set for RAID5, and\n\u0027qd_idx\u0027 which can only be meaningful for RAID6, these two\nchunks of code are nearly the same.\n\nSo combine them into one adding a test to call either\nhandle_parity_checks5 or handle_parity_checks6 as appropriate.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "c8ac1803ff0af5aa614587ac0c66d46b7a3bdfcc",
      "tree": "e1ac80fb2151802d8a2654b5c91e06c77c0f3686",
      "parents": [
        "93b3dbce6456a79c545b45e86ccc2244e923cc99"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: unite handle_stripe_dirtying5 and handle_stripe_dirtying6\n\nRAID6 is only allowed to choose \u0027reconstruct-write\u0027 while RAID5 is\nalso allow \u0027read-modify-write\u0027\nApart from this difference, handle_stripe_dirtying[56] are nearly\nidentical.  So resolve these differences and create just one function.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "93b3dbce6456a79c545b45e86ccc2244e923cc99",
      "tree": "6f129f4bc8d309ed681e21bcb98009834becc898",
      "parents": [
        "5d35e09cae47bbae2739f432658860680de21866"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: unite fetch_block5 and fetch_block6\n\nProvided that -\u003efailed_num[1] is not a valid device number (which is\neasily achieved) fetch_block6 provides all the functionality of\nfetch_block5.\n\nSo remove the latter and rename the former to simply \"fetch_block\".\n\nThen handle_stripe_fill5 and handle_stripe_fill6 become the same and\ncan similarly be united.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "5d35e09cae47bbae2739f432658860680de21866",
      "tree": "619a548f43403883f394062f3397de2ca6eb6c4a",
      "parents": [
        "c5a3100062cf277d3edd4e6f4a1f1e403524b464"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: rearrange a test in fetch_block6.\n\nNext patch will unite fetch_block5 and fetch_block6.\nFirst I want to make the differences a little more clear.\n\nFor RAID6 if we are writing at all and there is a failed device, then\nwe need to load or compute every block so we can do a\nreconstruct-write.\nThis case isn\u0027t needed for RAID5 - we will do a read-modify-write in\nthat case.\nSo make that test a separate test in fetch_block6 rather than merged\nwith two other tests.\n\nMake a similar change in fetch_block5 so the one bit that is not\nneeded for RAID6 is clearly separate.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "c5a3100062cf277d3edd4e6f4a1f1e403524b464",
      "tree": "ccc8f2ae6491497cd8ad172a3bbc0165f86edcdf",
      "parents": [
        "3687c061886dd0bfec07e131ad12f916ef0abc62"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: move more code into common handle_stripe\n\nThe difference between the RAID5 and RAID6 code here is easily\nresolved using conf-\u003emax_degraded.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "3687c061886dd0bfec07e131ad12f916ef0abc62",
      "tree": "c8f65f4895db3f9c1554f766a430829d40fe7c19",
      "parents": [
        "86c374ba9f6726a79a032ede741dc66d219b166e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: Move code for finishing a reconstruction into handle_stripe.\n\nPrior to commit ab69ae12ceef7 the code in handle_stripe5 and\nhandle_stripe6 to \"Finish reconstruct operations initiated by the\nexpansion process\" was identical.\nThat commit added an identical stanza of code to each function, but in\ndifferent places.  That was careless.\n\nThe raid5 code was correct, so move that out into handle_stripe and\nremove raid6 version.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "86c374ba9f6726a79a032ede741dc66d219b166e",
      "tree": "58bf8de967c300828e3176459455a86d68e27971",
      "parents": [
        "cc94015a9eac5d511fe9b716624d8fdf9c6e64b2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 27 11:00:36 2011 +1000"
      },
      "message": "md/raid5: Remove stripe_head_state arg from handle_stripe_expansion.\n\nThis arg is only used to differentiate between RAID5 and RAID6 but\nthat is not needed.  For RAID5, raid5_compute_sector will set qd_idx\nto \"~0\" so j with certainly not equals qd_idx, so there is no need\nfor a guard on that condition.\n\nSo remove the guard and remove the arg from the declaration and\ncallers of handle_stripe_expansion.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "cc94015a9eac5d511fe9b716624d8fdf9c6e64b2",
      "tree": "f8bc6cb3e5733f7101ea66223c27e30dc09b9bb1",
      "parents": [
        "c5709ef6a094c72b56355590bfa55cc107e98376"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:35 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:35 2011 +1000"
      },
      "message": "md/raid5: move stripe_head_state and more code into handle_stripe.\n\nBy defining the \u0027stripe_head_state\u0027 in \u0027handle_stripe\u0027, we can move\nsome common code out of handle_stripe[56]() and into handle_stripe.\n\nThe means that all accesses for stripe_head_state in handle_stripe[56]\nneed to be \u0027s-\u003e\u0027 instead of \u0027s.\u0027, but the compiler should inline\nthose functions and just use a direct stack reference, and future\npatches while hoist most of this code up into handle_stripe()\nso we will revert to \"s.\".\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "c5709ef6a094c72b56355590bfa55cc107e98376",
      "tree": "60e6208feff1ca8da4ce9a90cae3ef9d028d72fc",
      "parents": [
        "f2b3b44deee1524ca4f006048e0569f47eefdb74"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:20 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:20 2011 +1000"
      },
      "message": "md/raid5:  add some more fields to stripe_head_state\n\nAdding these three fields will allow more common code to be moved\nto handle_stripe()\n\nstruct field rearrangement by Namhyung Kim.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "f2b3b44deee1524ca4f006048e0569f47eefdb74",
      "tree": "49f758f1f46ceb9bbab9bdaa40117030f031a0b8",
      "parents": [
        "82e5a1718b9d0401b826341b9023766d04cb82f2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:19 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:19 2011 +1000"
      },
      "message": "md/raid5: unify stripe_head_state and r6_state\n\n\u0027struct stripe_head_state\u0027 stores state about the \u0027current\u0027 stripe\nthat is passed around while handling the stripe.\nFor RAID6 there is an extension structure: r6_state, which is also\npassed around.\nThere is no value in keeping these separate, so move the fields from\nthe latter into the former.\n\nThis means that all code now needs to treat s-\u003efailed_num as an small\narray, but this is a small cost.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "82e5a1718b9d0401b826341b9023766d04cb82f2",
      "tree": "4c1f26a7c547be3eb3d710834e35876073b86739",
      "parents": [
        "c4c1663be46b2ab94e59d3e0c583a8f6b188ff0c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:15 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:35:15 2011 +1000"
      },
      "message": "md/raid5: move common code into handle_stripe\n\nThere is common code at the start of handle_stripe5 and\nhandle_stripe6.  Move it into handle_stripe.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "c4c1663be46b2ab94e59d3e0c583a8f6b188ff0c",
      "tree": "2e0b6b51c0a55c5f9edad2c832a66c9949ef496d",
      "parents": [
        "cbe47ec559c33a68b5ee002051b848d1531a8adb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:34:20 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:34:20 2011 +1000"
      },
      "message": "md/raid5: replace sh-\u003elock with an \u0027active\u0027 flag.\n\nsh-\u003elock is now mainly used to ensure that two threads aren\u0027t running\nin the locked part of handle_stripe[56] at the same time.\n\nThat can more neatly be achieved with an \u0027active\u0027 flag which we set\nwhile running handle_stripe.  If we find the flag is set, we simply\nrequeue the stripe for later by setting STRIPE_HANDLE.\n\nFor safety we take -\u003edevice_lock while examining the state of the\nstripe and creating a summary in \u0027stripe_head_state / r6_state\u0027.\nThis possibly isn\u0027t needed but as shared fields like -\u003etoread,\n-\u003etowrite are checked it is safer for now at least.\n\nWe leave the label after the old \u0027unlock\u0027 called \"unlock\" because it\nwill disappear in a few patches, so renaming seems pointless.\n\nThis leaves the stripe \u0027locked\u0027 for longer as we clear STRIPE_ACTIVE\nlater, but that is not a problem.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "cbe47ec559c33a68b5ee002051b848d1531a8adb",
      "tree": "922184b1b599ce0e97f01d7fc6a84fc4c8493a0c",
      "parents": [
        "83206d66b65118d995c38746f21edc2bb8564b49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:20:35 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:20:35 2011 +1000"
      },
      "message": "md/raid5: Protect some more code with -\u003edevice_lock.\n\nOther places that change or follow dev-\u003etowrite and dev-\u003ewritten take\nthe device_lock as well as the sh-\u003elock.\nSo it should really be held in these places too.\nAlso, doing so will allow sh-\u003elock to be discarded.\n\nwith merged fixes by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "83206d66b65118d995c38746f21edc2bb8564b49",
      "tree": "69e1c082cb33d19a508c764da613e0c6b5ced27b",
      "parents": [
        "ffd96e35c16a99fdb490cc5723b8e32135ae5883"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:19:49 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 26 11:19:49 2011 +1000"
      },
      "message": "md/raid5: Remove use of sh-\u003elock in sync_request\n\nThis is the start of a series of patches to remove sh-\u003elock.\n\nsync_request takes sh-\u003elock before setting STRIPE_SYNCING to ensure\nthere is no race with testing it in handle_stripe[56].\n\nInstead, use a new flag STRIPE_SYNC_REQUESTED and test it early\nin handle_stripe[56] (after getting the same lock) and perform the\nsame set/clear operations if it was set.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\n"
    },
    {
      "commit": "ffd96e35c16a99fdb490cc5723b8e32135ae5883",
      "tree": "0ae71ae96af464f9e2edb60cdcfdc32e5cd92388",
      "parents": [
        "6ce328462c1145a217ba1f27b882743be1407759"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jul 18 17:38:51 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 18 17:38:51 2011 +1000"
      },
      "message": "md/raid5: get rid of duplicated call to bio_data_dir()\n\nIn raid5::make_request(), once bio_data_dir(@bi) is detected\nit never (and couldn\u0027t) be changed. Use the result always.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6ce328462c1145a217ba1f27b882743be1407759",
      "tree": "53eb00f1fbbb002f4f3d74a0e1ed09131377a70d",
      "parents": [
        "c65060ad4274f70048d62e0a86332cd3fd23f28d"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jul 18 17:38:50 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 18 17:38:50 2011 +1000"
      },
      "message": "md/raid5: use kmem_cache_zalloc()\n\nReplace kmem_cache_alloc + memset(,0,) to kmem_cache_zalloc.\nI think it\u0027s not harmful since @conf-\u003eslab_cache already knows\nactual size of struct stripe_head.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c65060ad4274f70048d62e0a86332cd3fd23f28d",
      "tree": "5e6c3cfeb122da72e1bfa3bea07d8f16f453dc9f",
      "parents": [
        "778ca01852e6cc9ff335119b37a1938a978df384"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jul 18 17:38:49 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 18 17:38:49 2011 +1000"
      },
      "message": "md/raid10: share pages between read and write bio\u0027s during recovery\n\nWhen performing a recovery, only first 2 slots in r10_bio are in use,\nfor read and write respectively. However all of pages in the write bio\nare never used and just replaced to read bio\u0027s when the read completes.\n\nGet rid of those unused pages and share read pages properly.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "778ca01852e6cc9ff335119b37a1938a978df384",
      "tree": "845221188a1ffaafddac1041c8ced88ac9e6d8c2",
      "parents": [
        "2c4193df379bb89114ff60d4b0fa66131abe6a75"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jul 18 17:38:47 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 18 17:38:47 2011 +1000"
      },
      "message": "md/raid10: factor out common bio handling code\n\nWhen normal-write and sync-read/write bio completes, we should\nfind out the disk number the bio belongs to. Factor those common\ncode out to a separate function.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2c4193df379bb89114ff60d4b0fa66131abe6a75",
      "tree": "5eed0d76e3b8ae12a543e0deab771c48f6597a40",
      "parents": [
        "1765a367a3b5d5e9692949b0c5ec933eff2c0701"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jul 18 17:38:43 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 18 17:38:43 2011 +1000"
      },
      "message": "md/raid10: get rid of duplicated conditional expression\n\nVariable \u0027first\u0027 is initialized to zero and updated to @rdev-\u003eraid_disk\nonly if it is greater than 0. Thus condition \u0027\u003e\u003d first\u0027 always implies\n\u0027\u003e\u003d 0\u0027 so the latter is not needed.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1765a367a3b5d5e9692949b0c5ec933eff2c0701",
      "tree": "8dad931aab78c8f83588eec7cd3ff1f6dcae0f65",
      "parents": [
        "900b170af40b4fef54e89f3d48d055f7d8031ae6",
        "164d5c3988baf61f40c5749ddc063a9cdca8f521"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 18:03:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 18:03:30 2011 -0700"
      },
      "message": "Merge branch \u0027gpio/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  gpio: wm831x: add a missing break in wm831x_gpio_dbg_show\n"
    },
    {
      "commit": "900b170af40b4fef54e89f3d48d055f7d8031ae6",
      "tree": "3a7a4fba6d5efd200eeab0eabbaf1d6fd632c894",
      "parents": [
        "af8a927c8bdea82cf220e0b720d64daaf073a969"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Fri Jul 15 21:33:12 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 18:02:35 2011 -0700"
      },
      "message": "ARM: fix regression in IXP4xx clocksource\n\nCommit 234b6ceddb4fc2a4bc5b9a7670f070f6e69e0868\n\n   clocksource: convert ARM 32-bit up counting clocksources\n\nbroke the build for ixp4xx and made big endian operation impossible.\nThis commit restores the original behaviour.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: Krzysztof Hałasa \u003ckhc@pm.waw.pl\u003e\n[ Thomas says that we might want to have generic BE accessor functions\n  to the MMIO clock source, but that hasn\u0027t happened yet, so in the\n  meantime this seems to be the short-term fix for the particular\n  problem - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "164d5c3988baf61f40c5749ddc063a9cdca8f521",
      "tree": "e627515924beb4c914f20d0f134d25d70a008d16",
      "parents": [
        "2345b20fd9160d99f7cdf34e7b028ea351bf9c25"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Sun Jul 10 15:45:07 2011 +0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Jul 15 14:03:30 2011 -0600"
      },
      "message": "gpio: wm831x: add a missing break in wm831x_gpio_dbg_show\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "af8a927c8bdea82cf220e0b720d64daaf073a969",
      "tree": "97411751db099ab0c2022d0699e6f9df9aef2e3a",
      "parents": [
        "3110df800c4de2724624d46e6bed27efc5e9a707",
        "3a36199114de0e60984534776732e0a7a220e29e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 11:03:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 11:03:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: remove resize from unsupported features list\n"
    },
    {
      "commit": "3110df800c4de2724624d46e6bed27efc5e9a707",
      "tree": "7285520054f5fb5e154c8f71c9232f8b63cca417",
      "parents": [
        "375d0c0e70cf788fa74c658e5dd619a7abb7c5f7",
        "7e97bbba62754ea86e191b99c6978476198ecb99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 10:21:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 10:21:21 2011 -0700"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:\n  hwmon: (adm1275) Fix coefficients per datasheet revision B\n  hwmon: (pmbus) Use long variables for register to data conversions\n"
    },
    {
      "commit": "375d0c0e70cf788fa74c658e5dd619a7abb7c5f7",
      "tree": "07a53ae55261580137f5d9d69fc7d9c5365f3229",
      "parents": [
        "da1b001a2a2a9cb323e58327ed07ac4a5e6d96ea",
        "e3c1620434ac77b618ce74c024ace3559602ac99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 10:21:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 10:21:07 2011 -0700"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/radeon/kms: add new NI pci ids\n"
    },
    {
      "commit": "da1b001a2a2a9cb323e58327ed07ac4a5e6d96ea",
      "tree": "b4d183c6a4bab6a2b53d9ac9f4501bcd46cb158b",
      "parents": [
        "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
        "1836750115f20b774e55c032a3893e8c5bdf41ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:55:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:55:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fix loop checks in d_materialise_unique()\n  Fix -\u003ed_lock locking order in unlazy_walk()\n"
    },
    {
      "commit": "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
      "tree": "d5fb84d4bec0dc62b1ec1a19a01718620caa9918",
      "parents": [
        "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu:\n  rcu: Prevent RCU callbacks from executing before scheduler initialized\n"
    },
    {
      "commit": "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
      "tree": "0777bdbb0424a6ce948c817247757a4ba3b01a32",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 11 16:28:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:02 2011 -0700"
      },
      "message": "sched: Fix 32bit race\n\nCommit 3fe1698b7fe0 (\"sched: Deal with non-atomic min_vruntime reads\non 32bit\") forgot to initialize min_vruntime_copy which could lead to\nan infinite while loop in task_waking_fair() under some circumstances\n(early boot, lucky timing).\n\n[ This bug was also reported by others that blamed it on the RCU\n  initialization problems ]\n\nReported-and-tested-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3c1620434ac77b618ce74c024ace3559602ac99",
      "tree": "40b976b6914b40b44741a5b63c7a700a7884d592",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Fri Jul 15 14:39:10 2011 +0000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Fri Jul 15 16:10:55 2011 +0100"
      },
      "message": "drm/radeon/kms: add new NI pci ids\n\nSigned-off-by: Alex Deucher \u003calexander.deucher@amd.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "7e97bbba62754ea86e191b99c6978476198ecb99",
      "tree": "08c5441c955e28b4327fb068261ad17684bdaa32",
      "parents": [
        "f450c1504d3ff6aace3927c805bdea0ac0669efd"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Jul 14 14:18:03 2011 -0700"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Fri Jul 15 08:09:40 2011 -0700"
      },
      "message": "hwmon: (adm1275) Fix coefficients per datasheet revision B\n\nCoefficients to convert chip register values to voltage/current have been\nslightly changed in revision B of the chip datasheet. Update driver coefficients\nto match the coefficients in the datasheet.\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "1836750115f20b774e55c032a3893e8c5bdf41ed",
      "tree": "3c0cb24361ccfb460b93b0fd6385650df80a26e6",
      "parents": [
        "94c0d4ecbe7f9fe56e052b26b2ab484e246c07b4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 12 21:42:24 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 14 21:33:41 2011 -0400"
      },
      "message": "fix loop checks in d_materialise_unique()\n\nBoth __d_unalias() and __d_materialise_dentry() need loop prevention.\nGrab rename_lock in caller, check for loops there...\n\nAs a side benefit, we have dentry_lock_for_move() called only under\nrename_lock, which seriously reduces deadlock potential of the\nexecrable \"locking order\" used for -\u003ed_lock.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81",
      "tree": "8cd651b2743b8af4805e0ae45b660ce8758960ae",
      "parents": [
        "51414d41084496aaefd06d7f19eb8206e8bfac2d",
        "380f7c65a7eb3288e4b6812acf3474a1de230707"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 14 10:20:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 14 10:20:42 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Resolve inode eviction and ail list interaction bug\n  GFS2: Fix race during filesystem mount\n  GFS2: force a log flush when invalidating the rindex glock\n"
    },
    {
      "commit": "380f7c65a7eb3288e4b6812acf3474a1de230707",
      "tree": "7abe4b4ce390afc6b4d2bc7cae0ec298fe2efa3c",
      "parents": [
        "3942ae5319640ced5844b75f44884e4bcb8a2f16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "message": "GFS2: Resolve inode eviction and ail list interaction bug\n\nThis patch contains a few misc fixes which resolve a recently\nreported issue. This patch has been a real team effort and has\nreceived a lot of testing.\n\nThe first issue is that the ail lock needs to be held over a few\nmore operations. The lock thats added into gfs2_releasepage() may\npossibly be a candidate for replacing with RCU at some future\npoint, but at this stage we\u0027ve gone for the obvious fix.\n\nThe second issue is that gfs2_write_inode() can end up calling\na glock recursively when called from gfs2_evict_inode() via the\nsyncing code, so it needs a guard added.\n\nThe third issue is that we either need to not truncate the metadata\npages of inodes which have zero link count, but which we cannot\ndeallocate due to them still being in use by other nodes, or we need\nto ensure that those pages have all made it through the journal and\nail lists first. This patch takes the former approach, but the\nlatter has also been tested and there is nothing to choose between\nthem performance-wise. So again, we could revise that decision\nin the future.\n\nAlso, the inode eviction process is now better documented.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nReported-by: Barry J. Marson \u003cbmarson@redhat.com\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "51414d41084496aaefd06d7f19eb8206e8bfac2d",
      "tree": "31c7624d28a564e1cc918a30b8570a3c001a9c7c",
      "parents": [
        "201f92e2ca789d529418da8fa027d5457f0df024",
        "f39b2dd9d065151a04f5996656d1f27a7eb32d45"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 16:47:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 16:47:31 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:\n  mmc: core: Bus width testing needs to handle suspend/resume\n"
    },
    {
      "commit": "201f92e2ca789d529418da8fa027d5457f0df024",
      "tree": "f1d88a50dc95c415a2c8e9ba571620d2ca4c151c",
      "parents": [
        "6ac556daa7822fdda585e2c387739abb0646c6ef",
        "ec0dd267bf7d08cb30e321e45a75fd40edd7e528"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:34:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:34:08 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  SUNRPC: Fix use of static variable in rpcb_getport_async\n  NFSv4.1: update nfs4_fattr_bitmap_maxsz\n  SUNRPC: Fix a race between work-queue and rpc_killall_tasks\n  pnfs: write: Set mds_offset in the generic layer - it is needed by all LDs\n"
    },
    {
      "commit": "6ac556daa7822fdda585e2c387739abb0646c6ef",
      "tree": "7d2a1f5b821c5093bea0e161032939693617ed94",
      "parents": [
        "c835490196c42d9f225ee6873880f436d031df86",
        "8fc62e59425389a6d48429b9d146223122743435"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:16:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:16:53 2011 -0700"
      },
      "message": "Merge branch \u0027rc-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027rc-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:\n  kbuild: Do not write to builddir in modules_install\n"
    },
    {
      "commit": "c835490196c42d9f225ee6873880f436d031df86",
      "tree": "84ad9113d7733678a7556b6d976f034fc046435f",
      "parents": [
        "5d7d5d933256fc44f68e061ccd103b027fef0fc9",
        "c61d0af9131976db150c40996a71387ba59edb67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:04:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:04:26 2011 -0700"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/radeon/kms/evergreen: emit SQ_LDS_RESOURCE_MGMT for blits\n  agp/intel: Fix typo in G4x_GMCH_SIZE_VT_2M\n  drm/radeon/kms: fix typo in read_disabled vbios code\n  drm/radeon/kms: use correct BUS_CNTL reg on rs600\n  drm/radeon/kms: fix backend map typo on juniper\n  drm/radeon/kms: fix regression in hotplug\n"
    },
    {
      "commit": "5d7d5d933256fc44f68e061ccd103b027fef0fc9",
      "tree": "c3effea9a99409d4adec80dcf358e6d99736ed25",
      "parents": [
        "8d86e5f91440aa56a5df516bf58fe3883552ad56",
        "7686d1cc5ed0932a533a5acbc3888b48de63bef8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 13:51:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 13:51:32 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)\n  slip: fix wrong SLIP6 ifdef-endif placing\n  natsemi: fix another dma-debug report\n  sctp: ABORT if receive, reassmbly, or reodering queue is not empty while closing socket\n  net: Fix default in docs for tcp_orphan_retries.\n  hso: fix a use after free condition\n  net/natsemi: Fix module parameter permissions\n  XFRM: Fix memory leak in xfrm_state_update\n  sctp: Enforce retransmission limit during shutdown\n  mac80211: fix TKIP replay vulnerability\n  mac80211: fix ie memory allocation for scheduled scans\n  ssb: fix init regression of hostmode PCI core\n  rtlwifi: rtl8192cu: Add new USB ID for Netgear WNA1000M\n  ath9k: Fix tx throughput drops for AR9003 chips with AES encryption\n  carl9170: add NEC WL300NU-AG usbid\n  cfg80211: fix deadlock with rfkill/sched_scan by adding new mutex\n  ath5k: fix incorrect use of drvdata in PCI suspend/resume code\n  ath5k: fix incorrect use of drvdata in sysfs code\n  Bluetooth: Fix memory leak under page timeouts\n  Bluetooth: Fix regression with incoming L2CAP connections\n  Bluetooth: Fix hidp disconnect deadlocks and lost wakeup\n  ...\n"
    },
    {
      "commit": "f39b2dd9d065151a04f5996656d1f27a7eb32d45",
      "tree": "3801f7d6793529d737fcbfd6af05b6900ef2cd06",
      "parents": [
        "c31b55cd4eaf050bb5a15bd8251da1b3c7edeb1c"
      ],
      "author": {
        "name": "Philip Rakity",
        "email": "prakity@marvell.com",
        "time": "Thu Jul 07 09:04:55 2011 -0700"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Jul 13 14:54:37 2011 -0400"
      },
      "message": "mmc: core: Bus width testing needs to handle suspend/resume\n\nOn reading the ext_csd for the first time (in 1 bit mode), save the\next_csd information needed for bus width compare.\n\nOn every pass we make re-reading the ext_csd, compare the data\nagainst the saved ext_csd data.\n\nThis fixes a regression introduced in 3.0-rc1 by 08ee80cc397ac1a3\n(\"mmc: core: eMMC bus width may not work on all platforms\"), which\nincorrectly assumed we would be re-reading the ext_csd at resume-\ntime.\n\nSigned-off-by: Philip Rakity \u003cprakity@marvell.com\u003e\nTested-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "b0d304172f49061b4ff78f9e2b02719ac69c8a7e",
      "tree": "882123e565ced895910490514f6e676c708b5001",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 10 15:57:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 13 08:17:56 2011 -0700"
      },
      "message": "rcu: Prevent RCU callbacks from executing before scheduler initialized\n\nUnder some rare but real combinations of configuration parameters, RCU\ncallbacks are posted during early boot that use kernel facilities that\nare not yet initialized.  Therefore, when these callbacks are invoked,\nhard hangs and crashes ensue.  This commit therefore prevents RCU\ncallbacks from being invoked until after the scheduler is fully up and\nrunning, as in after multiple tasks have been spawned.\n\nIt might well turn out that a better approach is to identify the specific\nRCU callbacks that are causing this problem, but that discussion will\nwait until such time as someone really needs an RCU callback to be invoked\n(as opposed to merely registered) during early boot.\n\nReported-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nReported-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTested-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nTested-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\n"
    },
    {
      "commit": "3a36199114de0e60984534776732e0a7a220e29e",
      "tree": "4c3f78d612dcfa140ee3bc7afeaa398e095e9c3c",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jun 19 16:56:29 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jul 13 16:08:59 2011 +0900"
      },
      "message": "nilfs2: remove resize from unsupported features list\n\nResize feature was supported by the commit 4e33f9eab07e but it was not\nreflected to the list of unsupported features in nilfs2.txt file.\nThis updates the list to fix discrepancy.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c61d0af9131976db150c40996a71387ba59edb67",
      "tree": "df5b8699659928571cd839214f6cee688a943f53",
      "parents": [
        "780d7cc44524cd396a34757127f51ecb8ccaf2da"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Tue Jul 12 11:53:23 2011 -0400"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Wed Jul 13 07:47:13 2011 +0100"
      },
      "message": "drm/radeon/kms/evergreen: emit SQ_LDS_RESOURCE_MGMT for blits\n\nCompute drivers may change this, so make sure to emit it to\navoid errors in bo blits.\n\nFixes:\nhttps://bugs.freedesktop.org/show_bug.cgi?id\u003d39119\n\nSigned-off-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "780d7cc44524cd396a34757127f51ecb8ccaf2da",
      "tree": "96675e90d59903523b282874ca77ce44aa585b50",
      "parents": [
        "4171424e66e5525d7128a2c355215ca5c66f76d5"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Tue Jul 12 23:38:18 2011 +0100"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Wed Jul 13 07:44:27 2011 +0100"
      },
      "message": "agp/intel: Fix typo in G4x_GMCH_SIZE_VT_2M\n\nKonstantin Belousov found an error in the define of G4x_GMCH_SIZE_VT_2M\nrelative to the GMCH specs, and confirmed that indeed one of his users\nwith a Q45 reports 0xb not 0xc for a 2/2MiB GATT.\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nCc: Konstantin Belousov \u003ckostikbel@gmail.com\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nAcked-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "94c0d4ecbe7f9fe56e052b26b2ab484e246c07b4",
      "tree": "aa6d28122deb93e6f14b89d78987ef91d722b59d",
      "parents": [
        "258e43fdb00c73d424b114ae3850accd55b27cbb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 12 21:40:23 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 12 21:40:23 2011 -0400"
      },
      "message": "Fix -\u003ed_lock locking order in unlazy_walk()\n\nMake sure that child is still a child of parent before nested locking\nof child-\u003ed_lock in unlazy_walk(); otherwise we are risking a violation\nof locking order and deadlocks.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d86e5f91440aa56a5df516bf58fe3883552ad56",
      "tree": "94c8aea597b9e1ade376743a3f8f830e5195fa57",
      "parents": [
        "d93a881dd7d71ad0e6504af232be2795044ab686",
        "770e1ac5f29003fca18af4e67eb5a05ddb5b1491"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:21:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:21:19 2011 -0700"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:\n  powerpc/mm: Fix memory_block_size_bytes() for non-pseries\n  mm: Move definition of MIN_MEMORY_BLOCK_SIZE to a header\n"
    },
    {
      "commit": "d93a881dd7d71ad0e6504af232be2795044ab686",
      "tree": "71fc6918e676a0cf53d585f5a253646a49b60c83",
      "parents": [
        "d1ca1a004822983e2fc702d5382b4b9a5527cfbe",
        "24109afd17426e1a2b72141e4a2b730057e1a0ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  pcmcia: pxa2xx/vpac270: free gpios on exist rather than requesting\n  ARM: pxa/raumfeld: fix device name for codec ak4104\n  ARM: pxa/raumfeld: display initialisation fixes\n  ARM: pxa/raumfeld: adapt to upcoming hardware change\n  ARM: pxa: fix gpio_to_chip() clash with gpiolib namespace\n  genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n  arm: mach-vt8500: add forgotten irq_data conversion\n  ARM: pxa168: correct nand pmu setting\n  ARM: pxa910: correct nand pmu setting\n  ARM: pxa: fix PGSR register address calculation\n"
    },
    {
      "commit": "d1ca1a004822983e2fc702d5382b4b9a5527cfbe",
      "tree": "ced77f6c6a5f98bb8d441030813d5e336dd24fa4",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc",
        "a94919eaddaa3fede1df8563ce4d761a75374645"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:18:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:18:00 2011 -0700"
      },
      "message": "Merge branch \u0027drm-intel-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/keithp/linux-2.6\n\n* \u0027drm-intel-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/keithp/linux-2.6:\n  drm/i915/ringbuffer: Idling requires waiting for the ring to be empty\n  Revert \"drm/i915: enable rc6 by default\"\n  drm/i915: Clean up i915_driver_load failure path\n  drm/i915: Enable GPU reset on Ivybridge.\n  drm/i915/dp: manage sink power state if possible\n  drm/i915/dp: consolidate AUX retry code\n  drm/i915/dp: remove DPMS mode tracking from DP\n  drm/i915/dp: try to read receiver capabilities 3 times when detecting\n  drm/i915/dp: read more receiver capability bits on hotplug\n  drm/i915/dp: use DP DPCD defines when looking at DPCD values\n  drm/i915/dp: retry link status read 3 times on failure\n"
    },
    {
      "commit": "ec0dd267bf7d08cb30e321e45a75fd40edd7e528",
      "tree": "3bf48630b67c339e968c80965e9696027393c968",
      "parents": [
        "e5012d1f3861d18c7f3814e757c1c3ab3741dbcd"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Tue Jul 12 10:27:55 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 12 13:40:13 2011 -0400"
      },
      "message": "SUNRPC: Fix use of static variable in rpcb_getport_async\n\nBecause struct rpcbind_args *map was declared static, if two\nthreads entered this method at the same time, the values\nassigned to map could be sent two two differen tasks.\nThis could cause all sorts of problems, include use-after-free\nand double-free of memory.\n\nFix this by removing the static declaration so that the map\npointer is on the stack.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a94919eaddaa3fede1df8563ce4d761a75374645",
      "tree": "ec08ea68ca13871bd3f15526df2e55d0f7a92012",
      "parents": [
        "05bd42688dbc066d4e2689b6f73c0470601f788b"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Tue Jul 12 18:03:29 2011 +0100"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Jul 12 10:35:45 2011 -0700"
      },
      "message": "drm/i915/ringbuffer: Idling requires waiting for the ring to be empty\n\n...which is measured by the size and not the amount of space remaining.\n\nWaiting upon size-8, did one of two things. In the common case with more\nthan 8 bytes available to write into the ring, it would return\nimmediately. Otherwise, it would timeout given the impossible condition\nof waiting for more space than is available in the ring, leading to\nwarnings such as:\n\n[drm:intel_cleanup_ring_buffer] *ERROR* failed to quiesce render ring\nwhilst cleaning up: -16\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nReviewed-by: Eric Anholt \u003ceric@anholt.net\u003e\nSigned-off-by: Keith Packard \u003ckeithp@keithp.com\u003e\n"
    },
    {
      "commit": "05bd42688dbc066d4e2689b6f73c0470601f788b",
      "tree": "afc81fcc95c69ec4f5569034ac2fbe741d465202",
      "parents": [
        "a7b85d2aa63ed09cd5a4a640772b3272f5ac7caa"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Jul 12 08:49:31 2011 -0700"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Jul 12 08:49:31 2011 -0700"
      },
      "message": "Revert \"drm/i915: enable rc6 by default\"\n\nThis reverts commit a51f7a66fb5e4af5ec4286baef940d06594b59d2.\n\nWe still have a few Ironlake and Sandybridge machines which fail when\nRC6 is enabled. Better luck next release?\n\nSigned-off-by: Keith Packard \u003ckeithp@keithp.com\u003e\n"
    },
    {
      "commit": "a7b85d2aa63ed09cd5a4a640772b3272f5ac7caa",
      "tree": "ba4b1e9a88c18f13f7148c568e8ac21b1340da0a",
      "parents": [
        "1083694ab052e5ba38a8f9a057c4745448977837"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sun Jul 10 13:12:17 2011 -0700"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Jul 12 08:47:47 2011 -0700"
      },
      "message": "drm/i915: Clean up i915_driver_load failure path\n\ni915_driver_load adds a write-combining MTRR region for the GTT\naperture to improve memory speeds through the aperture. If\ni915_driver_load fails after this, it would not have cleaned up the\nMTRR. This shouldn\u0027t cause any problems, except for consuming an MTRR\nregister. Still, it\u0027s best to clean up completely in the failure path,\nwhich is easily done by calling mtrr_del if the mtrr was successfully\nallocated.\n\ni915_driver_load calls i915_gem_load which register\ni915_gem_inactive_shrink. If i915_driver_load fails after calling\ni915_gem_load, the shrinker will be left registered. When called, it\nwill access freed memory and crash. The fix is to unregister the shrinker in the\nfailure path using code duplicated from i915_driver_unload.\n\ni915_driver_load also has some incorrect gotos in the error cleanup\npaths:\n\n * After failing to initialize the GTT (which cannot happen, btw,\n   intel_gtt_get returns a fixed (non-NULL) value), it tries to\n   free the uninitialized WC IO mapping. Fixed this by changing the\n   target from out_iomapfree to out_rmmap\n\nSigned-off-by: Keith Packard \u003ckeithp@keithp.com\u003e\nTested-by: Lin Ming \u003cming.m.lin@intel.com\u003e\n"
    },
    {
      "commit": "f450c1504d3ff6aace3927c805bdea0ac0669efd",
      "tree": "a12038dc7638dfe4cb7fee745aff259e8857104c",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Sun Jul 10 19:31:29 2011 -0700"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Tue Jul 12 06:45:45 2011 -0700"
      },
      "message": "hwmon: (pmbus) Use long variables for register to data conversions\n\nUsing integer variable types for register to data conversions can cause\noverflows especially for power calculations, which are in microwatt.\nUse long variables instead.\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: stable@kernel.org # 2.6.39+\n"
    },
    {
      "commit": "8fc62e59425389a6d48429b9d146223122743435",
      "tree": "da043df805a3b35984b8b2a10e202f6ee37ab268",
      "parents": [
        "569658dddf276ceb0780776e7f5d61d9f8d8cb88"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Tue Jul 12 11:54:48 2011 +0200"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Tue Jul 12 13:36:30 2011 +0200"
      },
      "message": "kbuild: Do not write to builddir in modules_install\n\nLet depmod.sh create a temporary directory in /tmp instead of writing to\nthe build directory as root. The mktemp utility should be available on\nany recent system (and there is already scripts/gen_initramfs_list.sh\nrelying on it).\n\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "3942ae5319640ced5844b75f44884e4bcb8a2f16",
      "tree": "cc9eee61c37d18e1887f0723d338b121561dc0b9",
      "parents": [
        "1ce533686c7d40bf900dc346a7279c17a9ee8e0e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 11 08:53:30 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:46 2011 +0100"
      },
      "message": "GFS2: Fix race during filesystem mount\n\nThere is a potential race during filesystem mounting which has recently\nbeen reported. It occurs when the userland gfs_controld is able to\nprocess requests fast enough that it tries to use the sysfs interface\nbefore the lock module is properly initialised. This is a pretty\nunusual case as normally the lock module initialisation is very quick\ncompared with gfs_controld.\n\nThis patch adds an interruptible completion which is used to ensure that\nuserland will wait for the initialisation of the lock module to\ncomplete.\n\nThere are other potential solutions to this problem, but this is the\nquickest at this stage and has been tested both with and without\nmount.gfs2 present in the system.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: David Booher \u003cdbooher@adams.net\u003e\n"
    },
    {
      "commit": "1ce533686c7d40bf900dc346a7279c17a9ee8e0e",
      "tree": "fceea4beb94bb819577ea410919c2b603ddef30f",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Jun 13 14:27:40 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:24 2011 +0100"
      },
      "message": "GFS2: force a log flush when invalidating the rindex glock\n\nRight now, there is nothing that forces the log to get flushed when a node\ndrops its rindex glock so that another node can grow the filesystem. If the\nlog doesn\u0027t get flushed, GFS2 can corrupt the sd_log_le_rg list in the\nfollowing way.\n\nA node puts an rgd on the list in rg_lo_add(), and then the rindex glock is\ndropped so the other node can grow the filesystem. When the node reacquires the\nrindex glock, that rgd gets deleted in clear_rgrpdi() before ever being\nremoved from the list by gfs2_log_flush().\n\nThis code simply forces a log flush when the rindex glock is invalidated,\nsolving the problem.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4171424e66e5525d7128a2c355215ca5c66f76d5",
      "tree": "ffd991260c78d78be1e83cbc62fc732f7404b59d",
      "parents": [
        "e22e6d20700328ed0a1801ad71cecf1b63a22555"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Mon Jul 11 20:22:33 2011 +0000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Jul 12 06:58:59 2011 +0100"
      },
      "message": "drm/radeon/kms: fix typo in read_disabled vbios code\n\nBUS_CNTL reg and bits moved between pre-PCIE and PCIE asics.\n\nSigned-off-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    }
  ],
  "next": "e22e6d20700328ed0a1801ad71cecf1b63a22555"
}
