)]}'
{
  "log": [
    {
      "commit": "b77874c9699522540e65aa4291e37a7e43533bf3",
      "tree": "7da11a926fc8d697e3a475ee662e04f239b9cff5",
      "parents": [
        "8ce800935d074ee4667a6a950fb4784009a969ea"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:44:54 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:46:50 2012 +0200"
      },
      "message": "mtip32xx: Changes to sysfs entries\n\n* Formatted the output of \u0027registers\u0027 entry\n* Added \"Commands in Q\u0027 to output of \u0027registers\u0027 entry\n* Added a new entry \u0027flags\u0027\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8ce800935d074ee4667a6a950fb4784009a969ea",
      "tree": "ce2ba8e21c4f8ae7715cc1a033a3c083597eedaf",
      "parents": [
        "377b8fc6d70aab90ccfc053630c65835defbc3f8"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:44:27 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:46:50 2012 +0200"
      },
      "message": "mtip32xx: Convert macro definitions for flag bits to enum\n\nConvert macro definitions for flags bits to enum\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "377b8fc6d70aab90ccfc053630c65835defbc3f8",
      "tree": "df4480f4d5c0a60dfe535e1ae916bc5ae53f36c5",
      "parents": [
        "e602878fd89dab0af2af995a6bef0fbe97b20dc8"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:44:01 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:46:50 2012 +0200"
      },
      "message": "mtip32xx: minor performance tweak\n\nWhen checking for command completions if the register value is zero, proceed\nto next register.\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e602878fd89dab0af2af995a6bef0fbe97b20dc8",
      "tree": "26890181c7f897d0e1751f6c12c8204c7e23cde4",
      "parents": [
        "0a07ab224afc56c497e2f1c48e853dbdf964d549"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:43:31 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:46:50 2012 +0200"
      },
      "message": "mtip32xx: Fix to support more than one sector in exec_drive_command()\n\nFix to support more than one sector in exec_drive_command().\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "0a07ab224afc56c497e2f1c48e853dbdf964d549",
      "tree": "1bde0fec2ac58848d86fd64d465401d54a0e9323",
      "parents": [
        "6c8ab69818e9469c864eea7d47c3d1c36ecd1e95"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:43:16 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:46:50 2012 +0200"
      },
      "message": "mtip32xx: Use plain spinlock for \u0027cmd_issue_lock\u0027\n\n\u0027cmd_issue_lock\u0027 is for only acquiring a free slot, and it is not used\nin interrupt context. So replaced irq version with non-irq version of spinlock.\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "6c8ab69818e9469c864eea7d47c3d1c36ecd1e95",
      "tree": "4b46a99bd458fb8536eaaf370a571adf51a57b98",
      "parents": [
        "d02e1f0ad098b3b36853d639e9befeb273c63cc5"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:42:51 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:46:50 2012 +0200"
      },
      "message": "mtip32xx: Set block queue boundary variables\n\nSet the following block queue boundary variables\n\t* max_hw_sectors\n\t* max_segment_size\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\n\nRemoved setting of q-\u003enr_requests.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d02e1f0ad098b3b36853d639e9befeb273c63cc5",
      "tree": "df509f0f4c8c24807df9973fd12db5c3ef13823f",
      "parents": [
        "971890f25834e1e81ccb97b9413d0c2852d49208"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:42:27 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:36:55 2012 +0200"
      },
      "message": "mtip32xx: Fix to handle TFE for PIO(IOCTL/internal) commands\n\nIf a PIO (IOCTL/internal) command resulted in TFE, signal the wait event or break out of polling.\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "971890f25834e1e81ccb97b9413d0c2852d49208",
      "tree": "0310974c32b562ccad9e8d83b33c9a687ee5c522",
      "parents": [
        "2df7aa96e75c4447e8bae0fd03b8c386c36ece40"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:41:47 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:36:55 2012 +0200"
      },
      "message": "mtip32xx: Change HDIO_GET_IDENTITY to return stored data\n\nFor the ioctl command HDIO_GET_IDENTITY, return the stored copy of IDENTIFY\nDATA instead of sending the command to the device - similar to libata.\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "2df7aa96e75c4447e8bae0fd03b8c386c36ece40",
      "tree": "29499c7a0884e6ff7a18b30c027c1762af742120",
      "parents": [
        "6bb688c048c9625030fc911dc93d49bcd15feb1f"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:41:23 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:36:55 2012 +0200"
      },
      "message": "mtip32xx: Set custom timeouts for PIO commands\n\nThis change sets custom timeouts depending on PIO command.\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "6bb688c048c9625030fc911dc93d49bcd15feb1f",
      "tree": "95d3035b1dc9a9a01bd61f10d145dae5c729b54a",
      "parents": [
        "af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue May 29 18:40:45 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 31 08:36:55 2012 +0200"
      },
      "message": "mtip32xx: fix clearing an incorrect register in mtip_init_port\n\nFix clearing an incorrect register in mtip_init_port\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76",
      "tree": "304bd85e5db2d07efa2913aa7c6313b918cfbfdb",
      "parents": [
        "65a50c951a38e9827dd9655b6e686bde912e799b",
        "6bd9adbdf9ca6a052b0b7455ac67b925eb38cfad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 11:17:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 11:17:19 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull ceph updates from Sage Weil:\n \"There are some updates and cleanups to the CRUSH placement code, a bug\n  fix with incremental maps, several cleanups and fixes from Josh Durgin\n  in the RBD block device code, a series of cleanups and bug fixes from\n  Alex Elder in the messenger code, and some miscellaneous bounds\n  checking and gfp cleanups/fixes.\"\n\nFix up trivial conflicts in net/ceph/{messenger.c,osdmap.c} due to the\nnetworking people preferring \"unsigned int\" over just \"unsigned\".\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (45 commits)\n  libceph: fix pg_temp updates\n  libceph: avoid unregistering osd request when not registered\n  ceph: add auth buf in prepare_write_connect()\n  ceph: rename prepare_connect_authorizer()\n  ceph: return pointer from prepare_connect_authorizer()\n  ceph: use info returned by get_authorizer\n  ceph: have get_authorizer methods return pointers\n  ceph: ensure auth ops are defined before use\n  ceph: messenger: reduce args to create_authorizer\n  ceph: define ceph_auth_handshake type\n  ceph: messenger: check return from get_authorizer\n  ceph: messenger: rework prepare_connect_authorizer()\n  ceph: messenger: check prepare_write_connect() result\n  ceph: don\u0027t set WRITE_PENDING too early\n  ceph: drop msgr argument from prepare_write_connect()\n  ceph: messenger: send banner in process_connect()\n  ceph: messenger: reset connection kvec caller\n  libceph: don\u0027t reset kvec in prepare_write_banner()\n  ceph: ignore preferred_osd field\n  ceph: fully initialize new layout\n  ...\n"
    },
    {
      "commit": "a70f35af4e49f87ba4b6c4b30220fbb66cd74af6",
      "tree": "f81d1c68d332f7ed32048085fa2972c057f62419",
      "parents": [
        "0d167518e045cc8bb63f0a8a0a85ad4fa4e0044f",
        "4fd1ffaa122cf66bfb710ced43679413df4f3605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 09:05:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 09:05:47 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver updates from Jens Axboe:\n \"Here are the driver related changes for 3.5.  It contains:\n\n   - The floppy changes from Jiri.  Jiri is now also marked as the\n     maintainer of floppy.c, I shall be publically branding his forehead\n     with red hot iron at the next opportune moment.\n\n   - A batch of drbd updates and fixes from the linbit crew, as well as\n     fixes from others.\n\n   - Two small fixes for xen-blkfront courtesy of Jan.\"\n\n* \u0027for-3.5/drivers\u0027 of git://git.kernel.dk/linux-block: (70 commits)\n  floppy: take over maintainership\n  floppy: remove floppy-specific O_EXCL handling\n  floppy: convert to delayed work and single-thread wq\n  xen-blkfront: module exit handling adjustments\n  xen-blkfront: properly name all devices\n  drbd: grammar fix in log message\n  drbd: check MODULE for THIS_MODULE\n  drbd: Restore the request restart logic\n  drbd: introduce a bio_set to allocate housekeeping bios from\n  drbd: remove unused define\n  drbd: bm_page_async_io: properly initialize page-\u003eprivate\n  drbd: use the newly introduced page pool for bitmap IO\n  drbd: add page pool to be used for meta data IO\n  drbd: allow bitmap to change during writeout from resync_finished\n  drbd: fix race between drbdadm invalidate/verify and finishing resync\n  drbd: fix resend/resubmit of frozen IO\n  drbd: Ensure that data_size is not 0 before using data_size-1 as index\n  drbd: Delay/reject other state changes while establishing a connection\n  drbd: move put_ldev from __req_mod() to the endio callback\n  drbd: fix WRITE_ACKED_BY_PEER_AND_SIS to not set RQ_NET_DONE\n  ...\n"
    },
    {
      "commit": "99262a3dafa3290866512ddfb32609198f8973e9",
      "tree": "6f74764150cd9c38d9ffacbeb5054b696537e154",
      "parents": [
        "bf67f3a5c456a18f2e8d062f7e88506ef2cd9837",
        "c6190804f1dc5357b57825f0491eb31fc9ccf130"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 20:20:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 20:20:23 2012 -0700"
      },
      "message": "Merge tag \u0027virtio-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\nPull virtio updates from Rusty Russell.\n\n* tag \u0027virtio-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  virtio: fix typo in comment\n  virtio-mmio: Devices parameter parsing\n  virtio_blk: Drop unused request tracking list\n  virtio-blk: Fix hot-unplug race in remove method\n  virtio: Use ida to allocate virtio index\n  virtio: balloon: separate out common code between remove and freeze functions\n  virtio: balloon: drop restore_common()\n  9p: disconnect channel when PCI device is removed\n  virtio: update documentation to v0.9.5 of spec\n"
    },
    {
      "commit": "f65ca1dc6a8c81c6bd72297d4399ec5f4c1f3a01",
      "tree": "e2c1fe6ebc2ec6a9ee6b31f06404b5df2b9f6b3d",
      "parents": [
        "b79d866c8b7014a51f611a64c40546109beaf24a"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Fri Mar 30 11:24:10 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 22 12:16:14 2012 +0930"
      },
      "message": "virtio_blk: Drop unused request tracking list\n\nBenchmark shows small performance improvement on fusion io device.\n\nBefore:\n  seq-read : io\u003d1,024MB, bw\u003d19,982KB/s, iops\u003d39,964, runt\u003d 52475msec\n  seq-write: io\u003d1,024MB, bw\u003d20,321KB/s, iops\u003d40,641, runt\u003d 51601msec\n  rnd-read : io\u003d1,024MB, bw\u003d15,404KB/s, iops\u003d30,808, runt\u003d 68070msec\n  rnd-write: io\u003d1,024MB, bw\u003d14,776KB/s, iops\u003d29,552, runt\u003d 70963msec\n\nAfter:\n  seq-read : io\u003d1,024MB, bw\u003d20,343KB/s, iops\u003d40,685, runt\u003d 51546msec\n  seq-write: io\u003d1,024MB, bw\u003d20,803KB/s, iops\u003d41,606, runt\u003d 50404msec\n  rnd-read : io\u003d1,024MB, bw\u003d16,221KB/s, iops\u003d32,442, runt\u003d 64642msec\n  rnd-write: io\u003d1,024MB, bw\u003d15,199KB/s, iops\u003d30,397, runt\u003d 68991msec\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b79d866c8b7014a51f611a64c40546109beaf24a",
      "tree": "b20a73e60302c74e9a3e0663819cac6c52470c2b",
      "parents": [
        "90e03207f468e84258270ad07095ef50f925c17d"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Fri May 04 20:22:04 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 22 12:16:13 2012 +0930"
      },
      "message": "virtio-blk: Fix hot-unplug race in remove method\n\nIf we reset the virtio-blk device before the requests already dispatched\nto the virtio-blk driver from the block layer are finised, we will stuck\nin blk_cleanup_queue() and the remove will fail.\n\nblk_cleanup_queue() calls blk_drain_queue() to drain all requests queued\nbefore DEAD marking. However it will never success if the device is\nalready stopped. We\u0027ll have q-\u003ein_flight[] \u003e 0, so the drain will not\nfinish.\n\nHow to reproduce the race:\n1. hot-plug a virtio-blk device\n2. keep reading/writing the device in guest\n3. hot-unplug while the device is busy serving I/O\n\nTest:\n~1000 rounds of hot-plug/hot-unplug test passed with this patch.\n\nChanges in v3:\n- Drop blk_abort_queue and blk_abort_request\n- Use __blk_end_request_all to complete request dispatched to driver\n\nChanges in v2:\n- Drop req_in_flight\n- Use virtqueue_detach_unused_buf to get request dispatched to driver\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "17eea0df5f7068fc04959e655ef8f0a0ed097e19",
      "tree": "d44b5cceb813dddfd1e62fe9f92556cf113d62fd",
      "parents": [
        "9b905fe68433378032b851c4d81a59187689fa52",
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 21:53:04 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 21:53:04 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "14e931a264498fbd4baef07ee0644e347252393b",
      "tree": "c202cd976f478fed3d7d786521ab3e32abdc0f9e",
      "parents": [
        "a2ae9787568ac50978c03ce67bfb79ad2e100cca",
        "05c69d298c96703741cac9a5cbbf6c53bd55a6e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 19 10:12:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 19 10:12:17 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\nPull block layer fixes from Jens Axboe:\n \"A few small, but important fixes.  Most of them are marked for stable\n  as well\n\n   - Fix failure to release a semaphore on error path in mtip32xx.\n   - Fix crashable condition in bio_get_nr_vecs().\n   - Don\u0027t mark end-of-disk buffers as mapped, limit it to i_size.\n   - Fix for build problem with CONFIG_BLOCK\u003dn on arm at least.\n   - Fix for a buffer overlow on UUID partition printing.\n   - Trivial removal of unused variables in dac960.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: fix buffer overflow when printing partition UUIDs\n  Fix blkdev.h build errors when BLOCK\u003dn\n  bio allocation failure due to bio_get_nr_vecs()\n  block: don\u0027t mark buffers beyond end of disk as mapped\n  mtip32xx: release the semaphore on an error path\n  dac960: Remove unused variables from DAC960_CreateProcEntries()\n"
    },
    {
      "commit": "4fd1ffaa122cf66bfb710ced43679413df4f3605",
      "tree": "27bf967e16c4dcc34877e6d33672fb635a7926a2",
      "parents": [
        "13828dec457270b48f433142fce0efd1e85f2c5d",
        "92b4ca291f8676c9f323166a65fb7447774b2a46"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 18 16:20:06 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 18 16:20:06 2012 +0200"
      },
      "message": "Merge branch \u0027for-jens\u0027 of git://git.drbd.org/linux-drbd into for-3.5/drivers\n\nPhilipp writes:\n\nThis are the updates we have in the drbd-8.3 tree. They are intended\nfor your \"for-3.5/drivers\" drivers branch.\n\nThese changes include one new feature:\n * Allow detach from frozen backing devices with the new --force option;\n   configurable timeout for backing devices by the new disk-timeout option\n\nAnd huge number of bug fixes:\n * Fixed a write ordering problem on SyncTarget nodes for a write\n   to a block that gets resynced at the same time. The bug can\n   only be triggered with a device that has a firmware that\n   actually reorders writes to the same block\n * Fixed a race between disconnect and receive_state, that could cause\n   a IO lockup\n * Fixed resend/resubmit for requests with disk or network timeout\n * Make sure that hard state changed do not disturb the connection\n   establishing process (I.e. detach due to an IO error). When the\n   bug was triggered it caused a retry in the connect process\n * Postpone soft state changes to no disturb the connection\n   establishing process (I.e. becoming primary). When the bug\n   was triggered it could cause both nodes going into SyncSource state\n * Fixed a refcount leak that could cause failures when trying to\n   unload a protocol family modules, that was used by DRBD\n * Dedicated page pool for meta data IOs\n * Deny normal detach (as opposed to --forced) if the user tries\n   to detach from the last UpToDate disk in the resource\n * Fixed a possible protocol error that could be caused by\n   \"unusual\" BIOs.\n * Enforce the disk-timeout option also on meta-data IO operations\n * Implemented stable bitmap pages when we do a full write out of\n   the bitmap\n * Fixed a rare compatibility issue with DRBD\u0027s older than 8.3.7\n   when negotiating the bio_size\n * Fixed a rare race condition where an empty resync could stall with\n   if pause/unpause events happen in parallel\n * Made the re-establishing of connections quicker, if it got a broken pipe\n   once. Previously there was a bug in the code caused it to waste the first\n   successful established connection after a broken pipe event.\n\nPS: I am postponing the drbd-8.4 for mainline for one or two kernel\n    development cycles more (the ~400 patchets set).\n"
    },
    {
      "commit": "13828dec457270b48f433142fce0efd1e85f2c5d",
      "tree": "9ab56f51a6e092e1d582df08747cbf927a4accd5",
      "parents": [
        "8206f664bfd7121e79f3b3fbf967953dbed78d7f",
        "8605067fb9b8e34aecf44ec258657c9cc009fc5a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 18 16:17:41 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 18 16:17:41 2012 +0200"
      },
      "message": "Merge branch \u0027stable/for-jens-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-3.5/drivers\n\nKonrad writes:\n\nPlease git pull the following branch:\n\n git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git stable/for-jens-3.5\n\nin your for-3.5/drivers branch. The changes in it are rather simple - cleaning\nup some code and adding proper mechanism to unload without leaking memory.\n"
    },
    {
      "commit": "bfa10b8c98bb335bc3e401d3ec947d446f04d1aa",
      "tree": "70c1ace62544811e7f4f39f8bab8b85ee9f89017",
      "parents": [
        "070ad7e793dc6ff753ee682ef7790b3373b471f6"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri May 18 13:50:28 2012 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri May 18 15:19:11 2012 +0200"
      },
      "message": "floppy: remove floppy-specific O_EXCL handling\n\nBlock layer now handles O_EXCL in a generic way for block devices.\n\nThe semantics is however different for floppy and all other block devices,\nas floppy driver contains its own O_EXCL handling.\n\nThe semantics for all-but-floppy bdevs is \"there can be at most one O_EXCL\nopen of this file\", while for floppy bdev the semantics is \"if someone has\nthe bdev open with O_EXCL, noone else can open it\".\n\nThere is actual userspace-observable change in behavior because of this\nsince commit e525fd89d380c (\"block: make blkdev_get/put() handle exclusive\naccess\") -- on kernels containing this commit, mount of /dev/fd0 causes\nthe fd0 block device be claimed with _EXCL, preventing subsequent\nopen(/dev/fd0).\n\nBring things back into shape, i.e.  make it possible, analogically to\nother block devices, to mount the floppy and open() it afterwards --\nremove the floppy-specific handling and let the generic bdev code O_EXCL\nhandling take over.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "070ad7e793dc6ff753ee682ef7790b3373b471f6",
      "tree": "2e11acf8dacf2b29bc4722c0cc614afd271eb59f",
      "parents": [
        "0b7877d4eea3f93e3dd941999522bbd8c538cb53"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri May 18 13:50:25 2012 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri May 18 15:19:10 2012 +0200"
      },
      "message": "floppy: convert to delayed work and single-thread wq\n\nThere are several races in floppy driver between bottom half\n(scheduled_work) and timers (fd_timeout, fd_timer). Due to slowness\nof the actual floppy devices, those races are never (at least to my\nknowledge) triggered on a bare floppy metal. However on virtualized\n(emulated) floppy drives, which are of course magnitudes faster\nthan the real ones, these races trigger reliably. They usually exhibit\nthemselves as NULL pointer dereferences during DMA setup, such as\n\n\tBUG: unable to handle kernel NULL pointer dereference at 0000000a\n\t[ ... snip ... ]\n\tEIP: 0060:[\u003cc02053d5\u003e] EFLAGS: 00010293 CPU: 0\n\tEAX: ffffe000 EBX: 0000000a ECX: 00000000 EDX: 0000000a\n\tESI: c05d2718 EDI: 00000000 EBP: 00000000 ESP: f540fe44\n\t DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n\tProcess swapper (pid: 0, ti\u003df540e000 task\u003dc082d5a0 task.ti\u003dc0826000)\n\tStack:\n\t ffffe000 00001ffc 00000000 00000000 00000000 c05d2718 c0708b40 f540fe80\n\t c020470f c05d2718 c0708b40 00000000 f540fe80 0000000a f540fee4 00000000\n\t c0708b40 f540fee4 00000000 00000000 c020526b 00000000 c05d2718 c0708b40\n\tCall Trace:\n\t [\u003cc020470f\u003e] dump_trace+0xaf/0x110\n\t [\u003cc020526b\u003e] show_trace_log_lvl+0x4b/0x60\n\t [\u003cc0205298\u003e] show_trace+0x18/0x20\n\t [\u003cc05c5811\u003e] dump_stack+0x6d/0x72\n\t [\u003cc0248527\u003e] warn_slowpath_common+0x77/0xb0\n\t [\u003cc02485f3\u003e] warn_slowpath_fmt+0x33/0x40\n\t [\u003cf7ec593c\u003e] setup_DMA+0x14c/0x210 [floppy]\n\t [\u003cf7ecaa95\u003e] setup_rw_floppy+0x105/0x190 [floppy]\n\t [\u003cc0256d08\u003e] run_timer_softirq+0x168/0x2a0\n\t [\u003cc024e762\u003e] __do_softirq+0xc2/0x1c0\n\t [\u003cc02042ed\u003e] do_softirq+0x7d/0xb0\n\t [\u003cf54d8a00\u003e] 0xf54d89ff\n\nbut other instances can be easily seen as well. This can be observed at least under\nVMWare, VirtualBox and KVM.\n\nThis patch converts all the timers and bottom halfs to be processed in a single\nworkqueue. This aproach has been already discussed back in 2010 if I remember\ncorrectly, and Acked by Linus [1], but it then never made it to the tree.\n\nThis all is based on original idea and code of Stephen Hemminger.  I have\nported original Stepen\u0027s code to the current state of the floppy driver, and\nperformed quite some testing (on real hardware), which didn\u0027t reveal any issues\n(this includes not only writing and reading data, but also formatting\n(unfortunately I didn\u0027t find any Double-Density disks any more)). Ability to\nhandle errors properly (supplying known bad floppies) has also been verified.\n\n[1] http://kerneltrap.org/mailarchive/linux-kernel/2010/6/11/4582092\n\nBased-on-patch-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "028940342a906db8da014a7603a0deddc2c323dd",
      "tree": "688dbc38a3e218f2493d311b1d70a67668837347",
      "parents": [
        "be3eed2e96340d3c7a4d1ea1d63e7bd6095d1e34",
        "0e93b4b304ae052ba1bc73f6d34a68556fe93429"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 22:17:37 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 22:17:37 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "263c6ca007a6693fb724a24c5a55716c49d33573",
      "tree": "5fce498f80244db3944b3a21bba207572afd2f93",
      "parents": [
        "3591538fb272d2432d112d47d7e0ddd0be4cded2"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Dec 05 10:43:42 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:13:09 2012 -0500"
      },
      "message": "rbd: rename __rbd_update_snaps to __rbd_refresh_header\n\nThis function rereads the entire header and handles any changes in\nit, not just changes in snapshots.\n\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "3591538fb272d2432d112d47d7e0ddd0be4cded2",
      "tree": "11b8dbe116875b4596b8415d0bd7b073f36858d6",
      "parents": [
        "b06e6a6be796bc365a19b0ac5176b553c13abf2f"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Dec 05 18:25:13 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:13:03 2012 -0500"
      },
      "message": "rbd: fix snapshot size type\n\nSnapshot sizes should be the same type as regular image sizes. This\nonly affects their displayed size in sysfs, not the reported size of\nan actual block device sizes.\n\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "b06e6a6be796bc365a19b0ac5176b553c13abf2f",
      "tree": "5a53dceb7eed8932d097ceeb2fcbe9665e7e3b48",
      "parents": [
        "77dfe99fe3cb0b2b0545e19e2d57b7a9134ee3c0"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Nov 21 18:16:52 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:12:58 2012 -0500"
      },
      "message": "rbd: remove conditional snapid parameters\n\nThe snapid parameters passed to rbd_do_op() and rbd_req_sync_op()\nare now always either a valid snapid or an explicit CEPH_NOSNAP.\n\n[elder@dreamhost.com: Rephrased the description]\n\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "77dfe99fe3cb0b2b0545e19e2d57b7a9134ee3c0",
      "tree": "ad80a6b7d9a9be1880c44e3a91f6d42f674c2fd6",
      "parents": [
        "403f24d3d51760a8b9368d595fa5f48c309f1a0f"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Nov 21 13:04:42 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:12:52 2012 -0500"
      },
      "message": "rbd: store snapshot id instead of index\n\nWhen a device was open at a snapshot, and snapshots were deleted or\nadded, data from the wrong snapshot could be read. Instead of\nassuming the snap context is constant, store the actual snap id when\nthe device is initialized, and rely on the OSDs to signal an error\nif we try reading from a snapshot that was deleted.\n\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "403f24d3d51760a8b9368d595fa5f48c309f1a0f",
      "tree": "672324db44b12186b91235f293b971bb00cf377d",
      "parents": [
        "50f7c4c967d0b5acd8e7ba6ab654dc4a7ac869ac"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Dec 05 10:47:13 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:12:46 2012 -0500"
      },
      "message": "rbd: protect read of snapshot sequence number\n\nThis is updated whenever a snapshot is added or deleted, and the\nsnapc pointer is changed with every refresh of the header.\n\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "50f7c4c967d0b5acd8e7ba6ab654dc4a7ac869ac",
      "tree": "a37aa5a2aad9e434bf6b77e0b65601b6e30589b2",
      "parents": [
        "f8ad495a8a0277b88c59bf38319e5e944aaf5a4a"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Fri Apr 20 15:49:44 2012 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:12:41 2012 -0500"
      },
      "message": "rbd: fix integer overflow in rbd_header_from_disk()\n\nondisk-\u003esnap_count is read from disk via rbd_req_sync_read() and thus\nneeds validation.  Otherwise, a bogus `snap_count\u0027 could overflow the\nkmalloc() size, leading to memory corruption.\n\nAlso use `u32\u0027 consistently for `snap_count\u0027.\n\n[elder@dreamhost.com: changed to use UINT_MAX rather than ULONG_MAX]\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "f8ad495a8a0277b88c59bf38319e5e944aaf5a4a",
      "tree": "af5cff21e0e0d9dd944abd1cf9f4da21d46e0f1c",
      "parents": [
        "76aa542fb90e3e91edb1146d10ca7cf2cae8e7e9"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Apr 20 15:49:44 2012 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon May 14 12:12:35 2012 -0500"
      },
      "message": "rbd: use gfp_flags parameter in rbd_header_from_disk()\n\nWe should use the gfp_flags that the caller specified instead of\nGFP_KERNEL here.\n\nThere is only one caller and it uses GFP_KERNEL, so this change is\njust a cleanup and doesn\u0027t change how the code works.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "8605067fb9b8e34aecf44ec258657c9cc009fc5a",
      "tree": "5c646866a1ef241674600764158c9eb340a5d543",
      "parents": [
        "e77c78c02290c27925f67cd35b497e99ee0d6fe1"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Apr 05 16:04:52 2012 +0100"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Fri May 11 16:11:54 2012 -0400"
      },
      "message": "xen-blkfront: module exit handling adjustments\n\nThe blkdev major must be released upon exit, or else the module can\u0027t\nattach to devices using the same majors upon being loaded again. Also\navoid leaking the minor tracking bitmap.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "e77c78c02290c27925f67cd35b497e99ee0d6fe1",
      "tree": "779e1f9d6e3a8abf5e14711043504b768cc1ef97",
      "parents": [
        "e816b57a337ea3b755de72bec38c10c864f23015"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Apr 05 16:37:22 2012 +0100"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Fri May 11 16:11:52 2012 -0400"
      },
      "message": "xen-blkfront: properly name all devices\n\n- devices beyond xvdzz didn\u0027t get proper names assigned at all\n- extended devices with minors not representable within the kernel\u0027s\n  major/minor bit split spilled into foreign majors\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "a09ba13eefb155a00d8d50008a0c0a2406985ddd",
      "tree": "1afe2bddb155f43ac9cfbad623aa6550cc4d4e84",
      "parents": [
        "d88a440eddf288c967daed827147e1121c2ab6b5"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Mon Apr 16 21:27:55 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 11 16:42:14 2012 +0200"
      },
      "message": "mtip32xx: release the semaphore on an error path\n\nRelease the semaphore in an error path in mtip_hw_get_scatterlist(). This\nfixes the smatch warning inconsistent returns.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d88a440eddf288c967daed827147e1121c2ab6b5",
      "tree": "7e3fbda80c793ff4b21abc1d01996abe5d87874e",
      "parents": [
        "d60b9c16d7bae49b75255520abd7dfd2e94627bc"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Apr 16 21:27:54 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 11 16:42:14 2012 +0200"
      },
      "message": "dac960: Remove unused variables from DAC960_CreateProcEntries()\n\nThe variables \u0027StatusProcEntry\u0027 and \u0027UserCommandProcEntry\u0027 are\nassigned to once and then never used. This patch gets rid of the\nvariables.\n\nWhile I was there I also fixed the indentation of the function to use\ntabs rather than spaces for the lines that did not already do so.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "38bf1953987c1735f3c9140fca762949a8cae507",
      "tree": "5596d88145226774633d3a2853b6d7caaeffa4f1",
      "parents": [
        "e0268868ba064980488fc8c194db3d8e9fb2959c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri May 04 11:34:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:21:39 2012 -0400"
      },
      "message": "connector/userns: replace netlink uses of cap_raised() with capable()\n\nIn 2009 Philip Reiser notied that a few users of netlink connector\ninterface needed a capability check and added the idiom\ncap_raised(nsp-\u003eeff_cap, CAP_SYS_ADMIN) to a few of them, on the premise\nthat netlink was asynchronous.\n\nIn 2011 Patrick McHardy noticed we were being silly because netlink is\nsynchronous and removed eff_cap from the netlink_skb_params and changed\nthe idiom to cap_raised(current_cap(), CAP_SYS_ADMIN).\n\nLooking at those spots with a fresh eye we should be calling\ncapable(CAP_SYS_ADMIN).  The only reason I can see for not calling capable\nis that it once appeared we were not in the same task as the caller which\nwould have made calling capable() impossible.\n\nIn the initial user_namespace the only difference between between\ncap_raised(current_cap(), CAP_SYS_ADMIN) and capable(CAP_SYS_ADMIN) are a\nfew sanity checks and the fact that capable(CAP_SYS_ADMIN) sets\nPF_SUPERPRIV if we use the capability.\n\nSince we are going to be using root privilege setting PF_SUPERPRIV seems\nthe right thing to do.\n\nThe motivation for this that patch is that in a child user namespace\ncap_raised(current_cap(),...) tests your capabilities with respect to that\nchild user namespace not capabilities in the initial user namespace and\nthus will allow processes that should be unprivielged to use the kernel\nservices that are only protected with cap_raised(current_cap(),..).\n\nTo fix possible user_namespace issues and to just clean up the code\nreplace cap_raised(current_cap(), CAP_SYS_ADMIN) with\ncapable(CAP_SYS_ADMIN).\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92b4ca291f8676c9f323166a65fb7447774b2a46",
      "tree": "3261aed9bd61b82cba7873830318bf488e3ca735",
      "parents": [
        "bc4854bc91c9a7f117437215cd8b16a0a5671d93"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Apr 30 12:53:52 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu May 10 12:00:56 2012 +0200"
      },
      "message": "drbd: grammar fix in log message\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bc4854bc91c9a7f117437215cd8b16a0a5671d93",
      "tree": "569927c0035f099665a4e76412cc090d96ba157b",
      "parents": [
        "f6d0a8dbfdce4b4f28fcb0f689c373874646f87c"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Apr 03 14:13:36 2012 +0800"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu May 10 12:00:54 2012 +0200"
      },
      "message": "drbd: check MODULE for THIS_MODULE\n\nTHIS_MODULE is NULL only when drbd is compiled as built-in,\nso the #ifdef CONFIG_MODULES should be #ifdef MODULE instead.\n\nThis fixes the warning:\n\ndrivers/block/drbd/drbd_main.c: In function ‘drbd_buildtag’:\ndrivers/block/drbd/drbd_main.c:4187:24: warning: the comparison will always evaluate as ‘true’ for the address of ‘__this_module’ will never be NULL [-Waddress]\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f6d0a8dbfdce4b4f28fcb0f689c373874646f87c",
      "tree": "3a648c130260021d4f8f214f7c228b2deff3a536",
      "parents": [
        "9476f39d66041ca8c66546671765b4047bffa895"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Apr 30 12:53:52 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 17:20:59 2012 +0200"
      },
      "message": "drbd: Restore the request restart logic\n\nIt got lost with the commit 5a7bbad27a410350e64a2d7f5ec18fc73836c14f\n\"block: remove support for bio remapping from -\u003emake_request\"\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "9476f39d66041ca8c66546671765b4047bffa895",
      "tree": "1416c0522fab3c228834cafbe1e1463e7900a0d0",
      "parents": [
        "3c2f7a856f2e70d2f1bb59f65d97a66047f14f36"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Feb 23 17:02:01 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:17:07 2012 +0200"
      },
      "message": "drbd: introduce a bio_set to allocate housekeeping bios from\n\nDon\u0027t rely on availability of bios from the global fs_bio_set,\nwe should use our own bio_set for meta data IO.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3c2f7a856f2e70d2f1bb59f65d97a66047f14f36",
      "tree": "9fc0c94ae3e837660440ba7ef01a0fadba40b754",
      "parents": [
        "0c7db27920a87a8db73ca521b527617eceec3bca"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Feb 23 17:18:24 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:17:06 2012 +0200"
      },
      "message": "drbd: remove unused define\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0c7db27920a87a8db73ca521b527617eceec3bca",
      "tree": "7a2f223427d43b25550df23fbf2049629237b4cc",
      "parents": [
        "4d95a10f97337415c1f74b4901d80e047f8dc128"
      ],
      "author": {
        "name": "Arne Redlich",
        "email": "arne.redlich@googlemail.com",
        "time": "Fri Mar 16 08:19:33 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:17:04 2012 +0200"
      },
      "message": "drbd: bm_page_async_io: properly initialize page-\u003eprivate\n\nIf bm_page_async_io is advised to use a new page for I/O\n(BM_AIO_COPY_PAGES is set), it will get it from a mempool.\nOnce the mempool has to dip into its reserves the page is\nnot reinitialized, i.e. page-\u003eprivate contains garbage, which\nwill lead to various problems once the I/O completes (dereferences\nof NULL pointers, the submitting thread getting stuck in D-state,\n ...).\n\nSigned-off-by: Arne Redlich \u003carne.redlich@googlemail.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "4d95a10f97337415c1f74b4901d80e047f8dc128",
      "tree": "7dda1f2d9e018b9cd5cd061409e6b1741da6a9ca",
      "parents": [
        "4281808fb3580c381a23cceb0a29ced92d570a5f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Feb 23 15:38:47 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:17:03 2012 +0200"
      },
      "message": "drbd: use the newly introduced page pool for bitmap IO\n\nConflicts:\n\n\tdrbd/drbd_bitmap.c\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4281808fb3580c381a23cceb0a29ced92d570a5f",
      "tree": "b561a60dc382305bba499ae0e12c6e0573a3df06",
      "parents": [
        "0e8488ade26b4b16a9745aa15ecb88c3fb1cb953"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Feb 23 12:39:46 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:17:02 2012 +0200"
      },
      "message": "drbd: add page pool to be used for meta data IO\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0e8488ade26b4b16a9745aa15ecb88c3fb1cb953",
      "tree": "368b5bf6ddf7a687303a6e01ce33460dbc096287",
      "parents": [
        "a574daf5d722f4ca8cc18509f30b804c4d519962"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Apr 25 23:06:45 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:17:00 2012 +0200"
      },
      "message": "drbd: allow bitmap to change during writeout from resync_finished\n\nSymptom: messages similar to\n \"FIXME asender in bm_change_bits_to,\n  bitmap locked for \u0027write from resync_finished\u0027 by worker\"\n\nIf a resync or verify is finished (or aborted), a full bitmap writeout\nis triggered.  If we have ongoing local IO, the bitmap may still change\nduring that writeout, pending and not yet processed acks may cause bits\nto be cleared, while new writes may cause bits to be to be set.\n\nTo fix this, introduce the drbd_bm_write_copy_pages() variant.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a574daf5d722f4ca8cc18509f30b804c4d519962",
      "tree": "83ae95ce9a57d605ce2a308ceb2a026e9f2ca9b2",
      "parents": [
        "ba280c092e6eca8a70c502e4510061535fdce382"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Apr 25 16:27:35 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:59 2012 +0200"
      },
      "message": "drbd: fix race between drbdadm invalidate/verify and finishing resync\n\nWhen a resync or online verify is finished or aborted,\ndrbd does a bulk write-out of changed bitmap pages.\n\nIf *in that very moment* a new verify or resync is triggered,\nthis can race:\n ASSERT( !test_bit(BITMAP_IO, \u0026mdev-\u003eflags) ) in drbd_main.c\n FIXME going to queue \u0027set_n_write from StartingSync\u0027 but \u0027write from resync_finished\u0027 still pending?\nand similar.\n\nThis can be observed with e.g. tight invalidate loops in test scripts,\nand probably has no real-life implication.\n\nStill, that race can be solved by first quiescen the device,\nbefore starting a new resync or verify.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ba280c092e6eca8a70c502e4510061535fdce382",
      "tree": "70bf9476e9667ec5afec09f5a2c8f4b9cc91e75c",
      "parents": [
        "5de738272e38f7051c7a44c42631b71a0e2a1e80"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Apr 25 11:46:14 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:58 2012 +0200"
      },
      "message": "drbd: fix resend/resubmit of frozen IO\n\nDRBD can freeze IO, due to fencing policy (fencing resource-and-stonith),\nor because we lost access to data (on-no-data-accessible suspend-io).\n\nResuming from there (re-connect, or re-attach, or explicit admin\nintervention) should \"just work\".\n\nUnfortunately, if the re-attach/re-connect did not happen within\nthe timeout, since the commit\n  drbd: Implemented real timeout checking for request processing time\nif so configured, the request_timer_fn() would timeout and\ndetach/disconnect virtually immediately.\n\nThis change tracks the most recent attach and connect, and does not\ntimeout within \u003cconfigured timeout interval\u003e after attach/connect.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5de738272e38f7051c7a44c42631b71a0e2a1e80",
      "tree": "8693bda089848c0fe3123b2ac1c46f9b89300d47",
      "parents": [
        "197296ffed71b7d5056d8618a07fec145b040303"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Mar 28 10:17:32 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:56 2012 +0200"
      },
      "message": "drbd: Ensure that data_size is not 0 before using data_size-1 as index\n\nThis could be exploited by a peer which runs modified code.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "197296ffed71b7d5056d8618a07fec145b040303",
      "tree": "7ee407b7f0536fb2cf7911ab0d7e48acce81cd4e",
      "parents": [
        "46385c84acd6654d3a38c9c7af1921dbded74aa2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Mar 26 16:47:11 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:55 2012 +0200"
      },
      "message": "drbd: Delay/reject other state changes while establishing a connection\n\nChanges to the role and disk state should be delayed or rejected\nwhile we establish a connection.\n\nThis is necessary, since the peer will base its resync decision\non the UUIDs and the state we sent in the drbd_connect() function.\n\nThe most prominent example for this race is becoming primary after\nsending state and UUIDs and before the state changes to C_WF_CONNECTION.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "46385c84acd6654d3a38c9c7af1921dbded74aa2",
      "tree": "352c84f1e31a15bd50d3993b71f20d93357372d4",
      "parents": [
        "d64957c9a9757642f59aa4a63dadf159b2694bab"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 16 15:04:33 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:51 2012 +0200"
      },
      "message": "drbd: move put_ldev from __req_mod() to the endio callback\n\nOne invocation in the endio handler is good enough,\nwe don\u0027t need mention it for each of the different ways\nit calls __req_mod().\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d64957c9a9757642f59aa4a63dadf159b2694bab",
      "tree": "a127150d74df0c9cb9ada387427db790fa489c5f",
      "parents": [
        "41c4a0035b36d400b79cbd945390a76e909711a7"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Mar 23 14:42:19 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:50 2012 +0200"
      },
      "message": "drbd: fix WRITE_ACKED_BY_PEER_AND_SIS to not set RQ_NET_DONE\n\nJust because this request happened during a resync does\nnot mean it may pretend to have been barrier-acked.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "41c4a0035b36d400b79cbd945390a76e909711a7",
      "tree": "ecfc9c36addad208e1416aef84d7ffe9ff1a737f",
      "parents": [
        "6d49e101fd3d3dbd525564923a82fb8a66676420"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Jan 11 09:46:48 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:48 2012 +0200"
      },
      "message": "drbd: fix READ_RETRY_REMOTE_CANCELED to not complete if device is suspended\n\nREAD_RETRY_REMOTE_CANCELED needs to be grouped with the other _CANCELED\ncases, not with CONNECTION_LOST_WHILE_PENDING, as that would complete\n(fail) the bio even if the device became suspended.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6d49e101fd3d3dbd525564923a82fb8a66676420",
      "tree": "4743983d507e7a1de469741d617ac7e38d0d10b5",
      "parents": [
        "c088b2d904445f501c5aa7a6fc63ca9e8b96f224"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Jan 11 09:43:25 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:47 2012 +0200"
      },
      "message": "drbd: make OOS_HANDED_TO_NETWORK its own case\n\nOOS_HANDED_TO_NETWORK should not be grouped with the various\n*_CANCELED/*_FAILED cases.\nAlso, not only clear the RQ_NET_QUEUED flag, but also mark it RQ_NET_DONE,\nso it can be distinguished from a local-only request even after that.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c088b2d904445f501c5aa7a6fc63ca9e8b96f224",
      "tree": "67624412d3c9afbf71163174983079f3dcec363b",
      "parents": [
        "7ffcaa7194e2c96a738b936d2ae71c7f0c697c0a"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Mar 23 13:57:13 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:46 2012 +0200"
      },
      "message": "drbd: don\u0027t pretend that barrier_nr \u003d\u003d 0 was special\n\nWe used to have a barrier implementation where barrier_nr 0 was\nreserved. That is long gone. Just use the full sequence space.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7ffcaa7194e2c96a738b936d2ae71c7f0c697c0a",
      "tree": "94119703e3f7b4923939c81a0018a3adaf0af3ec",
      "parents": [
        "a5d214f621d47ffb89d294838006d30869050297"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Mar 08 12:01:56 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:44 2012 +0200"
      },
      "message": "drbd: remove unused static helper function\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a5d214f621d47ffb89d294838006d30869050297",
      "tree": "896682566dc23caf8b7b9ac4ee29c3c25df096bf",
      "parents": [
        "1abc2af205590b0e9c0a450f67ecb0df7b0f0b5d"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Mar 08 11:49:40 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:43 2012 +0200"
      },
      "message": "drbd: remove some very outdated comments\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1abc2af205590b0e9c0a450f67ecb0df7b0f0b5d",
      "tree": "861a8bee49747e49446e1459617aea30295d039b",
      "parents": [
        "671a74e749af8ca28cae1bfc141f2b3f30b7ad65"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Mar 08 11:47:03 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:42 2012 +0200"
      },
      "message": "drbd: missing wakeup after drbd_rs_del_all\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "671a74e749af8ca28cae1bfc141f2b3f30b7ad65",
      "tree": "b93d74bead20b8ed828882418fef5f4bffd7ab25",
      "parents": [
        "001a88687aff26d62f8b61d55c6973618cf0f72f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Mar 08 11:45:57 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:40 2012 +0200"
      },
      "message": "drbd: remove now unused seq_num member from struct drbd_request\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "001a88687aff26d62f8b61d55c6973618cf0f72f",
      "tree": "2946d27abb7a055fe051e7f7f66646edd36b50f6",
      "parents": [
        "b6a370ba0786b5eb09c479bffeffe7baba484ab0"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Mar 08 16:43:45 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:39 2012 +0200"
      },
      "message": "drbd: fix potential data corruption and protocol error\n\nWe assumed only bios with bi_idx \u003d\u003d 0 would end up\nin drbd_make_request().\n\nThat is wrong.\n\nAt least device mapper, in __clone_and_map(), may submit\nclones only covering a partial bio, but sharing\nthe original bvec, by adjusting bi_idx and relevant\nother bio members of the clone.\n\nWe used __bio_for_each_segment() in various places,\neven though that is documented as\n * drivers should not use the __ version unless they _really_ want to\n * run through the entire bio and not just pending pieces\n\nImpact: we would send the full bio bvec, even for the clone\nwith bi_idx \u003e 0, which will cause data corruption on the\npeer (because we submit wrong data at the clone offset),\nand will cause a DRBD protocol error, disconnect/reconnect\nand resync (thus fixing the corruption),\nbecause the next package header would be expected right\nin the middle of the sent data, causing DRBD magic mismatch.\n\nFix: drop the assert, and use bio_for_each_segment()\ninstead of the __ version.\n\nConflicts:\n\n\tdrbd/drbd_tracing.c\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "b6a370ba0786b5eb09c479bffeffe7baba484ab0",
      "tree": "f9c77b675c02ade44902532d9f62ea4e484de5cb",
      "parents": [
        "fc28845bc005995b41ae8c83c7922d088f0ad228"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sun Feb 19 01:27:53 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:38 2012 +0200"
      },
      "message": "drbd: Fix a potential write ordering issue on SyncTarget nodes\n\nIf a SyncTarget node gets a P_RS_DATA_REPLY before a P_DATA packet\nfor the same sector, it simply submits these two IO requests.\n\n  This is be possible because on the SyncSource node, the data of the\n  P_RS_DATA_REPLY packet was read from disk.  Immediately after that a\n  write request from upper layers came in.\n\nThe disk scheduler or even the \"hardware\" queues on the disk drive might\nreorder these writes.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fc28845bc005995b41ae8c83c7922d088f0ad228",
      "tree": "cb5f28c4c0cfb06f46b9e1b0d7e7efcdfc132f90",
      "parents": [
        "031a7c173ffda664ac5551bd13c313e513dd87a7"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 16 12:14:01 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:34 2012 +0200"
      },
      "message": "drbd: Fix a potential race that could case data inconsistency\n\nWhen we have a write request and a state change C_WF_BITMAP_S -\u003e C_SYNC_SOURCE\nat the same time, and it happens that the line\n\n\tremote \u003d remote \u0026\u0026 drbd_should_do_remote(s);\n\nstills sees C_WF_BITMAP_S, and\n\n\tsend_oos \u003d rw \u003d\u003d WRITE \u0026\u0026 drbd_should_send_oos(s);\n\nalready sees C_SYNC_SOURCE both are 0.\n\nThis causes the write to not be mirrored, but marked as out-of-sync on the\nSync_Source node.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "031a7c173ffda664ac5551bd13c313e513dd87a7",
      "tree": "95a099e1d8478becc5a40828749adcd67ef7e24d",
      "parents": [
        "47a4f1c1bb684a7ed470aba71391d3bd8d77290c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Jan 21 16:50:25 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:33 2012 +0200"
      },
      "message": "drbd: add missing part_round_stats to _drbd_start_io_acct\n\nWithout this, iostat frequently sees bogus svctime and \u003e\u003d 100% \"utilization\".\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "47a4f1c1bb684a7ed470aba71391d3bd8d77290c",
      "tree": "0842d56c6b8015fcc52efa30e2e0674f3a52ab2c",
      "parents": [
        "7caacb69ac468ea713e8e8ba77be8040d8fe7bbe"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 12 23:01:26 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:32 2012 +0200"
      },
      "message": "drbd: Fix module refcount leak in drbd_accept()\n\ndrbd_accept was modelled after kernel_accept\nwith drbd commit 53eb779 in July 2008.\n\nOnly, kernel_accept was then broken, and only fixed later\nwith kernel commit 1b08534e in Dec 2008:\nnet: Fix module refcount leak in kernel_accept()\n\nImpact: protocol families provided as modules, e.g. ipv6 or ib_sdp,\nwould soon have their reference count become negative, preventing\nthem from being unloaded (likely), or worse, hit zero without actually\nbeing unused, allowing them to be unloaded while still in use (unlikely,\nbut if triggered, causing a kernel crash).\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7caacb69ac468ea713e8e8ba77be8040d8fe7bbe",
      "tree": "a2cfa89a0b77fe22160ca51767c37269c677b263",
      "parents": [
        "4afc433cf8066c112bd2bdd949d78ff8e8b4ba3f"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Dec 14 18:01:21 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:30 2012 +0200"
      },
      "message": "drbd: Consider the disk-timeout also for meta-data IO operations\n\nIf the backing device is already frozen during attach, we failed\nto recognize that. The current disk-timeout code works on top\nof the drbd_request objects. During attach we do not allow IO\nand therefore never generate a drbd_request object but block\nbefore that in drbd_make_request().\n\nThis patch adds the timeout to all drbd_md_sync_page_io().\n\nBefore this patch we used to go from D_ATTACHING directly\nto D_DISKLESS if IO failed during attach. We can no longer\ndo this since we have to stay in D_FAILED until all IO\nops issued to the backing device returned.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4afc433cf8066c112bd2bdd949d78ff8e8b4ba3f",
      "tree": "2919bdbaf204cb54b489988d1af2101f8d320af4",
      "parents": [
        "545752d5d8a2e01b4fcb23a61ec732b2b26cbe1a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Dec 13 10:31:32 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:29 2012 +0200"
      },
      "message": "drbd: Do not send state packets while lower than C_CONNECTED cstate\n\nI.e. in C_WF_REPORT_PARAMS or in C_WF_CONNECTION.\nSending may already work in these cstates, but the peer still expects\nthe HandShake / ConnectionFeatures packet.\n\nActually triggered by the Testuite on kugel.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "545752d5d8a2e01b4fcb23a61ec732b2b26cbe1a",
      "tree": "1614e4de9034bb2135becfebacc20eda30b64576",
      "parents": [
        "763eb63625a625e4d160cbb4cce2bcdb40141b97"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Dec 05 14:39:25 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:16:01 2012 +0200"
      },
      "message": "drbd: fix race between disconnect and receive_state\n\nIf the asender thread, or request_timer_fn(), or some other part of\nthe code, decided to drop the connection (because of timeout or other),\nbut the receiver just now was processing a P_STATE packet, there was a\nchance that receive_state() would do a hard state change\n\"re-establishing\" an already failed connection without additional handshake.\n\nLog excerpt:\n  Remote failed to finish a request within ko-count * timeout\n  peer( Secondary -\u003e Unknown ) conn( Connected -\u003e Timeout ) pdsk( UpToDate -\u003e DUnknown )\n  asender terminated\n  ...\n  peer( Unknown -\u003e Secondary ) conn( Timeout -\u003e Connected ) pdsk( DUnknown -\u003e UpToDate ) peer_isp( 0 -\u003e 1 )\n  ...\n  Connection closed\n  peer( Secondary -\u003e Unknown ) conn( Connected -\u003e Unconnected ) pdsk( UpToDate -\u003e DUnknown ) peer_isp( 1 -\u003e 0 )\n  receiver terminated\n\nImpact:\nwhile the connection state is erroneously \"Connected\",\nrequests may be queued and even sent,\nwhich would never be acknowledged,\nand may have been missed by the cleanup.\nThese requests would never be completed.\n\nThe next drbd_suspend_io() will then lock up,\nwaiting forever for these requests to complete.\n\nFixed in several code paths:\n  Make sure the connection state is NetworkFailure or worse\n  before starting the cleanup in drbd_disconnect().\n  This should make sure the cleanup won\u0027t miss any requests.\n\n  Disallow receive_state() to \"upgrade\" the connection state\n  from an error state. This will make sure the \"illegal\" state\n  transition won\u0027t happen.\n\n  For all connection failure states,\n  relax the safe-guard in sanitize_state() again\n  to silently mask out those state changes\n  (e.g. Timeout -\u003e Connected becomes Timeout -\u003e Timeout).\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "763eb63625a625e4d160cbb4cce2bcdb40141b97",
      "tree": "7399533f422da35884c7a67b9972b23757890256",
      "parents": [
        "e89868a0927cfb8a3f535c938e5d6dd7edc6353c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 02 16:29:45 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:58 2012 +0200"
      },
      "message": "drbd: fix potential spinlock deadlock\n\ndrbd_try_clear_on_disk_bm() has a sanity check for the number of blocks\nleft to be resynced (rs_left) in the current resync extent.\nIf it detects a mismatch, it complains, and forces a disconnect using\ndrbd_force_state(mdev, NS(conn, C_DISCONNECTING));\n\nUnfortunately, this may be called while holding the req_lock,\nand drbd_force_state() want\u0027s to aquire that lock itself. Deadlock.\n\nDon\u0027t force a disconnect, but fix up rs_left by recounting and\nreassigning the number of dirty blocks in that extent.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e89868a0927cfb8a3f535c938e5d6dd7edc6353c",
      "tree": "e1f9fcad718008ca1591ba87eac7b2d5d87f9cd0",
      "parents": [
        "f479ea06613514814449f28cba6488e31698e406"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Nov 09 21:04:03 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:57 2012 +0200"
      },
      "message": "drbd: Fixed an obvious copy-n-paste mistake\n\nThis bug might have caused troubles if disk-barriers and the ahead-behind\nmore are enabled at the same time.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f479ea06613514814449f28cba6488e31698e406",
      "tree": "b7baebab348fe1deaa6454623564359797afe09b",
      "parents": [
        "a2e9138197405a4c051630416ceebf98158e631d"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 27 16:52:30 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:56 2012 +0200"
      },
      "message": "drbd: send intermediate state change results to the peer\n\nDRBD state changes schedule after_state_ch() actions to a worker thread,\nwhich decides on the old and new states of that change, whether to send\nan informational state update packet (P_STATE) to the peer.\nIf it decides to drbd_send_state(), it would however always send the\n_curent_ state, which, if a second state change happens before the\nafter_state_ch() of the first ran, may \"fast-forward\" the peer\u0027s view\nabout this node.  In most cases that is harmless, but sometimes this can\nconfuse DRBD, for example into not actually starting a necessary resync\nif you do a very tight detach/attach loop on a Connected Secondary.\n\nFix this by always sending the \"new\" state of the respective state\ntransition which scheduled this after_state_ch() work.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a2e9138197405a4c051630416ceebf98158e631d",
      "tree": "260a4976065d1efc85bc73d1a7c7be8c2416bb7a",
      "parents": [
        "aaae506d545bb9d06f4d8362f670f406f12e4b58"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 06 17:30:26 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:54 2012 +0200"
      },
      "message": "drbd: fix spurious meta data IO \"error\"\n\nWhen detaching, even cleanly detaching due to administrator request,\nwe always go through D_FAILED before we become D_DISKLESS.\n\nDon\u0027t let that state change race with an in-flight meta data IO,\nor that one might think it actually experienced an IO error.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "aaae506d545bb9d06f4d8362f670f406f12e4b58",
      "tree": "4fb88894b2ce6e03ea44d188752170ef7b719260",
      "parents": [
        "6a9a92f4ef05bb3e94bbfe123c21482fa5da9866"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 06 18:29:14 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:53 2012 +0200"
      },
      "message": "drbd: Fixed a race condition between detach and start of resync\n\ndrbd_state_lock() is only there to serialize cluster wide state\nchanges. Testing the local disk state needs to happen while\nholding the global_state_lock.\n\nOtherwise you might see something like this (Oct 6 on kugel)\n14:20:24 drbd0: conn( WFSyncUUID -\u003e Connected ) disk( Inconsistent -\u003e Failed )\n14:20:24 drbd0: helper command: /sbin/drbdadm before-resync-target minor-0 exit code 0 (0x0)\n14:20:24 drbd0: conn( Connected -\u003e SyncTarget ) disk( Failed -\u003e Inconsistent )\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6a9a92f4ef05bb3e94bbfe123c21482fa5da9866",
      "tree": "f7eb75744c834b287d1656b6763cb5bb7a1402ef",
      "parents": [
        "5ba3dac52126699e541ac3ee37aad890ca835fc1"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 06 17:10:34 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:52 2012 +0200"
      },
      "message": "drbd: fix harmless race to not trigger an ASSERT\n\nWe have one pre-allocated page to do certain synchronous meta data IO with,\nusing it is serialized like so:\n\tdrbd_md_get_buffer();\n\tdrbd_md_sync_page_io();\n\tdrbd_md_sync_page_io();\n\t...\n\tdrbd_md_put_buffer();\n\nIn drbd_md_sync_page_io() there is an\n\tASSERT(atomic_read(\u0026mdev-\u003emd_io_in_use) \u003d\u003d 1);\n\nWe want to be able to timeout on unresponsive lower level devices, so we\ncan \"detach\" in that case. Inside drbd_md_sync_page_io() we grab an extra\nreference, to not have a dangling pointer in case a delayed IO eventually\ndoes still complete, even after we \"detached\" already.\n\nWe need to put the extra reference before we signal completion from the\ncompletion handler, or the second drbd_md_sync_page_io() above may\ntrigger the assert (reference count still 2).\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5ba3dac52126699e541ac3ee37aad890ca835fc1",
      "tree": "9edec116f6f75919043f4c0663d1f88709ae5de0",
      "parents": [
        "7b4e4d31268cbd885782bf3eee8027c852c9d191"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Oct 05 15:54:18 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:50 2012 +0200"
      },
      "message": "drbd: Derive sync-UUIDs only from the bitmap-uuid if it is non-zero\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7b4e4d31268cbd885782bf3eee8027c852c9d191",
      "tree": "cd6d3dbaa71d9d6b408b4a2f9e7c386f6990ff8b",
      "parents": [
        "40424e4a24bc500639cb4bf1bf846362b0e692a5"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@kernel.org",
        "time": "Wed Sep 28 22:15:04 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:49 2012 +0200"
      },
      "message": "drbd: drbd_nl_resize(): Fix missing put_ldev() on error path\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "40424e4a24bc500639cb4bf1bf846362b0e692a5",
      "tree": "3747089f12567b97417121f01a7a0da19852da39",
      "parents": [
        "1e86ac48af137a3cfd48cba727e7abe132dfc8de"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Sep 26 15:24:56 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:47 2012 +0200"
      },
      "message": "drbd: fix \"stalled\" empty resync\n\nWith sync-after dependencies, given \"lucky\" timing of pause/unpause\nevents, and the end of an empty (0 bits set) resync was sometimes not\ndetected on the SyncTarget, leading to a \"stalled\" SyncSource state.\n\nFixed this by expecting not only \"Inconsistent -\u003e UpToDate\" but also\n\"Consistent -\u003e UpToDate\" transitions for the peer disk state\nto end a resync.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1e86ac48af137a3cfd48cba727e7abe132dfc8de",
      "tree": "0ba3f9c72f8a7fb2972b8df5ac11d352db48f97a",
      "parents": [
        "80f9fd55a66a6843373330901564ef2d9c7fb050"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Aug 04 10:33:08 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:46 2012 +0200"
      },
      "message": "drbd: Bugfix for the connection behavior\n\nIf we get into the C_BROKEN_PIPE cstate once, the state engine set the\nthi-\u003et_state of the receiver thread to restarting.  But with the while loop\nin drbdd_init() a new connection gets established. After the call into\ndrbdd() returns immediately since the thi-\u003et_state is not RUNNING.  The\nrestart of drbd_init() then resets thi-\u003et_state to RUNNING.\n\nI.e. after entering C_BROKEN_PIPE once, the next successful established\nconnection gets wasted.\n\nThe two parts of the fix:\n  * Do not cause the thread to restart if we detect the issue\n    with the sockets while we are in C_WF_CONNECTION.\n\n  * Make sure that all actions that would have set us to C_BROKEN_PIPE\n    happen before the state change to C_WF_REPORT_PARAMS.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "80f9fd55a66a6843373330901564ef2d9c7fb050",
      "tree": "303760a80bbcd543af1cd68c23816f549c6c9a06",
      "parents": [
        "fd2491f4a4a403b376f71a336a36848158efb0fe"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jul 18 15:45:15 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:44 2012 +0200"
      },
      "message": "drbd: Cleanup all epoch objects upon connection loss\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fd2491f4a4a403b376f71a336a36848158efb0fe",
      "tree": "7571481867dd5ab427541a377a885f3152994fa1",
      "parents": [
        "79f16f5dbc95da372c25afddac80f4adef3cfce1"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jul 18 16:25:15 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:43 2012 +0200"
      },
      "message": "drbd: detach must not try to abort non-local requests from drbd-8.4\n\nCherry picked form 8.4\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "79f16f5dbc95da372c25afddac80f4adef3cfce1",
      "tree": "90deb417250c3dc27997219e5bd64f396573f590",
      "parents": [
        "bca482e90bf87569ffb87cba2c3a777ac23e5c86"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jul 15 18:44:26 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:15:42 2012 +0200"
      },
      "message": "drbd: Consider that the no-data-condition could be in connected state\n\n...when the peer has inconsistent data. In that case we failed to\nclear the susp_nod flag. When the local disk was attached again\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bca482e90bf87569ffb87cba2c3a777ac23e5c86",
      "tree": "1361d848be0bd4374c90e76323325dc97de72bc3",
      "parents": [
        "22f46ce2ef94151f806f84ab0f9ee43a72dfb1f1"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jul 15 12:14:27 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:10:50 2012 +0200"
      },
      "message": "drbd: Fixed current UUID generation\n\nNow, the new edition of the clause only fires if a diskless\npeer gets promoted.\n\nThis is a fixup for \"drbd: Delayed creation of current-UUID\".\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "22f46ce2ef94151f806f84ab0f9ee43a72dfb1f1",
      "tree": "f6d9d6fb9ab824187fbfa48086bee24f42867935",
      "parents": [
        "dfa8bedbfe881caf6676704ab1aae18dfe8e430a"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jul 11 17:32:26 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:10:47 2012 +0200"
      },
      "message": "drbd: change some GFP_KERNEL to GFP_NOIO\n\nBitmap IO may happend in the context of an application write,\nin the generic block IO path.  We need to use GFP_NOIO.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "dfa8bedbfe881caf6676704ab1aae18dfe8e430a",
      "tree": "416102d8cd59c6be45b072c2ce123c6cb8f63f52",
      "parents": [
        "02ee8f95fadf7c94b3d28df436a095152f6392b2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jun 29 14:06:08 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:10:45 2012 +0200"
      },
      "message": "drbd: Implemented the disk-timeout option\n\nWhen the disk-timeout is active, and it expires for a single request,\nwe consider the local disk as D_FAILED. Note: With this change,\nI made both timeout based state transitions HARD state transitions.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "02ee8f95fadf7c94b3d28df436a095152f6392b2",
      "tree": "14ae2da3dc302a7f061023d9ed0eab3c790ae458",
      "parents": [
        "5ca1de0384dafe843de10fed843de26de740bca1"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Mar 14 11:54:47 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:10:38 2012 +0200"
      },
      "message": "drbd: Force flag for the detach operation\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5ca1de0384dafe843de10fed843de26de740bca1",
      "tree": "64998e65c2f3c051c7c64907d718c4eb791eeddb",
      "parents": [
        "9e58c4dad70bfba86f016bcc98fa19f468d0b777"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jun 28 17:01:19 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:10:34 2012 +0200"
      },
      "message": "drbd: Allow new IOs while the local disk in in FAILED state\n\nThe last bunch of commits prepared the \u0027detach from tar pit\u0027 feature.\nWith that we can be for long time in disk state FAILED. We need\nto accept new IO requests during that time.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "9e58c4dad70bfba86f016bcc98fa19f468d0b777",
      "tree": "c67117886829bfe77699498940c434a560fc4b64",
      "parents": [
        "d1f3779bbeae70b9552c9ac70d6ec8c4d3545615"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jun 27 15:29:16 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 15:10:33 2012 +0200"
      },
      "message": "drbd: Bitmap IO functions can now return prematurely if the disk breaks\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d1f3779bbeae70b9552c9ac70d6ec8c4d3545615",
      "tree": "306089519ac84f24e0674de930931e21f3859d6a",
      "parents": [
        "b2057629ea96c33e4ae38102ecd0f27ed9a3c3ef"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jun 27 14:56:52 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:37:19 2012 +0200"
      },
      "message": "drbd: Added a kref to bm_aio_ctx\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "b2057629ea96c33e4ae38102ecd0f27ed9a3c3ef",
      "tree": "6b7723e1aab29c4e83377168cf26482447d788eb",
      "parents": [
        "4a2fe568b5428abc56d7d172e3571e33d8ab7265"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jun 27 12:23:33 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:31:11 2012 +0200"
      },
      "message": "drbd: Hold a reference to ldev while doing meta-data IO\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4a2fe568b5428abc56d7d172e3571e33d8ab7265",
      "tree": "e5e83c91e470b55fc0891db355a1133e8b40cf2b",
      "parents": [
        "0c464425158482647226fb30708c68fffc061585"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jul 04 11:14:31 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:28:51 2012 +0200"
      },
      "message": "drbd: Keep a reference to the bio until the completion handler finished\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0c464425158482647226fb30708c68fffc061585",
      "tree": "8928c71c627290637da06ae9308ba95eef87189f",
      "parents": [
        "e17117310b73ce6d2340ad46a539d3896a2d6de8"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sun Jun 26 22:26:31 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:26:51 2012 +0200"
      },
      "message": "drbd: Implemented wait_until_done_or_disk_failure()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e17117310b73ce6d2340ad46a539d3896a2d6de8",
      "tree": "66fed6cc939a402f70a51fdebb3b27f1f629b0ea",
      "parents": [
        "cc94c65015022e7329e80e057e20848581d3f2a5"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jun 27 11:51:46 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:22:31 2012 +0200"
      },
      "message": "drbd: Replaced md_io_mutex by an atomic: md_io_in_use\n\nThe new function drbd_md_get_buffer() aborts waiting for the buffer\nin case the disk failes in the meantime.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cc94c65015022e7329e80e057e20848581d3f2a5",
      "tree": "fafbda3f94b0658a46f0d8254076d865e9538d32",
      "parents": [
        "2b4dd36fbae7203a0d503a6cede1f4ce17aa72ac"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sun Jun 26 11:20:27 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:17:24 2012 +0200"
      },
      "message": "drbd: moved md_io into mdev\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2b4dd36fbae7203a0d503a6cede1f4ce17aa72ac",
      "tree": "09ad826a0203980e3ae54c1917a3a6badf51b773",
      "parents": [
        "6d7e32f56806ad58006720ed98a433b2047444da"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Mar 14 13:01:50 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:16:04 2012 +0200"
      },
      "message": "drbd: Immediately allow completion of IOs, that wait for IO completions on a failed disk\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6d7e32f56806ad58006720ed98a433b2047444da",
      "tree": "3b4231bb929e0381ab69ede1204d622b08fea176",
      "parents": [
        "6809384c7152c34e74e29a4033826a300eb94f11"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Mar 15 10:25:18 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:15:28 2012 +0200"
      },
      "message": "drbd: Keep a reference to barrier acked requests\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6809384c7152c34e74e29a4033826a300eb94f11",
      "tree": "814cd296ad8e8ca958d5ebc1571eec581c6062de",
      "parents": [
        "77e8fdfc188f0490754f703f80d2853c69052c12"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 15:43:06 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:08:57 2012 +0200"
      },
      "message": "drbd: Improve compatibility with drbd\u0027s older than 8.3.7\n\nRegression introduced with 8.3.11 commit:\ndrbd: Take a more conservative approach when deciding max_bio_size\n\nNever ever tell an older drbd, that we support more than 32KiB\nin a single data request (packet).\nNever believe an older drbd, that is supports more than 32KiB\nin a single data request (packet)\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "77e8fdfc188f0490754f703f80d2853c69052c12",
      "tree": "a56b084ec28ab6d376b0da3bcd4684f29f00cacd",
      "parents": [
        "07667347c89e5d971243a411ca4ed83ad14f9f9e"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jun 29 10:49:13 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:08:22 2012 +0200"
      },
      "message": "drbd: Only print sanitize state\u0027s warnings, if the state change happens\n\nThe reason for this change is that, with when doing\n\u0027drbdadm invalidate\u0027 on a disconnected resource caused\nan \"implicitly set pdsk from UpToDate to DUnknown\" message,\nwhich was missleading.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "07667347c89e5d971243a411ca4ed83ad14f9f9e",
      "tree": "cbe20ef72d0a0f225da0936c61389d92b5859bf6",
      "parents": [
        "071cf1c9a7043660be08358e4b508f62120f224b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jun 21 01:13:37 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:05:25 2012 +0200"
      },
      "message": "drbd: downgraded error printk to info\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5f138ce01ae6430db2e2cebd0a945dff75581d62",
      "tree": "4790fc682c7366b4f3fb72f28af2238052ee9309",
      "parents": [
        "7948bcdc38b9af9ef3e72199cdea1d775a9537fc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jun 15 00:59:04 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:03:19 2012 +0200"
      },
      "message": "DRBD: Fix comparison always false warning due to long/long long compare\n\nFix warnings of the following nature in the drbd header:\n\nIn file included from drivers/block/drbd/drbd_bitmap.c:32:\ndrivers/block/drbd/drbd_int.h: In function \u0027drbd_get_syncer_progress\u0027:\ndrivers/block/drbd/drbd_int.h:2234: warning: comparison is always false due to limited range of data\n\nwhere mdev-\u003ers_total (an unsigned long) is being compared to 1ULL \u003c\u003c 32, which\nis always false on a 32-bit machine.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "7948bcdc38b9af9ef3e72199cdea1d775a9537fc",
      "tree": "24672b4ed3f4c1bdd36f9c2f715ad59eafd7b59c",
      "parents": [
        "1381e9a4969d8d24ce7b4bab048f3cb3fc9c1283"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jun 06 15:36:04 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:02:22 2012 +0200"
      },
      "message": "drbd: spelling fix: too small\n\nIt is not \"to small\", but \"too small\".\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1381e9a4969d8d24ce7b4bab048f3cb3fc9c1283",
      "tree": "bb4dc384be382a482cb96579906da8905123fb3a",
      "parents": [
        "ebd2b0cde5a4c02e2999fc3dc4a59fdd8a040fb6"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jun 03 21:13:17 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 10:01:39 2012 +0200"
      },
      "message": "drbd: cosmetic: fix accidental division instead of modulo when pretty printing\n\nFor large resync rates, seq_printf_with_thousands_grouping()\naccidentally only produced Y,000,00Y, instead of the real numbers.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ebd2b0cde5a4c02e2999fc3dc4a59fdd8a040fb6",
      "tree": "aae9f3ff793afde1c5a2b9e72488f8d4b15bd4a8",
      "parents": [
        "0b7877d4eea3f93e3dd941999522bbd8c538cb53"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 25 11:03:04 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 09 09:59:29 2012 +0200"
      },
      "message": "drbd: Lower log priority for an event that is definitely not an error\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3469ac1aa3a2f1e2586a412923c414779a0af854",
      "tree": "b271456518130622e6d394cf50939c132f1a1d0d",
      "parents": [
        "cd9d9f5df6098c50726200d4185e9e8da32785b3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon May 07 15:33:36 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon May 07 15:33:36 2012 -0700"
      },
      "message": "ceph: drop support for preferred_osd pgs\n\nThis was an ill-conceived feature that has been removed from Ceph.  Do\nthis gracefully:\n\n - reject attempts to specify a preferred_osd via the ioctl\n - stop exposing this information via virtual xattrs\n - always fill in -1 for requests, in case we talk to an older server\n - don\u0027t calculate preferred_osd placements/pgids\n\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "f24001941c99776f41bd3f09c07d91205c2ad9d4",
      "tree": "0ab31480ccdf343b61db045e195d096068ef7c73",
      "parents": [
        "a108d5f35adc5c5d5cdc882dc0bb920565551bff",
        "4d634ca35a8b38530b134ae92bc9e3cc9c23c030"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:14:36 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:15:17 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nFix merge between commit 3adadc08cc1e (\"net ax25: Reorder ax25_exit to\nremove races\") and commit 0ca7a4c87d27 (\"net ax25: Simplify and\ncleanup the ax25 sysctl handling\")\n\nThe former moved around the sysctl register/unregister calls, the\nlater simply removed them.\n\nWith help from Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "4a17fd5229c1b6066aa478f6b690f8293ce811a1"
}
