)]}'
{
  "log": [
    {
      "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": "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": "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": "4a17fd5229c1b6066aa478f6b690f8293ce811a1",
      "tree": "f6acd00935d2d7a990befb4c77f57fdf39f46689",
      "parents": [
        "59c55bdde856c4000bbeb33ba212c3df6f1997a4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:39:36 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "sock: Introduce named constants for sk_reuse\n\nName them in a \"backward compatible\" manner, i.e. reuse or not\nare still 1 and 0 respectively. The reuse value of 2 means that\nthe socket with it will forcibly reuse everyone else\u0027s port.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70834d3070c3f3015ab5c05176d54bd4a0100546",
      "tree": "4dbcea84c4584de05f83aa911164902b3f00265f",
      "parents": [
        "a02d6fd643cbd4c559113b35b31d3b04e4ec60c7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "usermodehelper: use UMH_WAIT_PROC consistently\n\nA few call_usermodehelper() callers use the hardcoded constant instead of\nthe proper UMH_WAIT_PROC, fix them.\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "589973a7042f5a91a5b8bf78a32c97ae073e2c72",
      "tree": "1cc3f936ac3eca68dddb054bd1b75dc1a2b77a85",
      "parents": [
        "97d5dd121c3304c65326f1ce9f04f7d0161827bc"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:51:58 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:29 2012 +0800"
      },
      "message": "drbd: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "cfd8005c99c68882e962807d36603791adddfb9f",
      "tree": "49ddae09cf9067a3729bbc58ab65c117cbca93ce",
      "parents": [
        "496cda8e75d90301cb1e6bbebea643c6bac1e6d6"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:18 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:16 2012 +0800"
      },
      "message": "block: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "90ab5ee94171b3e28de6bb42ee30b527014e0be7",
      "tree": "fcf89889f6e881f2b231d3d20287c08174ce4b54",
      "parents": [
        "476bc0015bf09dad39d36a8b19f76f0c181d1ec9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "message": "module_param: make bool parameters really bool (drivers \u0026 misc)\n\nmodule_param(bool) used to counter-intuitively take an int.  In\nfddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy\ntrick.\n\nIt\u0027s time to remove the int/unsigned int option.  For this version\nit\u0027ll simply give a warning, but it\u0027ll break next kernel version.\n\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b4fdcb02f1e39c27058a885905bd0277370ba441",
      "tree": "fd4cfd1994f21f44afe5e7904681fb5ac09f81b8",
      "parents": [
        "044595d4e448305fbaec472eb7d22636d24e7d8c",
        "6dd9ad7df2019b1e33a372a501907db293ebcd0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block: (29 commits)\n  block: don\u0027t call blk_drain_queue() if elevator is not up\n  blk-throttle: use queue_is_locked() instead of lockdep_is_held()\n  blk-throttle: Take blkcg-\u003elock while traversing blkcg-\u003epolicy_list\n  blk-throttle: Free up policy node associated with deleted rule\n  block: warn if tag is greater than real_max_depth.\n  block: make gendisk hold a reference to its queue\n  blk-flush: move the queue kick into\n  blk-flush: fix invalid BUG_ON in blk_insert_flush\n  block: Remove the control of complete cpu from bio.\n  block: fix a typo in the blk-cgroup.h file\n  block: initialize the bounce pool if high memory may be added later\n  block: fix request_queue lifetime handling by making blk_queue_cleanup() properly shutdown\n  block: drop @tsk from attempt_plug_merge() and explain sync rules\n  block: make get_request[_wait]() fail if queue is dead\n  block: reorganize throtl_get_tg() and blk_throtl_bio()\n  block: reorganize queue draining\n  block: drop unnecessary blk_get/put_queue() in scsi_cmd_ioctl() and blk_get_tg()\n  block: pass around REQ_* flags instead of broken down booleans during request alloc/free\n  block: move blk_throtl prototypes to block/blk.h\n  block: fix genhd refcounting in blkio_policy_parse_and_set()\n  ...\n\nFix up trivial conflicts due to \"mddev_t\" -\u003e \"struct mddev\" conversion\nand making the request functions be of type \"void\" instead of \"int\" in\n - drivers/md/{faulty.c,linear.c,md.c,md.h,multipath.c,raid0.c,raid1.c,raid10.c,raid5.c}\n - drivers/staging/zram/zram_drv.c\n"
    },
    {
      "commit": "5c04b426f2e8b46cfc7969a35b2631063a3c646c",
      "tree": "2d27d9f5d2fe5d5e8fbc01a467ec58bcb50235c1",
      "parents": [
        "499337bb6511e665a236a6a947f819d98ea340c6",
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:30:42 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:30:42 2011 +0200"
      },
      "message": "Merge branch \u0027v3.1-rc10\u0027 into for-3.2/core\n\nConflicts:\n\tblock/blk-core.c\n\tinclude/linux/blkdev.h\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e060c38434b2caa78efe7cedaff4191040b65a15",
      "tree": "407361230bf6733f63d8e788e4b5e6566ee04818",
      "parents": [
        "10e4ac572eeffe5317019bd7330b6058a400dfc2",
        "cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:05 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:18 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forward merge with Linus to be able to merge patches\nbased on more recent version of the tree.\n"
    },
    {
      "commit": "e5de063016ce838aff08683ce38ac40211c247d9",
      "tree": "1b4cd4e201ba784bcefcd06c0b42207b64a05f69",
      "parents": [
        "e0ffaa8cba275c48531f1a005f8ff8973fbebea9"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Aug 01 23:16:06 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 14:57:06 2011 +0200"
      },
      "message": "Remove unneeded version.h includes from drivers/block/\n\nIt was pointed out by \u0027make versioncheck\u0027 that some includes of\nlinux/version.h are not needed in drivers/block/.\nThis patch removes them.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "1d273b929cad7b1ee95d5c15ac806b3abc764278",
      "tree": "53e1b3103a9d3c486211d63af428f5debb90f6c7",
      "parents": [
        "3dbd4439837f2cfd2ff302897353f4b1b6263b2a"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Jun 03 02:28:46 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 14:02:57 2011 +0200"
      },
      "message": "drbd: Use angle brackets for system includes\n\nUse the normal include style.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "57f3224c3f838844cdae5e4a9d63e03152013f9a",
      "tree": "58b0195a271b810144f375f32f76755c1d44b6cb",
      "parents": [
        "3a816054fcd345d0fe47c666c375d372c6170371"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat May 28 10:36:24 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 13:55:02 2011 +0200"
      },
      "message": "drbd: Convert vmalloc/memset to vzalloc\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "5a7bbad27a410350e64a2d7f5ec18fc73836c14f",
      "tree": "3447cd62dbcbd77b4071e2eb7576f1d7632ef2d3",
      "parents": [
        "c20e8de27fef9f59869c81c288ad6cf28200e00c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 12 12:12:01 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 12 12:12:01 2011 +0200"
      },
      "message": "block: remove support for bio remapping from -\u003emake_request\n\nThere is very little benefit in allowing to let a -\u003emake_request\ninstance update the bios device and sector and loop around it in\n__generic_make_request when we can archive the same through calling\ngeneric_make_request from the driver and letting the loop in\ngeneric_make_request handle it.\n\nNote that various drivers got the return value from -\u003emake_request and\nreturned non-zero values for errors.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ddad9ef5826efdfbbdb67b13b46f30e43e46ec3e",
      "tree": "e61bae18a470e75fc46b23b9923e224aba93868d",
      "parents": [
        "e2a5429ff7947ad251310376384f449297b7492a"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Aug 02 12:43:49 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Aug 02 12:43:49 2011 +0200"
      },
      "message": "drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse\n\nThe buffer \u0027sc.cpu_mask\u0027 is a kernel buffer.  If bitmap_parse is used\ninstead of __bitmap_parse the extra parameter that indicates a kernel\nbuffer is not needed.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b28afe01ab6ffb5f152f47831b44933facd2328",
      "tree": "a537d78f49fa1b959c9a453f459c1acd767a939f",
      "parents": [
        "726e99ab88db059fe1422e15376ae404f8c66eb4",
        "86e1e98e5c6b4edab97e2b058466ef553cfd878e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 30 10:10:50 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 30 10:10:50 2011 +0200"
      },
      "message": "Merge branch \u0027for-3.0-important\u0027 of git://git.drbd.org/linux-2.6-drbd into for-linus\n"
    },
    {
      "commit": "86e1e98e5c6b4edab97e2b058466ef553cfd878e",
      "tree": "e8b26c03a90edaf5214a094d3dcb1b223041b862",
      "parents": [
        "15b493d11fcce3c5547e3d7fb6d90e11ffe12777"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jun 28 13:22:48 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:46 2011 +0200"
      },
      "message": "drbd: we should write meta data updates with FLUSH FUA\n\nWe used to write these with BIO_RW_BARRIER aka REQ_HARDBARRIER (unless\ndisabled in the configuration). The correct semantic now would be to\nwrite with FLUSH/FUA.\nFor example, with activity log transactions, FUA alone is not enough, we\nneed the corresponding bitmap update (and all related application\nupdates) on stable storage as well.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cb6518cbef5e3e36b7ae90fcab610a52ea7e9fc0",
      "tree": "1eb6576ba34d7a731eeea5dab58c96905a142be2",
      "parents": [
        "5a8b424276f7ba50c51e7caf485b2be23739e5b8"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jun 20 14:44:45 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:44 2011 +0200"
      },
      "message": "drbd: when receive times out on meta socket, also check last receive time on data socket\n\nIf we have an asymetrically congested network, we may send P_PING,\nbut due to congestion, the corresponding P_PING_ACK would time out,\nand we would drop a (congested, but otherwise) healthy connection\n(\"PingAck did not arrive in time.\")\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5a8b424276f7ba50c51e7caf485b2be23739e5b8",
      "tree": "001a7250e631db20a5bc3d9fd667dc8a817d9c1f",
      "parents": [
        "8ccee20e3ef4e12dbf02a18f17d386569b1f73ee"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jun 14 14:18:23 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:43 2011 +0200"
      },
      "message": "drbd: account bitmap IO during resync as resync-(related-)-io\n\nIf we have a good resync rate, we will frequently update the on-disk\nbitmap, which, if not accounted for as resync io, may let an otherwise\nidle device appear to be \"busy\", and cause us to throttle resync.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8ccee20e3ef4e12dbf02a18f17d386569b1f73ee",
      "tree": "a725b7844412c1cf9079e46ce779d33338ae1d67",
      "parents": [
        "829c60878626be290a4c248e8f1b86a0d5cbd38b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jun 06 11:31:42 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:42 2011 +0200"
      },
      "message": "drbd: don\u0027t cond_resched_lock with IRQs disabled\n\nThe last commit, drbd: add missing spinlock to bitmap receive,\nintroduced a cond_resched_lock(), where the lock in question is taken\nwith irqs disabled.\n\nAs we must not schedule with IRQs disabled,\nand cond_resched_lock_irq() does not exist, yet,\nwe re-aquire the spin_lock_irq() for each bitmap page processed in turn.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "829c60878626be290a4c248e8f1b86a0d5cbd38b",
      "tree": "3774c1a3abb72bcc5ab0b37a23fdd9727ca188e4",
      "parents": [
        "0cfdd247d1779d5ffc8f685b172a526ecdc6773f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jun 03 21:18:13 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:41 2011 +0200"
      },
      "message": "drbd: add missing spinlock to bitmap receive\n\nDuring bitmap exchange, when using the RLE bitmap compression scheme,\nwe have a code path that can set the whole bitmap at once.\n\nTo avoid holding spin_lock_irq() for too long, we used to lock out other\nbitmap modifications during bitmap exchange by other means, and then,\nknowing we have exclusive access to the bitmap, modify it without\nthe spinlock, and with IRQs enabled.\n\nSince we now allow local IO to continue, potentially setting additional\nbits during the bitmap receive phase, this is no longer true, and we get\nuncoordinated updates of bitmap members, causing bm_set to no longer\naccurately reflect the total number of set bits.\n\nTo actually see this, you\u0027d need to have a large bitmap, use RLE bitmap\ncompression, and have busy IO during sync handshake and bitmap exchange.\n\nFix this by taking the spin_lock_irq() in this code path as well, but\ncalling cond_resched_lock() after each page worth of bits processed.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0cfdd247d1779d5ffc8f685b172a526ecdc6773f",
      "tree": "affca52cde37dde016424d5c17679464f855f7ae",
      "parents": [
        "a1c15c59feee36267c43142a41152fbf7402afb6"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 25 11:14:35 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:40 2011 +0200"
      },
      "message": "drbd: Use the correct max_bio_size when creating resync requests\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "929cfdd5d3bdc772aff32e5a3fb4e3894394aa75",
      "tree": "f67202d079eaf1f8d65b2e1bfac70b768ae34bc4",
      "parents": [
        "798ce8f1cca29dcc3f4b55947f611f4ffb32ac2b",
        "a1c15c59feee36267c43142a41152fbf7402afb6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 09:15:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 09:15:35 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.40/drivers\u0027 of git://git.kernel.dk/linux-2.6-block: (110 commits)\n  loop: handle on-demand devices correctly\n  loop: limit \u0027max_part\u0027 module param to DISK_MAX_PARTS\n  drbd: fix warning\n  drbd: fix warning\n  drbd: Fix spelling\n  drbd: fix schedule in atomic\n  drbd: Take a more conservative approach when deciding max_bio_size\n  drbd: Fixed state transitions after async outdate-peer-handler returned\n  drbd: Disallow the peer_disk_state to be D_OUTDATED while connected\n  drbd: Fix for the connection problems on high latency links\n  drbd: fix potential activity log refcount imbalance in error path\n  drbd: Only downgrade the disk state in case of disk failures\n  drbd: fix disconnect/reconnect loop, if ping-timeout \u003d\u003d ping-int\n  drbd: fix potential distributed deadlock\n  lru_cache.h: fix comments referring to ts_ instead of lc_\n  drbd: Fix for application IO with the on-io-error\u003dpass-on policy\n  xen/p2m: Add EXPORT_SYMBOL_GPL to the M2P override functions.\n  xen/p2m/m2p/gnttab: Support GNTMAP_host_map in the M2P override.\n  xen/blkback: don\u0027t fail empty barrier requests\n  xen/blkback: fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()\n  ...\n"
    },
    {
      "commit": "0ddf72be4edbd7640b57c13161f71416df16ec11",
      "tree": "5cef009715650da96a82f1b9d9afbd5843b5a105",
      "parents": [
        "9b2f61aec73dc9e735e247fd720c673b30999e7c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon May 23 15:29:32 2011 -0700"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:38:33 2011 +0200"
      },
      "message": "drbd: fix warning\n\nIn file included from drivers/block/drbd/drbd_main.c:54:                        drivers/block/drbd/drbd_int.h:1190: warning: parameter has incomplete type\n\nForward declarations of enums do not work.\n\nFix it unpleasantly by moving the prototype.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b2f61aec73dc9e735e247fd720c673b30999e7c",
      "tree": "7d82ad8dd932c5d6a047fbfecd49aa34e8ea15a2",
      "parents": [
        "24c4830c8ec3cbc904d84c213126a35f41a4e455"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:27:38 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:38:32 2011 +0200"
      },
      "message": "drbd: fix warning\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "24c4830c8ec3cbc904d84c213126a35f41a4e455",
      "tree": "3d232dd4e56ec477929a2537ef683b4f19528fb2",
      "parents": [
        "9a0d9d0389ef769e4b01abf50fcc11407706270b"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bvanassche@acm.org",
        "time": "Sat May 21 18:32:29 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:21:29 2011 +0200"
      },
      "message": "drbd: Fix spelling\n\nFound these with the help of ispell -l.\n\nSigned-off-by: Bart Van Assche \u003cbvanassche@acm.org\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "9a0d9d0389ef769e4b01abf50fcc11407706270b",
      "tree": "e766296ff1e684a0a081a6961ec664a4131faf74",
      "parents": [
        "99432fcc528d7a5ac8494a4c07ad4726670c96e2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon May 02 11:51:31 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:14:32 2011 +0200"
      },
      "message": "drbd: fix schedule in atomic\n\nAn administrative detach used to request a state change directly to D_DISKLESS,\nfirst suspending IO to avoid the last put_ldev() occuring from an endio handler,\npotentially in irq context.\n\nThis is not enough on the receiving side (typically secondary), we may miss\nsome peer_req on the way to local disk, which then may do the last put_ldev()\nfrom their drbd_peer_request_endio().\n\nThis patch makes the detach always go through the intermediate D_FAILED state.\nWe may consider to rename it D_DETACHING.\n\nAlternative approach would be to create yet an other work item to be scheduled\non the worker, do the destructor work from there, and get the timing right.\n\nmanually picked commit 564040f from the drbd 8.4 branch.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "99432fcc528d7a5ac8494a4c07ad4726670c96e2",
      "tree": "0b86df2b3e86af1eab14b987e81b7f4a5f88c090",
      "parents": [
        "21423fa79119a80e335de0c82ec29f67ed59f1bc"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri May 20 16:39:13 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:08:58 2011 +0200"
      },
      "message": "drbd: Take a more conservative approach when deciding max_bio_size\n\nThe old (optimistic) implementation could shrink the bio size\non an primary device.\n\nShrinking the bio size on a primary device is bad. Since there\nwe might get BIOs with the old (bigger) size shortly after\nwe published the new size.\n\nThe new implementation is more conservative, and eventually\nincreases the max_bio_size on a primary device (which is valid).\nIt does so, when it knows the local limit AND the remote limit.\n\n We cache the last seen max_bio_size of the peer in the meta\n data, and rely on that, to make the operation of single\n nodes more efficient.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "21423fa79119a80e335de0c82ec29f67ed59f1bc",
      "tree": "955e28d450d817d803f2504cb1b38b669c598cc9",
      "parents": [
        "fa7d939663b61f5c2bd3436d3aa126d4c0f47aa8"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 17 14:19:41 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:08:11 2011 +0200"
      },
      "message": "drbd: Fixed state transitions after async outdate-peer-handler returned\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fa7d939663b61f5c2bd3436d3aa126d4c0f47aa8",
      "tree": "2fa5264c72d2b5e8fa8414d1ba90217edc1a7731",
      "parents": [
        "a8e407925d49c521151dd24b6376c1f9a04a093f"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 17 14:48:55 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:07:50 2011 +0200"
      },
      "message": "drbd: Disallow the peer_disk_state to be D_OUTDATED while connected\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a8e407925d49c521151dd24b6376c1f9a04a093f",
      "tree": "9751821550b2f332f9937427874854f51a454352",
      "parents": [
        "76727f684aa2d6a2dc59a7e5cf77e092a1bf4fb6"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri May 13 12:03:55 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:07:22 2011 +0200"
      },
      "message": "drbd: Fix for the connection problems on high latency links\n\nIt seems that the real cause of all the issues where that\nwe did not noticed in drbd_try_connect() when the other\nguy closes one socket if the round trip time gets higher\nthan 100ms. There were that 100ms hard coded!\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "76727f684aa2d6a2dc59a7e5cf77e092a1bf4fb6",
      "tree": "59e80cf30c5cbf33f5179889025b8b0d7afdd970",
      "parents": [
        "d2e17807e3799bae24664a92f4d2d3dade021e00"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon May 16 15:31:45 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:06:44 2011 +0200"
      },
      "message": "drbd: fix potential activity log refcount imbalance in error path\n\nIt is no longer sufficient to trigger on local WRITE,\nwe need to check on (rq_state \u0026 RQ_IN_ACT_LOG)\nbefore calling drbd_al_complete_io also in the 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": "d2e17807e3799bae24664a92f4d2d3dade021e00",
      "tree": "7e3abd6d91be6fac6d90b3d3adf21f8b1418736a",
      "parents": [
        "f36af18c7b4ea1ba333c09b606bb4a7e5af66b4d"
      ],
      "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": "Tue May 24 10:05:48 2011 +0200"
      },
      "message": "drbd: Only downgrade the disk state in case of disk failures\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f36af18c7b4ea1ba333c09b606bb4a7e5af66b4d",
      "tree": "6983acfaa859fee028b2927f8f520a27e1785c4d",
      "parents": [
        "53ea433145d9a56c7ad5e69f21f5662053e00e84"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Mar 09 22:44:55 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:03:30 2011 +0200"
      },
      "message": "drbd: fix disconnect/reconnect loop, if ping-timeout \u003d\u003d ping-int\n\nIf there is no replication traffic within the idle timeout\n(ping-int seconds), DRBD will send a P_PING,\nand adjust the timeout to ping-timeout.\n\nIf there is no P_PING_ACK received within this ping-timeout,\nDRBD finally drops the connection, and tries to re-establish it.\n\nTo decide which timeout was active, we compared the current timeout\nwith the ping-timeout, and dropped the connection, if that was the case.\n\nBy default, ping-int is 10 seconds, ping-timeout is 500 ms.\n\nUnfortunately, if you configure ping-timeout to be the same as ping-int,\nexpiry of the idle-timeout had been mistaken for a missing ping ack,\nand caused an immediate reconnection attempt.\n\nFix:\nAllow both timeouts to be equal, use a local variable\nto store which timeout is active.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "53ea433145d9a56c7ad5e69f21f5662053e00e84",
      "tree": "fcd581287611f2ad2e169e50c34678192fb085b3",
      "parents": [
        "600942e0fdb7ed1565d056d7305c46c7c0544a3e"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Mar 08 17:11:40 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:02:41 2011 +0200"
      },
      "message": "drbd: fix potential distributed deadlock\n\nWe limit ourselves to a configurable maximum number of pages used as\ntemporary bio pages.\n\nIf the configured \"max_buffers\" is not big enough to match the bandwidth\nof the respective deployment, a distributed deadlock could be triggered\nby e.g. fast online verify and heavy application IO.\n\nTCP connections would block on congestion, because both receivers\nwould wait on pages to become available.\n\nFortunately the respective senders in this case would be able to give\nback some pages already. So do that.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    }
  ],
  "next": "738a84b25cac5af94936e5a1b15cd9909212383c"
}
