)]}'
{
  "log": [
    {
      "commit": "263d8d57b3b2e2fbb4e79b7cda7ef3399add4fb7",
      "tree": "3276b4539a9d7e7f8471a38912ae1076924db54e",
      "parents": [
        "1d15afcc73004028f2870ede7a56d590e1ca8ca8"
      ],
      "author": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Thu Jul 14 21:28:00 2011 +0000"
      },
      "committer": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Tue Aug 02 21:34:32 2011 +0000"
      },
      "message": "Docs: MSI-HOWTO: Put the `because\u0027 subordinate clause first\n\nSigned-off-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "1d15afcc73004028f2870ede7a56d590e1ca8ca8",
      "tree": "412e9cd62b90af4932795625378bd21605af6ea7",
      "parents": [
        "a2d4d50128279c67d4cf38061206cddc1fc37e75"
      ],
      "author": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Thu Jul 14 20:05:01 2011 +0000"
      },
      "committer": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Tue Aug 02 21:34:32 2011 +0000"
      },
      "message": "Docs: MSI-HOWTO: Streamline some wording\n\nSigned-off-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "a2d4d50128279c67d4cf38061206cddc1fc37e75",
      "tree": "56c15f9e120a4b9cfe1f25083d78faed6a589a7b",
      "parents": [
        "4979de6efb5553505a595eadc1cf7c386ca1ddc6"
      ],
      "author": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Thu Jul 14 20:03:28 2011 +0000"
      },
      "committer": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Tue Aug 02 21:34:31 2011 +0000"
      },
      "message": "Docs: MSI-HOWTO: `asked for\u0027 -\u003e `requested\u0027\n\nSigned-off-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "4979de6efb5553505a595eadc1cf7c386ca1ddc6",
      "tree": "fc92361dccd0ba0e4d6027ab5796a69fe8629325",
      "parents": [
        "891f692533c36a17f00d25d24e4ac44ef38c9e5c"
      ],
      "author": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Thu Jul 14 19:52:56 2011 +0000"
      },
      "committer": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Tue Aug 02 21:34:31 2011 +0000"
      },
      "message": "Docs: MSI-HOWTO: Use present tense and streamline some wording\n\nSigned-off-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "891f692533c36a17f00d25d24e4ac44ef38c9e5c",
      "tree": "bee5a52ef4586f5ea216c7fd5ba56abd991b5b13",
      "parents": [
        "55f9c40ff632d03c527d6a6ceddcda0a224587a6"
      ],
      "author": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Thu Jul 14 17:53:54 2011 +0000"
      },
      "committer": {
        "name": "Michael Witten",
        "email": "mfwitten@gmail.com",
        "time": "Tue Aug 02 21:34:30 2011 +0000"
      },
      "message": "Docs: MSI-HOWTO: Use the subjunctive, and change `can\u0027 to `may\u0027\n\nSigned-off-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "55f9c40ff632d03c527d6a6ceddcda0a224587a6",
      "tree": "215b843439f1d6b7620789ac6e919742db99b7a6",
      "parents": [
        "d5eab9152a3b4ce962c02ad0a0e4d0ec94aadd92",
        "eb7caf35951b1a56aabee028c1b20727abccc34f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:59:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:59:19 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:\n  n2_crypto: Attach on Niagara-T3.\n  n2rng: Attach on Niagara-T3.\n  sparc: Detect and handle UltraSPARC-T3 cpu types.\n  sparc: Don\u0027t do expensive hypervisor PCR write unless necessary.\n  sparc: Add T3 sun4v cpu type and hypervisor group defines.\n  sparc: Don\u0027t leave sparc_pmu_type NULL on sun4v.\n"
    },
    {
      "commit": "d5eab9152a3b4ce962c02ad0a0e4d0ec94aadd92",
      "tree": "3147f8de2805da0f026ea18103a9be46f3bc2a18",
      "parents": [
        "6140333d3656f62ac7e6a5af87e7fe92cfb8d655",
        "a051294423b015c5c89f2ed78f7fe0893b775098"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:58:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:58:19 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (32 commits)\n  tg3: Remove 5719 jumbo frames and TSO blocks\n  tg3: Break larger frags into 4k chunks for 5719\n  tg3: Add tx BD budgeting code\n  tg3: Consolidate code that calls tg3_tx_set_bd()\n  tg3: Add partial fragment unmapping code\n  tg3: Generalize tg3_skb_error_unmap()\n  tg3: Remove short DMA check for 1st fragment\n  tg3: Simplify tx bd assignments\n  tg3: Reintroduce tg3_tx_ring_info\n  ASIX: Use only 11 bits of header for data size\n  ASIX: Simplify condition in rx_fixup()\n  Fix cdc-phonet build\n  bonding: reduce noise during init\n  bonding: fix string comparison errors\n  net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared\n  net: add IFF_SKB_TX_SHARED flag to priv_flags\n  net: sock_sendmsg_nosec() is static\n  forcedeth: fix vlans\n  gianfar: fix bug caused by 87c288c6e9aa31720b72e2bc2d665e24e1653c3e\n  gro: Only reset frag0 when skb can be pulled\n  ...\n"
    },
    {
      "commit": "6140333d3656f62ac7e6a5af87e7fe92cfb8d655",
      "tree": "d96f7ad2196b4383f5ca4396c956e24c82b2952c",
      "parents": [
        "6f56c218666b5c7eff354364357307d18c10058b",
        "58c54fcca3bac5bf9290cfed31c76e4c4bfbabaf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:50:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:50:27 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (75 commits)\n  md/raid10: handle further errors during fix_read_error better.\n  md/raid10: Handle read errors during recovery better.\n  md/raid10: simplify read error handling during recovery.\n  md/raid10: record bad blocks due to write errors during resync/recovery.\n  md/raid10:  attempt to fix read errors during resync/check\n  md/raid10:  Handle write errors by updating badblock log.\n  md/raid10: clear bad-block record when write succeeds.\n  md/raid10: avoid writing to known bad blocks on known bad drives.\n  md/raid10 record bad blocks as needed during recovery.\n  md/raid10: avoid reading known bad blocks during resync/recovery.\n  md/raid10 - avoid reading from known bad blocks - part 3\n  md/raid10: avoid reading from known bad blocks - part 2\n  md/raid10: avoid reading from known bad blocks - part 1\n  md/raid10: Split handle_read_error out from raid10d.\n  md/raid10: simplify/reindent some loops.\n  md/raid5: Clear bad blocks on successful write.\n  md/raid5.  Don\u0027t write to known bad block on doubtful devices.\n  md/raid5: write errors should be recorded as bad blocks if possible.\n  md/raid5: use bad-block log to improve handling of uncorrectable read errors.\n  md/raid5: avoid reading from known bad blocks.\n  ...\n"
    },
    {
      "commit": "6f56c218666b5c7eff354364357307d18c10058b",
      "tree": "5c18d12d2410d25b0f8b5a2150e2f2f4df20e95b",
      "parents": [
        "95b6886526bb510b8370b625a49bc0ab3b8ff10f",
        "8d34e6d3ec0393a286569587fbd9675abd258d93"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:49:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 28 05:49:31 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  sound: oss: rename local change_bits to avoid powerpc bitsops.h definition\n  ALSA: hda - Fix duplicated DAC assignments for Realtek\n  ALSA: asihpi - off by one in asihpi_hpi_ioctl()\n  ALSA: hda - Fix Oops with Realtek quirks with NULL adc_nids\n  ALSA: asihpi - bug fix pa use before init.\n  ALSA: hda - Add support for vref-out based mute LED control on IDT codecs\n"
    },
    {
      "commit": "eb7caf35951b1a56aabee028c1b20727abccc34f",
      "tree": "2cccd6418beedf7ce3b12e2d0f4123c43755dc8c",
      "parents": [
        "24f146696184cbe4b440179064a45dfddaad4cc4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 28 01:30:07 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 28 01:30:07 2011 -0700"
      },
      "message": "n2_crypto: Attach on Niagara-T3.\n\nA small modification was necessary since in the machine description\nfor \u0027n2cp\u0027 and \u0027ncp\u0027 nodes, there no longer is an \u0027intr\u0027 property.\n\nThat\u0027s OK because this property was always nothing more than an\narray of integers \u00271\u0027 ... \u0027nr_inos + 1\u0027 so we can just compute it\nin-place.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24f146696184cbe4b440179064a45dfddaad4cc4",
      "tree": "b47f8a2a97d620e0542f90fd2dd620a87f4154ca",
      "parents": [
        "4ba991d3eb379fbaa22049e7002341e97a673685"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 23:33:03 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 28 01:26:30 2011 -0700"
      },
      "message": "n2rng: Attach on Niagara-T3.\n\nAnd stop referring to Victoria Falls, as the attribute we\u0027re\ntalking about is whether the rng is multi-unit capable which\napplies to several chip variants now.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a051294423b015c5c89f2ed78f7fe0893b775098",
      "tree": "840072c6503d5f0c82623d732a3b352edbd15a3c",
      "parents": [
        "e31aa9870627106aebddd280aab8ecb2f493246a"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:54 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:32 2011 -0700"
      },
      "message": "tg3: Remove 5719 jumbo frames and TSO blocks\n\nThe A0 revision of this chip is the only device that requires these\nfeatures to be disabled.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e31aa9870627106aebddd280aab8ecb2f493246a",
      "tree": "c771dda9a09b07382947da52b82d093de9b951ea",
      "parents": [
        "84b67b27e9531e9a70c9e8cd952d66c55f4d0ddb"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:53 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:32 2011 -0700"
      },
      "message": "tg3: Break larger frags into 4k chunks for 5719\n\nThe 5719 has bug where RDMAs larger than 4k can cause problems.  This\npatch works around the problem by dividing larger DMA requests into\nsomething the hardware can handle.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84b67b27e9531e9a70c9e8cd952d66c55f4d0ddb",
      "tree": "f082a966a82ebc803f1f4d7cfccf057b3b0a8017",
      "parents": [
        "d1a3b7377d3b6a01ec5f70adb32173b13233aabf"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:52 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:32 2011 -0700"
      },
      "message": "tg3: Add tx BD budgeting code\n\nAs the driver breaks large skb fragments into smaller submissions to the\nhardware, there is a new danger that BDs might get exhausted before all\nfragments have been mapped.  This patch adds code to make sure tx BDs\naren\u0027t oversubscribed and flag the condition if it happens.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1a3b7377d3b6a01ec5f70adb32173b13233aabf",
      "tree": "ad1d5204140560a8724a104bbc1dccbc0704307d",
      "parents": [
        "e01ee14d499e5d09c0a9db0cac2545a018849e3d"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:51 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "tg3: Consolidate code that calls tg3_tx_set_bd()\n\nThis patch consolidates all code that populates tx BDs into a single\nroutine.  Setting tx BDs needs to be more carefully controlled to see if\nworkarounds need to be applied.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e01ee14d499e5d09c0a9db0cac2545a018849e3d",
      "tree": "752b0783203f4131dbe2d9af945f5090003646e2",
      "parents": [
        "0d681b27b0efc962a3038a316e78373de7bfe1ce"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:50 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "tg3: Add partial fragment unmapping code\n\nThe following patches are going to break skb fragments into smaller\nsizes.  This patch attempts to make the change easier to digest by only\naddressing the skb teardown portion.\n\nThe patch modifies the driver to skip over any BDs that have a flag set\nthat indicates the BD isn\u0027t the beginning of an skb fragment.  Such BDs\nwere a result of segmentation and do not need a pci_unmap_page() call.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d681b27b0efc962a3038a316e78373de7bfe1ce",
      "tree": "0ff87deba13d372b5f8262e741dc121c0e07f32f",
      "parents": [
        "13350ea78bd687a229af0f6052d2f45aa50a6524"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:49 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "tg3: Generalize tg3_skb_error_unmap()\n\nIn the following patches, unmapping skb fragments will get just as\ncomplicated as mapping them.  This patch generalizes\ntg3_skb_error_unmap() and makes it the one-stop-shop for skb unmapping.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13350ea78bd687a229af0f6052d2f45aa50a6524",
      "tree": "9fbb3bdd4e1b0e1e65e65ff12831124434fb4ae5",
      "parents": [
        "92cd3a17ce9c719abb4c28dee3438e0c641f8de4"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:48 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "tg3: Remove short DMA check for 1st fragment\n\nThe first fragment of an skb should always be greater than 8 bytes.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92cd3a17ce9c719abb4c28dee3438e0c641f8de4",
      "tree": "f4883d546a721e2ee9320f66d918f5845cfedf77",
      "parents": [
        "df8944cf5cd3794c46e95e0404038376ee7f8dda"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "tg3: Simplify tx bd assignments\n\nIn the following patches, the process the driver will use to assign skb\nfragments to transmit BDs will get more complicated.  To prepare for\nthat new code, this patch seeks to simplify how transmit BDs are\npopulated.  It does this by separating the code that assigns the BD\nmembers from the logic that controls how the fields are set.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df8944cf5cd3794c46e95e0404038376ee7f8dda",
      "tree": "874ad0e2e40510bcc619af76a3faf55c9e587a55",
      "parents": [
        "bca0beb9363f8487ac902931a50eb00180a2d14a"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jul 27 14:20:46 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "tg3: Reintroduce tg3_tx_ring_info\n\nThe following patches will require the use of an additional flag in the\nring_info structure.  The use of this flag is tx path specific, so this\npatch defines a specialized ring_info structure.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bca0beb9363f8487ac902931a50eb00180a2d14a",
      "tree": "f7c87ac7a9f8c055a883c695ad8c8b0db336edd6",
      "parents": [
        "bc466e678d0a98f445bf3f9c76fedf18e7dcc6b0"
      ],
      "author": {
        "name": "Marek Vasut",
        "email": "marek.vasut@gmail.com",
        "time": "Tue Jul 26 16:44:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "ASIX: Use only 11 bits of header for data size\n\nThe AX88772B uses only 11 bits of the header for the actual size. The other bits\nare used for something else. This causes dmesg full of messages:\n\n\tasix_rx_fixup() Bad Header Length\n\nThis patch trims the check to only 11 bits. I believe on older chips, the\nremaining 5 top bits are unused.\n\nSigned-off-by: Marek Vasut \u003cmarek.vasut@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc466e678d0a98f445bf3f9c76fedf18e7dcc6b0",
      "tree": "02ae33658d0737ae61aa62ca85f8c118a0af71f9",
      "parents": [
        "a0295a3b6775ab88f5883684e14bbda8d287822d"
      ],
      "author": {
        "name": "Marek Vasut",
        "email": "marek.vasut@gmail.com",
        "time": "Tue Jul 26 16:44:46 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "ASIX: Simplify condition in rx_fixup()\n\nSigned-off-by: Marek Vasut \u003cmarek.vasut@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0295a3b6775ab88f5883684e14bbda8d287822d",
      "tree": "05fdace7966c34aadd884c0dd2164032040b23e3",
      "parents": [
        "b2730f4f842b987c818023a8003e6426cf996985"
      ],
      "author": {
        "name": "Chris Clayton",
        "email": "chris2553@googlemail.com",
        "time": "Tue Jul 26 12:20:22 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:31 2011 -0700"
      },
      "message": "Fix cdc-phonet build\n\nTry to send to correct address this time!\n\n----------  Forwarded Message  ----------\n\nSubject: [PATCH] Fix cdc-phonet build\nDate: Saturday 23 Jul 2011\nFrom: Chris Clayton \u003cchris2553@googlemail.com\u003e\nTo: linux-net@vger.kernel.org\n\ncdc-phonet does not presently build on linux-3.0 because there is no entry for it in\ndrivers/net/Makefile. This patch adds that entry.\n\nSigned-off-by: Chris Clayton \u003cchris2553@googlemail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b2730f4f842b987c818023a8003e6426cf996985",
      "tree": "b84df061504072115fbc7d455730304c3129b5c0",
      "parents": [
        "f4bb2e9c4fa9e5fdddf90589703613fd1a9c519f"
      ],
      "author": {
        "name": "Andy Gospodarek",
        "email": "andy@greyhouse.net",
        "time": "Wed Jul 27 10:09:26 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "bonding: reduce noise during init\n\nOn Tue, Jul 26, 2011 at 05:40:27PM -0700, Joe Perches wrote:\n\u003e On Tue, 2011-07-26 at 17:37 -0700, Jay Vosburgh wrote:\n\u003e \u003e Joe Perches \u003cjoe@perches.com\u003e wrote:\n\u003e \u003e \u003eI\u0027d prefer you don\u0027t separate the format string\n\u003e \u003e \u003einto multiple pieces.\n\u003e \u003e Why not?  To me, it looks easier to read split into sections\n\u003e \u003e that don\u0027t wrap lines.\n\u003e\n\u003e Harder to grep for a dmesg and the\n\u003e defect rate of these split formats is\n\u003e typically higher than single strings\n\u003e because of bad spacing between string\n\u003e segments.\n\u003e\n\nI noticed that you took some time back in late 2009 to \u0027consolidate\u0027 the\nsplit format-strings present in the bonding driver at the time and I\u0027ve\ndecided I\u0027m fine to leave them the way they are.  The main point of my\npatch was to change the output and I would like to get that included.\nHere is my updated patch...\n\nSubject: [PATCH net-next-2.6 v2] bonding: reduce noise during init\n\nMany are using sysfs to configure bonding rather than module options, so\nthere is no need for bonding to throw this warning in normal cases.\n\nKeep the message around when debugging is enabled as it might be useful\nfor someone desperate enough to enable debugging, but eliminate it\notherwise.\n\nSigned-off-by: Andy Gospodarek \u003candy@greyhouse.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4bb2e9c4fa9e5fdddf90589703613fd1a9c519f",
      "tree": "5f47d2f426c63e1c1d787fbb69e9d52ba6136038",
      "parents": [
        "550fd08c2cebad61c548def135f67aba284c6162"
      ],
      "author": {
        "name": "Andy Gospodarek",
        "email": "andy@greyhouse.net",
        "time": "Tue Jul 26 11:12:27 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "bonding: fix string comparison errors\n\nWhen a bond contains a device where one name is the subset of another\n(eth1 and eth10, for example), one cannot properly set the primary\ndevice or the currently active device.\n\nThis was reported and based on work by Takuma Umeya.  I also verified\nthe problem and tested that this fix resolves it.\n\nV2: A few did not like the the current code or my changes, so I\nrefactored bonding_store_primary and bonding_store_active_slave to be a\nbit cleaner, dropped the use of strnicmp since we did not really need\nthe comparison to be case insensitive, and formatted the input string\nfrom sysfs so a comparison to IFNAMSIZ could be used.\n\nI also discovered an error in bonding_store_active_slave that would\nmodify bond-\u003eprimary_slave rather than bond-\u003ecurr_active_slave before\nforcing the bonding driver to choose a new active slave.\n\nV3: Actually sending the proper patch....\n\nSigned-off-by: Andy Gospodarek \u003candy@greyhouse.net\u003e\nReported-by: Takuma Umeya \u003ctumeya@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "550fd08c2cebad61c548def135f67aba284c6162",
      "tree": "8aa7c4d20a9faeb42261b75cfa38d8fd27b574ff",
      "parents": [
        "d8873315065f1f527c7c380402cf59b1e1d0ae36"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Jul 26 06:05:38 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared\n\nAfter the last patch, We are left in a state in which only drivers calling\nether_setup have IFF_TX_SKB_SHARING set (we assume that drivers touching real\nhardware call ether_setup for their net_devices and don\u0027t hold any state in\ntheir skbs.  There are a handful of drivers that violate this assumption of\ncourse, and need to be fixed up.  This patch identifies those drivers, and marks\nthem as not being able to support the safe transmission of skbs by clearning the\nIFF_TX_SKB_SHARING flag in priv_flags\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCC: Karsten Keil \u003cisdn@linux-pingi.de\u003e\nCC: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCC: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nCC: Andy Gospodarek \u003candy@greyhouse.net\u003e\nCC: Patrick McHardy \u003ckaber@trash.net\u003e\nCC: Krzysztof Halasa \u003ckhc@pm.waw.pl\u003e\nCC: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nCC: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCC: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nCC: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8873315065f1f527c7c380402cf59b1e1d0ae36",
      "tree": "41a9c15f75b41657dd5370fe135f16c40b3eab64",
      "parents": [
        "894dc24ce75aa238ce96422a36b1537ccf2d8831"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Jul 26 06:05:37 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "net: add IFF_SKB_TX_SHARED flag to priv_flags\n\nPktgen attempts to transmit shared skbs to net devices, which can\u0027t be used by\nsome drivers as they keep state information in skbs.  This patch adds a flag\nmarking drivers as being able to handle shared skbs in their tx path.  Drivers\nare defaulted to being unable to do so, but calling ether_setup enables this\nflag, as 90% of the drivers calling ether_setup touch real hardware and can\nhandle shared skbs.  A subsequent patch will audit drivers to ensure that the\nflag is set properly\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReported-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nCC: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "894dc24ce75aa238ce96422a36b1537ccf2d8831",
      "tree": "c930e1d37236fb7424295f12da7f84ac65f8a1a1",
      "parents": [
        "0891b0e08937aaec2c4734acb94c5ff8042313bb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jul 26 02:39:41 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "net: sock_sendmsg_nosec() is static\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0891b0e08937aaec2c4734acb94c5ff8042313bb",
      "tree": "4d02c8d55b2f51708d873c914a778935c18c3e9c",
      "parents": [
        "b852b720877e6b8e12b95a7cb4e00ea351b8cbfc"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jul 26 10:19:28 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "forcedeth: fix vlans\n\nFor some reason, when rxaccel is disabled, NV_RX3_VLAN_TAG_PRESENT is\nstill set and some pseudorandom vids appear. So check for\nNETIF_F_HW_VLAN_RX as well. Also set correctly hw_features and set vlan\nmode on probe.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b852b720877e6b8e12b95a7cb4e00ea351b8cbfc",
      "tree": "c28bbc1a90e4d79f51154c98b507410579a25cf9",
      "parents": [
        "b49179c071b89423e1f6c50f6fa3d48d8158bc35"
      ],
      "author": {
        "name": "Sebastian Pöhn",
        "email": "sebastian.belden@googlemail.com",
        "time": "Tue Jul 26 00:03:13 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:39:30 2011 -0700"
      },
      "message": "gianfar: fix bug caused by 87c288c6e9aa31720b72e2bc2d665e24e1653c3e\n\ncommit 87c288c6e9aa31720b72e2bc2d665e24e1653c3e \"gianfar: do vlan cleanup\" has two issues:\n# permutation of rx and tx flags\n# enabling vlan tag insertion by default (this leads to unusable connections on some configurations)\n\nIf VLAN insertion is requested (via ethtool) it will be set at an other point ...\n\nSigned-off-by: Sebastian Poehn \u003csebastian.poehn@belden.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b49179c071b89423e1f6c50f6fa3d48d8158bc35",
      "tree": "b6aca473839c2c9d7b72bafffa91e6dd6471f9a3",
      "parents": [
        "17dd759c67f21e34f2156abcf415e1f60605a188",
        "e5036c2575b244851637a81efc4104c076c4fa21"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:18:47 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:18:47 2011 -0700"
      },
      "message": "Merge branch \u0027for-davem\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "4ba991d3eb379fbaa22049e7002341e97a673685",
      "tree": "31671a735930aa2e9e3f13ba31e59236e770c954",
      "parents": [
        "314ff52727fe94dfbe07f3a9a489ab3ca8d8df5a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 21:06:16 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 22:10:10 2011 -0700"
      },
      "message": "sparc: Detect and handle UltraSPARC-T3 cpu types.\n\nThe cpu compatible string we look for is \"SPARC-T3\".\n\nAs far as memset/memcpy optimizations go, we treat this chip the same\nas Niagara-T2/T2+.  Use cache initializing stores for memset, and use\nperfetch, FPU block loads, cache initializing stores, and block stores\nfor copies.\n\nWe use the Niagara-T2 perf support, since T3 is a close relative in\nthis regard.  Later we\u0027ll add support for the new events T3 can\nreport, plus enable T3\u0027s new \"sample\" mode.\n\nFor now I haven\u0027t added any new ELF hwcap flags.  We probably need\nto add a couple, for example:\n\nT2 and T3 both support the population count instruction in hardware.\n\nT3 supports VIS3 instructions, including support (finally) for\npartitioned shift.  One can also now move directly between float\nand integer registers.\n\nT3 supports instructions meant to help with Galois Field and other HPC\ncalculations, such as XOR multiply.  Also there are \"OP and negate\"\ninstructions, for example \"fnmul\" which is multiply-and-negate.\n\nT3 recognizes the transactional memory opcodes, however since\ntransactional memory isn\u0027t supported: 1) \u0027commit\u0027 behaves as a NOP and\n2) \u0027chkpt\u0027 always branches 3) \u0027rdcps\u0027 returns all zeros and 4) \u0027wrcps\u0027\nbehaves as a NOP.\n\nSo we\u0027ll need about 3 new elf capability flags in the end to represent\nall of these things.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "314ff52727fe94dfbe07f3a9a489ab3ca8d8df5a",
      "tree": "df8bbc25ebe7e6f0da73403c5e2b9def2c37f2df",
      "parents": [
        "15e3608d7c273947dbf2eadbcaa66e51143928fb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 20:46:25 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 20:46:25 2011 -0700"
      },
      "message": "sparc: Don\u0027t do expensive hypervisor PCR write unless necessary.\n\nThe hypervisor call is only necessary if hypervisor events are\nbeing requested.\n\nSo if we\u0027re not tracking hypervisor events, simply do a direct\nregister write.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "15e3608d7c273947dbf2eadbcaa66e51143928fb",
      "tree": "3d39d11649829452e38f7552ebd457dc68386ef2",
      "parents": [
        "facfddef2c76110b8e321921f7e54518c3dd1579"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 20:42:51 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 20:43:51 2011 -0700"
      },
      "message": "sparc: Add T3 sun4v cpu type and hypervisor group defines.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "facfddef2c76110b8e321921f7e54518c3dd1579",
      "tree": "429d8943cfa793cfb17dbb55db3ad7eff3486aac",
      "parents": [
        "95b6886526bb510b8370b625a49bc0ab3b8ff10f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 20:25:57 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 27 20:25:57 2011 -0700"
      },
      "message": "sparc: Don\u0027t leave sparc_pmu_type NULL on sun4v.\n\nOtherwise we\u0027ll crash in the sparc perf init code.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95b6886526bb510b8370b625a49bc0ab3b8ff10f",
      "tree": "2862606224820d200be12d2092dcd26df1654b80",
      "parents": [
        "22712200e175e0df5c7f9edfe6c6bf5c94c23b83",
        "29412f0f6a19e34336368f13eab848091c343952"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (54 commits)\n  tpm_nsc: Fix bug when loading multiple TPM drivers\n  tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block\n  tpm: Fix compilation warning when CONFIG_PNP is not defined\n  TOMOYO: Update kernel-doc.\n  tpm: Fix a typo\n  tpm_tis: Probing function for Intel iTPM bug\n  tpm_tis: Fix the probing for interrupts\n  tpm_tis: Delay ACPI S3 suspend while the TPM is busy\n  tpm_tis: Re-enable interrupts upon (S3) resume\n  tpm: Fix display of data in pubek sysfs entry\n  tpm_tis: Add timeouts sysfs entry\n  tpm: Adjust interface timeouts if they are too small\n  tpm: Use interface timeouts returned from the TPM\n  tpm_tis: Introduce durations sysfs entry\n  tpm: Adjust the durations if they are too small\n  tpm: Use durations returned from TPM\n  TOMOYO: Enable conditional ACL.\n  TOMOYO: Allow using argv[]/envp[] of execve() as conditions.\n  TOMOYO: Allow using executable\u0027s realpath and symlink\u0027s target as conditions.\n  TOMOYO: Allow using owner/group etc. of file objects as conditions.\n  ...\n\nFix up trivial conflict in security/tomoyo/realpath.c\n"
    },
    {
      "commit": "58c54fcca3bac5bf9290cfed31c76e4c4bfbabaf",
      "tree": "25f663873429468c3b582bc7544f983759b7592e",
      "parents": [
        "5e5702898e93eee7d69b6efde109609a89a61001"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "message": "md/raid10: handle further errors during fix_read_error better.\n\nIf we find more read/write errors we should record a bad block before\nfailing the device.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5e5702898e93eee7d69b6efde109609a89a61001",
      "tree": "87f47cc7e66da78befd16af6d479761b70f7adea",
      "parents": [
        "e684e41db3bad44f1262341300b827c0d94ae220"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "message": "md/raid10: Handle read errors during recovery better.\n\nCurrently when we get a read error during recovery, we simply abort\nthe recovery.\n\nInstead, repeat the read in page-sized blocks.\nOn successful reads, write to the target.\nOn read errors, record a bad block on the destination,\nand only if that fails do we abort the recovery.\n\nAs we now retry reads we need to know where we read from.  This was in\nbi_sector but that can be changed during a read attempt.\nSo store the correct from_addr and to_addr in the r10_bio for later\naccess.\n\n\nSigned-off-by: NeilBrown\u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e684e41db3bad44f1262341300b827c0d94ae220",
      "tree": "a3ff2ec212d4f69a06a64b3a6841895b8cf85673",
      "parents": [
        "1a0b7cd82657a590f163b090bd9123a3a6b9aae4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "message": "md/raid10: simplify read error handling during recovery.\n\nIf a read error is detected during recovery the code currently\nfails the read device.\nThis isn\u0027t really necessary.  recovery_request_write will signal\na write error to end_sync_write and it will record a write\nerror on the destination device which will record a bad block\nthere or kick it from the array.\n\nSo just remove this call to do md_error.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1a0b7cd82657a590f163b090bd9123a3a6b9aae4",
      "tree": "0dc3ccf6ad6ad88283e6d7924c38524865866cba",
      "parents": [
        "f84ee364dd15af11cada1e673f94128f62db189e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "message": "md/raid10: record bad blocks due to write errors during resync/recovery.\n\nIf we get a write error during resync/recovery don\u0027t fail the device\nbut instead record a bad block.  If that fails we can then fail the\ndevice.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f84ee364dd15af11cada1e673f94128f62db189e",
      "tree": "e57fc87130b8bb6958413f39ae51718977540152",
      "parents": [
        "bd870a16c5946d86126f7203db3c73b71de0a1d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:25 2011 +1000"
      },
      "message": "md/raid10:  attempt to fix read errors during resync/check\n\nWe already attempt to fix read errors found during normal IO\nand a \u0027repair\u0027 process.\nIt is best to try to repair them at any time they are found,\nso move a test so that during sync and check a read error will\nbe corrected by over-writing with good data.\n\nIf both (all) devices have known bad blocks in the sync section we\nwon\u0027t try to fix even though the bad blocks might not overlap.  That\nshould be considered later.\n\nAlso if we hit a read error during recovery we don\u0027t try to fix it.\nIt would only be possible to fix if there were at least three copies\nof data, which is not very common with RAID10.  But it should still\nbe considered later.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bd870a16c5946d86126f7203db3c73b71de0a1d8",
      "tree": "3492f61a441266c796b8a08ec30c06f7f6f27fbc",
      "parents": [
        "749c55e942d91cb27045fe2eb313aa5afe68ae0b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "message": "md/raid10:  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\n"
    },
    {
      "commit": "749c55e942d91cb27045fe2eb313aa5afe68ae0b",
      "tree": "ddf80a1eb3ef9005bc209c1c4946916b89c22a33",
      "parents": [
        "d4432c23be957ff061f7b23fd60e8506cb472a55"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "message": "md/raid10: 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\n"
    },
    {
      "commit": "d4432c23be957ff061f7b23fd60e8506cb472a55",
      "tree": "1e9e8cbc75721e62300bb2251658de870bf79d8a",
      "parents": [
        "e875ecea266a543e643b19e44cf472f1412708f9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "message": "md/raid10: avoid writing to known bad blocks on known bad drives.\n\nWriting to known bad blocks on drives that have seen a write error\nis asking for trouble.  So try to avoid these blocks.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e875ecea266a543e643b19e44cf472f1412708f9",
      "tree": "b602d08f7aa4a743d3c27ad55e347d36991f0814",
      "parents": [
        "40c356ce5ad1a6be817825e1da1bc7494349cc6d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "message": "md/raid10 record bad blocks as needed during recovery.\n\nWhen recovering one or more devices, if all the good devices have\nbad blocks we should record a bad block on the device being rebuilt.\n\nIf this fails, we need to abort the recovery.\n\nTo ensure we don\u0027t think that we aborted later than we actually did,\nwe need to move the check for MD_RECOVERY_INTR earlier in md_do_sync,\nin particular before mddev-\u003ecurr_resync is updated.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "40c356ce5ad1a6be817825e1da1bc7494349cc6d",
      "tree": "6843d537ecdfda6c03860455c187b775bc6dec97",
      "parents": [
        "8dbed5cebdf6796bf2618457b3653cf820934366"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "message": "md/raid10: avoid reading known bad blocks during resync/recovery.\n\nDuring resync/recovery limit the size of the request to avoid\nreading into a bad block that does not start at-or-before the current\nread address.\n\nSimilarly if there is a bad block at this address, don\u0027t allow the\ncurrent request to extend beyond the end of that bad block.\n\nNow that we don\u0027t ever read from known bad blocks, it is safe to allow\ndevices with those blocks into the array.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8dbed5cebdf6796bf2618457b3653cf820934366",
      "tree": "b8e8421a3aae1ee8f21df97f76b116fd0a0a9b1c",
      "parents": [
        "7399c31bc92a26bb8388a73f8e14acadcc512fe5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 28 11:39:24 2011 +1000"
      },
      "message": "md/raid10 - avoid reading from known bad blocks - part 3\n\nWhen attempting to repair a read error, don\u0027t read from\ndevices with a known bad block.\n\nAs we are only reading PAGE_SIZE blocks, we don\u0027t try to\nnarrow down to smaller regions in the hope that only part of this\npage is bad - it isn\u0027t worth the effort.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7399c31bc92a26bb8388a73f8e14acadcc512fe5",
      "tree": "0f1d9904fde1d5258c84643a26947288251b9776",
      "parents": [
        "856e08e23762dfb92ffc68fd0a8d228f9e152160"
      ],
      "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 2\n\nWhen redirecting a read error to a different device, we must\nagain avoid bad blocks and possibly split the request.\n\nSpin_lock typo fixed thanks to Dan Carpenter \u003cerror27@gmail.com\u003e\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "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": "22712200e175e0df5c7f9edfe6c6bf5c94c23b83",
      "tree": "a3e332aab7f5a953ff4f12e67af2a0e5f32f5be5",
      "parents": [
        "597a67e0ba758e3d2239c81fbb648c6e69ec30a2",
        "ff95acb6733d41a8d45feb0e18b96df25e610e78"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 16:43:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 16:43:52 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: make sure reserve_metadata_bytes doesn\u0027t leak out strange errors\n  Btrfs: use the commit_root for reading free_space_inode crcs\n  Btrfs: reduce extent_state lock contention for metadata\n  Btrfs: remove lockdep magic from btrfs_next_leaf\n  Btrfs: make a lockdep class for each root\n  Btrfs: switch the btrfs tree locks to reader/writer\n  Btrfs: fix deadlock when throttling transactions\n  Btrfs: stop using highmem for extent_buffers\n  Btrfs: fix BUG_ON() caused by ENOSPC when relocating space\n  Btrfs: tag pages for writeback in sync\n  Btrfs: fix enospc problems with delalloc\n  Btrfs: don\u0027t flush delalloc arbitrarily\n  Btrfs: use find_or_create_page instead of grab_cache_page\n  Btrfs: use a worker thread to do caching\n  Btrfs: fix how we merge extent states and deal with cached states\n  Btrfs: use the normal checksumming infrastructure for free space cache\n  Btrfs: serialize flushers in reserve_metadata_bytes\n  Btrfs: do transaction space reservation before joining the transaction\n  Btrfs: try to only do one btrfs_search_slot in do_setxattr\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": "597a67e0ba758e3d2239c81fbb648c6e69ec30a2",
      "tree": "e2b6146df41943e7f87168fe3f5825722b434223",
      "parents": [
        "28890d3598c352ae065b560e0fded3e79c800ba1",
        "510792ee29770a38dd409bf2b469ade2fea9eb52"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:41:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:41:51 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: optimize the negative xattr caching\n  xfs: prevent against ioend livelocks in xfs_file_fsync\n  xfs: flag all buffers as metadata\n  xfs: encapsulate a block of debug code\n"
    },
    {
      "commit": "28890d3598c352ae065b560e0fded3e79c800ba1",
      "tree": "93267c5b29b9e81185e66a6c2e70e67dc626b63f",
      "parents": [
        "91d41fdf31f74e6e2e5f3cb018eca4200e36e202",
        "ed1e6211a0a134ff23592c6f057af982ad5dab52"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:23:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:23:02 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-3.1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (44 commits)\n  NFSv4: Don\u0027t use the delegation-\u003einode in nfs_mark_return_delegation()\n  nfs: don\u0027t use d_move in nfs_async_rename_done\n  RDMA: Increasing RPCRDMA_MAX_DATA_SEGS\n  SUNRPC: Replace xprt-\u003eresend and xprt-\u003esending with a priority queue\n  SUNRPC: Allow caller of rpc_sleep_on() to select priority levels\n  SUNRPC: Support dynamic slot allocation for TCP connections\n  SUNRPC: Clean up the slot table allocation\n  SUNRPC: Initalise the struct xprt upon allocation\n  SUNRPC: Ensure that we grab the XPRT_LOCK before calling xprt_alloc_slot\n  pnfs: simplify pnfs files module autoloading\n  nfs: document nfsv4 sillyrename issues\n  NFS: Convert nfs4_set_ds_client to EXPORT_SYMBOL_GPL\n  SUNRPC: Convert the backchannel exports to EXPORT_SYMBOL_GPL\n  SUNRPC: sunrpc should not explicitly depend on NFS config options\n  NFS: Clean up - simplify the switch to read/write-through-MDS\n  NFS: Move the pnfs write code into pnfs.c\n  NFS: Move the pnfs read code into pnfs.c\n  NFS: Allow the nfs_pageio_descriptor to signal that a re-coalesce is needed\n  NFS: Use the nfs_pageio_descriptor-\u003epg_bsize in the read/write request\n  NFS: Cache rpc_ops in struct nfs_pageio_descriptor\n  ...\n"
    },
    {
      "commit": "91d41fdf31f74e6e2e5f3cb018eca4200e36e202",
      "tree": "81ef11f06bd8047031a2d93706dc263fa1bacd56",
      "parents": [
        "c1095c6da518b0b64e724f629051fa67655cd8d9",
        "277c5f27a2c86a9a733c0ec0f6a9b1032dfa3e15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:21:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:21:40 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:\n  target: Convert to DIV_ROUND_UP_SECTOR_T usage for sectors / dev_max_sectors\n  kernel.h: Add DIV_ROUND_UP_ULL and DIV_ROUND_UP_SECTOR_T macro usage\n  iscsi-target: Add iSCSI fabric support for target v4.1\n  iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h\n  iscsi: Use struct scsi_lun in iscsi structs instead of u8[8]\n  iscsi: Resolve iscsi_proto.h naming conflicts with drivers/target/iscsi\n"
    },
    {
      "commit": "ff95acb6733d41a8d45feb0e18b96df25e610e78",
      "tree": "e20983c579c9095970aefa9cb176a9df0654d1e4",
      "parents": [
        "02f8c6aee8df3cdc935e9bdd4f2d020306035dbe",
        "75c195a2cac2c3c8366c0b87de2d6814c4f4d638"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 16:13:10 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 16:18:13 2011 -0400"
      },
      "message": "Merge branch \u0027integration\u0027 into for-linus\n"
    },
    {
      "commit": "75c195a2cac2c3c8366c0b87de2d6814c4f4d638",
      "tree": "82ac06d2c8f3746a3d438853d03239311c2a71a1",
      "parents": [
        "2cf8572dac62cc2ff7e995173e95b6c694401b3f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 15:57:44 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 16:11:41 2011 -0400"
      },
      "message": "Btrfs: make sure reserve_metadata_bytes doesn\u0027t leak out strange errors\n\nThe btrfs transaction code will return any errors that come from\nreserve_metadata_bytes.  We need to make sure we don\u0027t return funny\nthings like 1 or EAGAIN.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c1095c6da518b0b64e724f629051fa67655cd8d9",
      "tree": "8c2e33ca6c8e3caa71437c3b69b36a8cf03b4f08",
      "parents": [
        "678624e401b0b7747762b5223fb23f86dcdacc93"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 27 12:49:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 12:53:36 2011 -0700"
      },
      "message": "signals: sys_ssetmask/sys_rt_sigsuspend should use set_current_blocked()\n\nsys_ssetmask(), sys_rt_sigsuspend() and compat_sys_rt_sigsuspend()\nchange -\u003eblocked directly.  This is not correct, see the changelog in\ne6fa16ab \"signal: sigprocmask() should do retarget_shared_pending()\"\n\nChange them to use set_current_blocked().\n\nAnother change is that now we are doing -\u003esaved_sigmask \u003d -\u003eblocked\nlockless, it doesn\u0027t make any sense to do this under -\u003esiglock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "678624e401b0b7747762b5223fb23f86dcdacc93",
      "tree": "f3a413887b7ac98c66aa6e77fd6b187ec2c249cb",
      "parents": [
        "09570f914914d2beb0db29c5a9c7344934f2fa8c"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Wed Jul 27 12:49:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 12:53:36 2011 -0700"
      },
      "message": "sparc: rename atomic_add_unless\n\nShould have been done in commit 1af08a1407f4 (\"This is in preparation\nfor more generic atomic\").\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Hans-Christian Egtvedt\" \u003chans-christian.egtvedt@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09570f914914d2beb0db29c5a9c7344934f2fa8c",
      "tree": "a93900db5e607887aca3ef2cecc2426abe007d87",
      "parents": [
        "5fd00b031530cc476240f654c078c930f1dcd6ea"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jul 27 21:47:03 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 12:50:45 2011 -0700"
      },
      "message": "proc: make struct proc_dir_entry::name a terminal array rather than a pointer\n\nSince __proc_create() appends the name it is given to the end of the PDE\nstructure that it allocates, there isn\u0027t a need to store a name pointer.\nInstead we can just replace the name pointer with a terminal char array of\n_unspecified_ length.  The compiler will simply append the string to statically\ndefined variables of PDE type overlapping any hole at the end of the structure\nand, unlike specifying an explicitly _zero_ length array, won\u0027t give a warning\nif you try to statically initialise it with a string of more than zero length.\n\nAlso, whilst we\u0027re at it:\n\n (1) Move namelen to end just prior to name and reduce it to a single byte\n     (name shouldn\u0027t be longer than NAME_MAX).\n\n (2) Move pde_unload_lock two places further on so that if it\u0027s four bytes in\n     size on a 64-bit machine, it won\u0027t cause an unused hole in the PDE struct.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d34e6d3ec0393a286569587fbd9675abd258d93",
      "tree": "a9cc1ef4024ff96a93b0c0f2013d0d604a7b9177",
      "parents": [
        "c48a8fb0d31d6147d8d76b8e2ad7f51a2fbb5c4d"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Wed Jul 27 17:48:41 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Jul 27 19:16:05 2011 +0200"
      },
      "message": "sound: oss: rename local change_bits to avoid powerpc bitsops.h definition\n\nThis collides with powerpc exported functions from bitops.h.  Rename the\nlocal copy in the oss soundblaster mixer and ad1848 driver.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "2cf8572dac62cc2ff7e995173e95b6c694401b3f",
      "tree": "ae37f2f4a2f4a797ee971a94ee2c29c55a8048dc",
      "parents": [
        "19b6caf4acbf065dc96b47741d99f1b87243c468"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jul 26 15:35:09 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:48 2011 -0400"
      },
      "message": "Btrfs: use the commit_root for reading free_space_inode crcs\n\nNow that we are using regular file crcs for the free space cache,\nwe can deadlock if we try to read the free_space_inode while we are\nupdating the crc tree.\n\nThis commit fixes things by using the commit_root to read the crcs.  This is\nsafe because we the free space cache file would already be loaded if\nthat block group had been changed in the current transaction.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "19b6caf4acbf065dc96b47741d99f1b87243c468",
      "tree": "4bce889648c2459e1dbd9fd835a196db26c06f9b",
      "parents": [
        "31533fb263928c93a34cda41b66a6e83ade5c766"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 25 06:50:50 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:47 2011 -0400"
      },
      "message": "Btrfs: reduce extent_state lock contention for metadata\n\nFor metadata buffers that don\u0027t straddle pages (all of them), btrfs\ncan safely use the page uptodate bits and extent_buffer uptodate bit\ninstead of needing to use the extent_state tree.\n\nThis greatly reduces contention on the state tree lock.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "31533fb263928c93a34cda41b66a6e83ade5c766",
      "tree": "b4f3a770e805403adc1931f3bb15213ee2a0d624",
      "parents": [
        "85d4e461117b40eb10722f774566b19bd5e77879"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jul 26 16:01:59 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:47 2011 -0400"
      },
      "message": "Btrfs: remove lockdep magic from btrfs_next_leaf\n\nBefore the reader/writer locks, btrfs_next_leaf needed to keep\nthe path blocking to avoid making lockdep upset.\n\nNow that btrfs_next_leaf only takes read locks, this isn\u0027t required.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "85d4e461117b40eb10722f774566b19bd5e77879",
      "tree": "56b7c66d03a72008e0db0bf4f58edbee5170fee1",
      "parents": [
        "bd681513fa6f2ff29aa391f01e413a2d1c59fd77"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jul 26 16:11:19 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:46 2011 -0400"
      },
      "message": "Btrfs: make a lockdep class for each root\n\nThis patch was originally from Tejun Heo.  lockdep complains about the btrfs\nlocking because we sometimes take btree locks from two different trees at the\nsame time.  The current classes are based only on level in the btree, which\nisn\u0027t enough information for lockdep to figure out if the lock is safe.\n\nThis patch makes a class for each type of tree, and lumps all the FS trees that\nactually have files and directories into the same class.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bd681513fa6f2ff29aa391f01e413a2d1c59fd77",
      "tree": "bb10ec6ef876b4d7a553cbe54976ec49a0d10b21",
      "parents": [
        "81317fdeddcef259b6ecf7b5c0d04caa167c6b54"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jul 16 15:23:14 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:46 2011 -0400"
      },
      "message": "Btrfs: switch the btrfs tree locks to reader/writer\n\nThe btrfs metadata btree is the source of significant\nlock contention, especially in the root node.   This\ncommit changes our locking to use a reader/writer\nlock.\n\nThe lock is built on top of rw spinlocks, and it\nextends the lock tracking to remember if we have a\nread lock or a write lock when we go to blocking.  Atomics\ncount the number of blocking readers or writers at any\ngiven time.\n\nIt removes all of the adaptive spinning from the old code\nand uses only the spinning/blocking hints inside of btrfs\nto decide when it should continue spinning.\n\nIn read heavy workloads this is dramatically faster.  In write\nheavy workloads we\u0027re still faster because of less contention\non the root node lock.\n\nWe suffer slightly in dbench because we schedule more often\nduring write locks, but all other benchmarks so far are improved.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "81317fdeddcef259b6ecf7b5c0d04caa167c6b54",
      "tree": "aeca005b8b595539b554a6b8a92dc052ccad5601",
      "parents": [
        "a65917156e345946dbde3d7effd28124c6d6a8c2"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sun Jul 24 15:45:34 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:46 2011 -0400"
      },
      "message": "Btrfs: fix deadlock when throttling transactions\n\nHit this nice little deadlock.  What happens is this\n\n__btrfs_end_transaction with throttle set, --use_count so it equals 0\n  btrfs_commit_transaction\n    \u003csomebody else actually manages to start the commit\u003e\n    btrfs_end_transaction --use_count so now its -1 \u003c\u003d\u003d BAD\n      we just return and wait on the transaction\n\nThis is bad because we just return after our use_count is -1 and don\u0027t let go\nof our num_writer count on the transaction, so the guy committing the\ntransaction just sits there forever.  Fix this by inc\u0027ing our use_count if we\u0027re\ngoing to call commit_transaction so that if we call btrfs_end_transaction it\u0027s\nvalid.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a65917156e345946dbde3d7effd28124c6d6a8c2",
      "tree": "dc5478189be0f6a321bfc23ee0545f71de67763b",
      "parents": [
        "199c36eaa95077a47ae1bc55532fc0fbeb80cc95"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jul 19 12:04:14 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:45 2011 -0400"
      },
      "message": "Btrfs: stop using highmem for extent_buffers\n\nThe extent_buffers have a very complex interface where\nwe use HIGHMEM for metadata and try to cache a kmap mapping\nto access the memory.\n\nThe next commit adds reader/writer locks, and concurrent use\nof this kmap cache would make it even more complex.\n\nThis commit drops the ability to use HIGHMEM with extent buffers,\nand rips out all of the related code.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "199c36eaa95077a47ae1bc55532fc0fbeb80cc95",
      "tree": "ef4e9a5ff244c842b9b335cb391223d9a4d5f854",
      "parents": [
        "f7aaa06bff6f5fe049ce9723267e1639c2c3d8b5"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Jul 15 10:34:36 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:45 2011 -0400"
      },
      "message": "Btrfs: fix BUG_ON() caused by ENOSPC when relocating space\n\nWhen we balanced the chunks across the devices, BUG_ON() in\n__finish_chunk_alloc() was triggered.\n\n------------[ cut here ]------------\nkernel BUG at fs/btrfs/volumes.c:2568!\n[SNIP]\nCall Trace:\n [\u003cffffffffa049525e\u003e] btrfs_alloc_chunk+0x8e/0xa0 [btrfs]\n [\u003cffffffffa04546b0\u003e] do_chunk_alloc+0x330/0x3a0 [btrfs]\n [\u003cffffffffa045c654\u003e] btrfs_reserve_extent+0xb4/0x1f0 [btrfs]\n [\u003cffffffffa045c86b\u003e] btrfs_alloc_free_block+0xdb/0x350 [btrfs]\n [\u003cffffffffa048a8d8\u003e] ? read_extent_buffer+0xd8/0x1d0 [btrfs]\n [\u003cffffffffa04476fd\u003e] __btrfs_cow_block+0x14d/0x5e0 [btrfs]\n [\u003cffffffffa044660d\u003e] ? read_block_for_search+0x14d/0x4d0 [btrfs]\n [\u003cffffffffa0447c9b\u003e] btrfs_cow_block+0x10b/0x240 [btrfs]\n [\u003cffffffffa044dd5e\u003e] btrfs_search_slot+0x49e/0x7a0 [btrfs]\n [\u003cffffffffa044f07d\u003e] btrfs_insert_empty_items+0x8d/0xf0 [btrfs]\n [\u003cffffffffa045e973\u003e] insert_with_overflow+0x43/0x110 [btrfs]\n [\u003cffffffffa045eb0d\u003e] btrfs_insert_dir_item+0xcd/0x1f0 [btrfs]\n [\u003cffffffffa0489bd0\u003e] ? map_extent_buffer+0xb0/0xc0 [btrfs]\n [\u003cffffffff812276ad\u003e] ? rb_insert_color+0x9d/0x160\n [\u003cffffffffa046cc40\u003e] ? inode_tree_add+0xf0/0x150 [btrfs]\n [\u003cffffffffa0474801\u003e] btrfs_add_link+0xc1/0x1c0 [btrfs]\n [\u003cffffffff811dacac\u003e] ? security_inode_init_security+0x1c/0x30\n [\u003cffffffffa04a28aa\u003e] ? btrfs_init_acl+0x4a/0x180 [btrfs]\n [\u003cffffffffa047492f\u003e] btrfs_add_nondir+0x2f/0x70 [btrfs]\n [\u003cffffffffa046af16\u003e] ? btrfs_init_inode_security+0x46/0x60 [btrfs]\n [\u003cffffffffa0474ac0\u003e] btrfs_create+0x150/0x1d0 [btrfs]\n [\u003cffffffff81159c63\u003e] ? generic_permission+0x23/0xb0\n [\u003cffffffff8115b415\u003e] vfs_create+0xa5/0xc0\n [\u003cffffffff8115ce6e\u003e] do_last+0x5fe/0x880\n [\u003cffffffff8115dc0d\u003e] path_openat+0xcd/0x3d0\n [\u003cffffffff8115e029\u003e] do_filp_open+0x49/0xa0\n [\u003cffffffff8116a965\u003e] ? alloc_fd+0x95/0x160\n [\u003cffffffff8114f0c7\u003e] do_sys_open+0x107/0x1e0\n [\u003cffffffff810bcc3f\u003e] ? audit_syscall_entry+0x1bf/0x1f0\n [\u003cffffffff8114f1e0\u003e] sys_open+0x20/0x30\n [\u003cffffffff81484ec2\u003e] system_call_fastpath+0x16/0x1b\n[SNIP]\nRIP  [\u003cffffffffa049444a\u003e] __finish_chunk_alloc+0x20a/0x220 [btrfs]\n\nThe reason is:\nTask1\t\t\t\t\tSpace balance task\ndo_chunk_alloc()\n  __finish_chunk_alloc()\n    update device info\n    in the chunk tree\n      alloc system metadata block\n\t\t\t\t\trelocate system metadata block group\n\t\t\t\t\t  set system metadata block group\n\t\t\t\t\t  readonly, This block group is the\n\t\t\t\t\t  only one that can allocate space. So\n\t\t\t\t\t  there is no free space that can be\n\t\t\t\t\t  allocated now.\n        find no space and don\u0027t try\n        to alloc new chunk, and then\n        return ENOSPC\n  BUG_ON() in __finish_chunk_alloc()\n  was triggered.\n\nFix this bug by allocating a new system metadata chunk before relocating the\nold one if we find there is no free space which can be allocated after setting\nthe old block group to be read-only.\n\nReported-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nTested-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f7aaa06bff6f5fe049ce9723267e1639c2c3d8b5",
      "tree": "d3b5e20709a91f4bc473a898e37531f322a1bc6c",
      "parents": [
        "9e0baf60dea69f31ac3b1adeb35b03b02a53e8e1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jul 15 21:26:38 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:44 2011 -0400"
      },
      "message": "Btrfs: tag pages for writeback in sync\n\nEverybody else does this, we need to do it too.  If we\u0027re syncing, we need to\ntag the pages we\u0027re going to write for writeback so we don\u0027t end up writing the\nsame stuff over and over again if somebody is constantly redirtying our file.\nThis will keep us from having latencies with heavy sync workloads.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9e0baf60dea69f31ac3b1adeb35b03b02a53e8e1",
      "tree": "0fb899e1fa78b599d22389ca3befc8ab51ff5049",
      "parents": [
        "a5991428064e98c7367fe1c1686ea6a23fb6a4b3"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jul 15 15:16:44 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:44 2011 -0400"
      },
      "message": "Btrfs: fix enospc problems with delalloc\n\nSo I had this brilliant idea to use atomic counters for outstanding and reserved\nextents, but this turned out to be a bad idea.  Consider this where we have 1\noutstanding extent and 1 reserved extent\n\nReserver\t\t\t\tReleaser\n\t\t\t\t\tatomic_dec(outstanding) now 0\natomic_read(outstanding)+1 get 1\natomic_read(reserved) get 1\ndon\u0027t actually reserve anything because\nthey are the same\n\t\t\t\t\tatomic_cmpxchg(reserved, 1, 0)\natomic_inc(outstanding)\natomic_add(0, reserved)\n\t\t\t\t\tfree reserved space for 1 extent\n\nThen the reserver now has no actual space reserved for it, and when it goes to\nfinish the ordered IO it won\u0027t have enough space to do it\u0027s allocation and you\nget those lovely warnings.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a5991428064e98c7367fe1c1686ea6a23fb6a4b3",
      "tree": "4e063831c205d707bd1e85fb5814a95f61843dc8",
      "parents": [
        "a94733d0bc630edaedc6ca156752dd5a7cb82521"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jul 15 16:01:03 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:43 2011 -0400"
      },
      "message": "Btrfs: don\u0027t flush delalloc arbitrarily\n\nKill the check to see if we have 512mb of reserved space in delalloc and\nshrink_delalloc if we do.  This causes unexpected latencies and we have other\nlogic to see if we need to throttle.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a94733d0bc630edaedc6ca156752dd5a7cb82521",
      "tree": "3f0bd508aa1ce5894e43df45bb73031a380ed8f5",
      "parents": [
        "bab39bf998133510f2dad08158006197ec0dabea"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jul 11 10:47:06 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:43 2011 -0400"
      },
      "message": "Btrfs: use find_or_create_page instead of grab_cache_page\n\ngrab_cache_page will use mapping_gfp_mask(), which for all inodes is set to\nGFP_HIGHUSER_MOVABLE.  So instead use find_or_create_page in all cases where we\nneed GFP_NOFS so we don\u0027t deadlock.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "bab39bf998133510f2dad08158006197ec0dabea",
      "tree": "0ea50b2b07a9f75988829de6c42b6936e2355545",
      "parents": [
        "df98b6e2c52f65665eaf0fc23e647fb64335b289"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jun 30 14:42:28 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 27 12:46:25 2011 -0400"
      },
      "message": "Btrfs: use a worker thread to do caching\n\nA user reported a deadlock when copying a bunch of files.  This is because they\nwere low on memory and kthreadd got hung up trying to migrate pages for an\nallocation when starting the caching kthread.  The page was locked by the person\nstarting the caching kthread.  To fix this we just need to use the async thread\nstuff so that the threads are already created and we don\u0027t have to worry about\ndeadlocks.  Thanks,\n\nReported-by: Roman Mamedov \u003crm@romanrm.ru\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "5fd00b031530cc476240f654c078c930f1dcd6ea",
      "tree": "1673effc8eb32932cdcbbd211d4632a80e5693a0",
      "parents": [
        "333c066bb76f1f270ca77f16afe198e54e352c83",
        "3c2c22628599006047781946b317a16d9ff3883d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:\n  jfs: clean up some compiler warnings\n"
    },
    {
      "commit": "333c066bb76f1f270ca77f16afe198e54e352c83",
      "tree": "07343bcb01b28ca48c4e364a5da7dcacc0c37439",
      "parents": [
        "75623437167d9d1ef14acaf6b3fb4ccd38fcbc84",
        "19237039919088781b4191a00bdc1284d8fea1dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:22 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: Fix mount hang caused by certain access pattern to sysfs files\n"
    }
  ],
  "next": "75623437167d9d1ef14acaf6b3fb4ccd38fcbc84"
}
