)]}'
{
  "log": [
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "7e599e6e62759e057e902fcf9a05ba24f6155bcd",
      "tree": "c546d89105deaadfe961133fed6fd0b84f66ab6f",
      "parents": [
        "3a80e52486eff1221ece5902b423da59f263069d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 07:42:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 07:42:58 2011 -0700"
      },
      "message": "drbd: fix up merge error\n\nIn commit 95a0f10cddbf (\"drbd: store in-core bitmap little endian,\nregardless of architecture\") drbd had made the sane choice to use\nlittle-endian bitmap functions everywhere.  However, it used the\nhorrible old functions names from \u003casm-generic/bitops/le.h\u003e, that were\nnever really meant to be exported.\n\nIn the meantime, things got cleaned up, and in commit c4945b9ed472\n(\"asm-generic: rename generic little-endian bitops functions\") we\nrenamed the LE bitops to something sane, exactly so that they could be\nused in random code without people gouging their eyes out when seeing\nthe crazy jumble of letters that were the old internal names.\n\nAs a result the drbd thing merged cleanly (commit 8d49a77568d1: \"Merge\nbranch \u0027for-2.6.39/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\"),\nsince there was no data conflict - but the end result obviously doesn\u0027t\nactually compile.\n\nReported-and-tested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d49a77568d1105ff3e64aec484dac059f54824e",
      "tree": "633ee954a3cea97bf136dec933388a2e419e5dac",
      "parents": [
        "93567c43eb2a4771b9c590435928f9b3a428e568",
        "1ddd5049545e0aa1a0ed19bca4d9c9c3ce1ac8a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 20:02:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 20:02:07 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/drivers\u0027 of git://git.kernel.dk/linux-2.6-block: (122 commits)\n  cciss: fix lost command issue\n  drbd: need include for bitops functions declarations\n  Revert \"cciss: Add missing allocation in scsi_cmd_stack_setup and  corresponding deallocation\"\n  cciss: fix missed command status value CMD_UNABORTABLE\n  cciss: remove unnecessary casts\n  cciss: Mask off error bits of c-\u003ebusaddr in cmd_special_free when calling pci_free_consistent\n  cciss: Inform controller we are using 32-bit tags.\n  cciss: hoist tag masking out of loop\n  cciss: Add missing allocation in scsi_cmd_stack_setup and  corresponding deallocation\n  cciss: export resettable host attribute\n  drbd: drop code present under #ifdef which is relevant to 2.6.28 and below\n  drbd: Fixed handling of read errors on a \u0027VerifyS\u0027 node\n  drbd: Fixed handling of read errors on a \u0027VerifyT\u0027 node\n  drbd: Implemented real timeout checking for request processing time\n  drbd: Remove unused function atodb_endio()\n  drbd: improve log message if received sector offset exceeds local capacity\n  drbd: kill dead code\n  drbd: don\u0027t BUG_ON, if bio_add_page of a single page to an empty bio fails\n  drbd: Removed left over, now wrong comments\n  drbd: serialize admin requests for new verify run with pending bitmap io\n  ...\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "f0ff1357ce391265edbf844792da7da9a694f4bd",
      "tree": "a65e8b3a3c0cf3a3744117c1bc43a84d48050218",
      "parents": [
        "b66538014f7eae121afa99ca18488fd67536a1bf"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Mar 17 15:02:51 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 15:02:51 2011 +0100"
      },
      "message": "drbd: need include for bitops functions declarations\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "03567812d81dd87a810b2bd1e804f4001de03da5",
      "tree": "fbed361cfc8bc6f816d85d5edca31b37a2044b5e",
      "parents": [
        "7961243b7bdd62d72b47eb2c0bee776c51a8a8e2"
      ],
      "author": {
        "name": "Or Gerlitz",
        "email": "ogerlitz@voltaire.com",
        "time": "Thu Jan 13 10:43:40 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:21 2011 +0100"
      },
      "message": "drbd: drop code present under #ifdef which is relevant to 2.6.28 and below\n\nSigned-off-by: Or Gerlitz \u003cogerlitz@voltaire.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7961243b7bdd62d72b47eb2c0bee776c51a8a8e2",
      "tree": "c2fc7da055b61cc4f9b041524a2f873612f3104c",
      "parents": [
        "8f21420ebd5ca5a751e2f606b49b0acd2a2af314"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Mar 02 23:14:44 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:20 2011 +0100"
      },
      "message": "drbd: Fixed handling of read errors on a \u0027VerifyS\u0027 node\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8f21420ebd5ca5a751e2f606b49b0acd2a2af314",
      "tree": "bf652362959fa629c17b1954b861783d894eb131",
      "parents": [
        "7fde2be93080c028c20078a2d6abec8a95891192"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Mar 01 15:52:35 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:18 2011 +0100"
      },
      "message": "drbd: Fixed handling of read errors on a \u0027VerifyT\u0027 node\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7fde2be93080c028c20078a2d6abec8a95891192",
      "tree": "47993e3c52d550d22ab8035de94d526d226bc2e6",
      "parents": [
        "c5a91619793d444e5103ec5841045bf878718398"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Mar 01 11:08:28 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:16 2011 +0100"
      },
      "message": "drbd: Implemented real timeout checking for request processing time\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c5a91619793d444e5103ec5841045bf878718398",
      "tree": "3a1457aaaba954610b8bd55f27b8f4e9997bf936",
      "parents": [
        "fdda6544ad4d3284246e717b7108f7f497b45295"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Tue Jan 25 17:33:38 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:15 2011 +0100"
      },
      "message": "drbd: Remove unused function atodb_endio()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fdda6544ad4d3284246e717b7108f7f497b45295",
      "tree": "e144b5e54258bd3603c80304b4a984a4a9153894",
      "parents": [
        "e99dc367b3aafb1ce2d5d92e94834d07b299e1d7"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 24 15:11:01 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:13 2011 +0100"
      },
      "message": "drbd: improve log message if received sector offset exceeds local capacity\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e99dc367b3aafb1ce2d5d92e94834d07b299e1d7",
      "tree": "8fad9b684369f49c2e8100ae0afa8eccfe0d59a5",
      "parents": [
        "10f6d9926cd17afff9dc03c967706419798b4929"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 24 14:58:39 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:12 2011 +0100"
      },
      "message": "drbd: kill dead code\n\nThis code became obsolete and unused last December with\n drbd: bitmap keep track of changes vs on-disk bitmap\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "10f6d9926cd17afff9dc03c967706419798b4929",
      "tree": "7b1cd4bfcffbb3832c756ce29861411f7300aadd",
      "parents": [
        "039312b6481e2928f3be19fee94c83327d93e4c7"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 24 14:47:09 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:10 2011 +0100"
      },
      "message": "drbd: don\u0027t BUG_ON, if bio_add_page of a single page to an empty bio fails\n\nJust deal with it more gracefully, if we fail to add even a single page\nto an empty bio. We used to BUG_ON() there, but it has been observed in\nsome Xen deployment, so we need to handle that case more robustly now.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "039312b6481e2928f3be19fee94c83327d93e4c7",
      "tree": "cfdbc96255867ecfdeb1529d38dad37f9a1a1178",
      "parents": [
        "873b0d5f98ab70e4df7a62b2ef0305373f88f330"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jan 21 14:13:22 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:09 2011 +0100"
      },
      "message": "drbd: Removed left over, now wrong comments\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "873b0d5f98ab70e4df7a62b2ef0305373f88f330",
      "tree": "28f36e0d6eb1352b842c403d68908dc4246c7604",
      "parents": [
        "e636db5b956950b8b9bfbeb766a637f84bae1e3b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 22:53:48 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:07 2011 +0100"
      },
      "message": "drbd: serialize admin requests for new verify run with pending bitmap io\n\nThis is an addendum to\n drbd: serialize admin requests for new resync with pending bitmap io\n\nIt avoids a race that could trigger \"FIXME\" assert log messages.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e636db5b956950b8b9bfbeb766a637f84bae1e3b",
      "tree": "6b6b05d69c2baaf4ea4ec1dee5cd399aed85eb88",
      "parents": [
        "0ddc5549f88dfc4a4c919693e9a86095e89e080b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 17:10:37 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:06 2011 +0100"
      },
      "message": "drbd: fix potential imbalance of ap_in_flight\n\nWhen we receive a barrier ack, we walk the ring list of drbd requests\nin the transfer log of the respective epoch, do some housekeeping,\nand free those objects.\n\nWe tried to keep epochs of mirrored and unmirrored drbd requests\nseparate, and assert that no local-only requests are present in a\nbarrier_acked epoch.\n\nIt turns out that this has quite a number of corner cases and would\nadd bloated code without functional benefit.\n\nWe now revert the (insufficient) commits\n drbd: Fixed an issue with AHEAD -\u003e SYNC_SOURCE transitions\n drbd: Ensure that an epoch contains only requests of one kind\nand instead fix the processing of barrier acks to cope with\na mix of local-only and mirrored requests.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0ddc5549f88dfc4a4c919693e9a86095e89e080b",
      "tree": "95b89ce27e2e6d2e0989bd75becf19ca590c2c35",
      "parents": [
        "20ceb2b22edaf51e59e76087efdc71a16a2858de"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 12:35:15 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:04 2011 +0100"
      },
      "message": "drbd: silence some noisy log messages during disconnect\n\nIf we fail to send the information that we lost our disk,\nwe have no connection, and no disk: no access to data anymore.\nThat is either expected (deconfiguration), or there will be so much\nnoise in the logs that \"Sending state failed\" is not useful at all.\nDrop it.\n\nIf the reason for a shorter than expected receive was a signal,\nwhich we sent because we already decided to disconnect,\nthese additional log messages are confusing and useless.\n\nThis patch follows this pattern:\n - dev_warn(DEV, \"short read expecting header on sock: r\u003d%d\\n\", r);\n + if (!signal_pending(current))\n + \tdev_warn(DEV, \"short read expecting header on sock: r\u003d%d\\n\", r);\n\nAlso make them all dev_warn for consistency.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "20ceb2b22edaf51e59e76087efdc71a16a2858de",
      "tree": "a4f267242725bac2a915e879a6b6ac259218c5fa",
      "parents": [
        "62b0da3a244ac33d25a77861ef1cc0080103f2ff"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 10:56:44 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:02 2011 +0100"
      },
      "message": "drbd: describe bitmap locking for bulk operation in finer detail\n\nNow that we do no longer in-place endian-swap the bitmap, we allow\nselected bitmap operations (testing bits, sometimes even settting bits)\nduring some bulk operations.\n\nThis caused us to hit a lot of FIXME asserts similar to\n\tFIXME asender in drbd_bm_count_bits,\n\tbitmap locked for \u0027write from resync_finished\u0027 by worker\nWhich now is nonsense: looking at the bitmap is perfectly legal\nas long as it is not being resized.\n\nThis cosmetic patch defines some flags to describe expectations in finer\ndetail, so the asserts in e.g. bm_change_bits_to() can be skipped if\nappropriate.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "62b0da3a244ac33d25a77861ef1cc0080103f2ff",
      "tree": "a4313df7c46ac50d751fb0798323e34a3e4efbee",
      "parents": [
        "d07c9c10e5620c632aae9cac2b609033398f6139"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 20 13:25:21 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:01 2011 +0100"
      },
      "message": "drbd: log UUIDs whenever they change\n\nAll decisions about sync, sync direction, and wether or not to\nallow a connect or attach are based on our set of UUIDs to tag a\ndata generation.\n\nLog changes to the UUIDs whenever they occur,\nlogging \"new current UUID P:Q:R:S\" is more useful\nthan \"Creating new 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": "d07c9c10e5620c632aae9cac2b609033398f6139",
      "tree": "32bc11c4e9093068f4a363c6d8a8b77316350209",
      "parents": [
        "cd88d030d41a9b0100fd5fee872024e6ebc8b276"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jan 20 16:49:33 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:59 2011 +0100"
      },
      "message": "drbd: We can not process BIOs with a size of 0\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cd88d030d41a9b0100fd5fee872024e6ebc8b276",
      "tree": "c107e24c88fee112ebc85c966573ad51074aed7b",
      "parents": [
        "79a30d2d71f7be862de93228fe9b919ef664af52"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jan 20 11:46:41 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:58 2011 +0100"
      },
      "message": "drbd: Provide hints with the error message when clearing the sync pause flag\n\nWhen the user clears the sync-pause flag, and sync stays in pause\nstate, give hints to the user, why it still is in pause state.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "79a30d2d71f7be862de93228fe9b919ef664af52",
      "tree": "00f2e8a2adc5f284d50fe529eb1bae37c4eb5c2f",
      "parents": [
        "54b956abef2c1ab339fd01792e69e4a921a5e487"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 20 10:32:05 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:56 2011 +0100"
      },
      "message": "drbd: queue bitmap writeout more intelligently\n\nThe \"lazy writeout\" of cleared bitmap pages happens during resync, and\nshould happen again once the resync finishes cleanly, or is aborted.\n\nIf resync finished cleanly, or was aborted because of peer disk\nfailure, we trigger the writeout from worker context in the after\nstate change work.\n\nIf resync was aborted because of connection failure, we should not\nimmediately trigger bitmap writeout, but rather postpone the\nwriteout to after the connection cleanup happened.  We now do it\nin the receiver context from drbd_disconnect().\n\nIf resync was aborted because of local disk failure, well, there\nis nothing to write to anymore.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "54b956abef2c1ab339fd01792e69e4a921a5e487",
      "tree": "e489b7742b99e8cfda55d75dc4675d3f00c40af0",
      "parents": [
        "194bfb32dba8345a7e0f83e9b1ee965e14d4b679"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 20 10:47:53 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:55 2011 +0100"
      },
      "message": "drbd: don\u0027t pointlessly queue bitmap send, if we lost connection\n\nThis is a minor optimization and cleanup,\nand also considerably reduces some harmless (but noisy) race with\nthe connection cleanup code.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "194bfb32dba8345a7e0f83e9b1ee965e14d4b679",
      "tree": "7ce893e0116c4b286a55b068ffde10be18241afd",
      "parents": [
        "6c922ed543bee1bc6685ade07be59f3fa49a7288"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jan 18 10:38:01 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:53 2011 +0100"
      },
      "message": "drbd: serialize admin requests for new resync with pending bitmap io\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6c922ed543bee1bc6685ade07be59f3fa49a7288",
      "tree": "1a2b0c13be822da96a6335953cca9cd06d1b7e1b",
      "parents": [
        "20ee639024e3d33111df0e343050b218c656bf16"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Jan 12 11:51:13 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:52 2011 +0100"
      },
      "message": "drbd: only generate and send a new sync uuid after a successful state change\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "20ee639024e3d33111df0e343050b218c656bf16",
      "tree": "bb19ee90dfbea96d0e11c1bd4c0dc0655638001c",
      "parents": [
        "6a35c45f890dc18c5527ac501b308058118f20e7"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jan 18 15:28:59 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:42 2011 +0100"
      },
      "message": "drbd: cleaned up __set_current_state() followed by schedule_timeout() calls\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6a35c45f890dc18c5527ac501b308058118f20e7",
      "tree": "627c73d972af6905f2ab77131e4232c62d31a553",
      "parents": [
        "2deb8336d04106f215c21ad1b029e78d12033d02"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 17 20:27:30 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:42 2011 +0100"
      },
      "message": "drbd: Ensure that an epoch contains only requests of one kind\n\nThe assert in drbd_req.c:755 forces us to have only requests of\none kind in an epoch. The two kinds we distinguish here are:\nlocal-only or mirrored.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2deb8336d04106f215c21ad1b029e78d12033d02",
      "tree": "19a6efb58bf425002630c58826c6b53099fe73a1",
      "parents": [
        "94f2b05f03fbc605f83ae501682c85ff4535bb6d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 17 18:39:18 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:40 2011 +0100"
      },
      "message": "drbd: Fixed P_NEG_ACK processing for protocol A and B\n\nProtocol A has no P_WRITE_ACKs, but has P_NEG_ACKs.\nThe master bio might already be completed, therefore the\nrequest is no longer in the collision hash.\n\u003d\u003e Do not try to validate block_id as request\n\nIn Protocol B we might already have got a P_RECV_ACK\nbut then get a P_NEG_ACK after wards.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "94f2b05f03fbc605f83ae501682c85ff4535bb6d",
      "tree": "8814ec8c4f9a330f8560de48d0072d10423c8bb4",
      "parents": [
        "148efa165e9464927887b03c83a52c33b80b4431"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 17 15:14:26 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:39 2011 +0100"
      },
      "message": "drbd: Killed an assert that is no longer valid\n\nThe point is that drbd_disconnect() can be called with a cstate of\nWFConnection.\n\nThat happens if the user issues \"drbdsetup disconnect\" while the\ndrbd_connect() function executes. Then drbdd_init() will call\ndrbdd(), which in turn will return without receiving any\npackets. Then drbdd_init() will end up calling drbd_disconnect()\nwith a cstate of WFConnection.\n\nBottom line: This assertion is wrong as it is, and we do not\nsee value in fixing it. \u003d\u003e Removing it.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "148efa165e9464927887b03c83a52c33b80b4431",
      "tree": "2c13039e139600b7d9347211cc714f90df01c6b3",
      "parents": [
        "370a43e7982dd497822097e0ae6022947ac2e7d4"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sat Jan 15 00:21:15 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:37 2011 +0100"
      },
      "message": "drbd: Do not drop net config if sending in drbd_send_protocol() fails\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "370a43e7982dd497822097e0ae6022947ac2e7d4",
      "tree": "a501836af9959177a1ef9b6746ab21c3b3af6d94",
      "parents": [
        "71c78cfba232de8f61a4b1bbb6e876424d133407"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jan 14 16:03:11 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:36 2011 +0100"
      },
      "message": "drbd: Work on the Ahead -\u003e SyncSource transition\n\nThe test if rs_pending_cnt \u003d\u003d 0 was too weak. Using Test for\nunacked_cnt \u003d\u003d 0 instead. Moved that into the worker.\n\nSince unacked_cnt gets already increased when an P_RS_DATA_REQ\ncomes in.\n\nAlso using a timer to make Ahead -\u003e SyncSource -\u003e Ahead cycles\nslower...\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "71c78cfba232de8f61a4b1bbb6e876424d133407",
      "tree": "2875a4f478f328d57a148dcd01b9563053447fd2",
      "parents": [
        "4a23f2649698272abcd9e0c9a992d65739f32792"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jan 14 19:20:34 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:34 2011 +0100"
      },
      "message": "drbd: Nothing should stop SyncSource -\u003e Ahead transitions\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4a23f2649698272abcd9e0c9a992d65739f32792",
      "tree": "3921ce5019d9d72befc48dbf14850c189bce5543",
      "parents": [
        "2b8a90b55533c66258a1ff0fb27b8cffa95665c4"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jan 11 17:42:17 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:32 2011 +0100"
      },
      "message": "drbd: Do not full sync if a P_SYNC_UUID packet gets lost\n\nSee also commit from 2009-08-15\n\"drbd_uuid_compare(): Do not full sync in case a P_SYNC_UUID packet gets lost.\"\n\nWe saw cases where the History UUIDs where not as expected. So the\ndetection of the special case did not trigger. With the sync UUID\nno longer being a random number, but deducible from the previous\nbitmap UUID, the detection of this special case becomes more\nreliable.\n\nThe SyncUUID now is the previous bitmap UUID + 0x1000000000000.\n\nRule 5a:\nCs \u003d H1p \u0026 H1p + Offset \u003d Bp\n  Connection was lost before SyncUUID Packet came through.\n  Corrent (peer) UUIDs:\n   Bp \u003d H1p\n   H1p \u003d H2p\n   H2p \u003d 0\n  Become Sync target.\n\nRule 7a:\nCp \u003d H1s \u0026 H1s + Offset \u003d Bs\n  Connection was lost before SyncUUID Packet came through.\n  Correct (own) UUIDs:\n   Bs \u003d H1s\n   H1s \u003d H2s\n   H2s \u003d 0\n  Become Sync source.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2b8a90b55533c66258a1ff0fb27b8cffa95665c4",
      "tree": "24e6d5816123e7912e1fe7db0261c083da8810f3",
      "parents": [
        "110a204a354a5a69f99ed0bc8e6d779e6a94d410"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 10 11:15:17 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:31 2011 +0100"
      },
      "message": "drbd: Corrected off-by-one error in DRBD_MINOR_COUNT_MAX\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "110a204a354a5a69f99ed0bc8e6d779e6a94d410",
      "tree": "b59f14f8c0b722c94ef5b01604cb572016a6942a",
      "parents": [
        "794abb753e29e85949b3719dbc2ab6a98711a47e"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Mon Jan 03 15:47:08 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:29 2011 +0100"
      },
      "message": "drbd: Remove useless / wrong comments\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "794abb753e29e85949b3719dbc2ab6a98711a47e",
      "tree": "95d03c4b184c28087fa3ff1f4f5562a5ee5b0a56",
      "parents": [
        "da0a78161d2b2da4819a1f05a38bb1dcbe02d951"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 27 11:51:23 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:28 2011 +0100"
      },
      "message": "drbd: Cleaned up the resync timer logic\n\nBesides removed a few lines of code, this moves the inspection\nof the state from before the queuing process to after the queuing.\nI.e. more closely to the actual invocation of the work.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "da0a78161d2b2da4819a1f05a38bb1dcbe02d951",
      "tree": "2228b9b03e645d5339b812c6330b44756675b36c",
      "parents": [
        "d612d309e4c8401ad94c531678b59c4a8b7c41ce"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 23 14:24:33 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:26 2011 +0100"
      },
      "message": "drbd: Be more careful with SyncSource -\u003e Ahead transitions\n\nWe may not get from SyncSource to Ahead if we have sent some\nP_RS_DATA_REPLY packets to the peer and are waiting for\nP_WRITE_ACK.\n\nAgain, this is not relevant for proper tuned systems, but makes\nsure that the not-tuned system does not get diverging bitmaps.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d612d309e4c8401ad94c531678b59c4a8b7c41ce",
      "tree": "a50d72c0d2a92701df76e7e6effd96781728f600",
      "parents": [
        "617049aa7d753e8c821ac77126ab90e9f1b66d6d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 27 10:53:28 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:25 2011 +0100"
      },
      "message": "drbd: No longer answer P_RS_DATA_REQUEST packets when in C_AHEAD mode\n\nWhen the sync source node replies to a P_RS_DATA_REQUEST packet\nwhen it is already in ahead mode. I.e. those two packets\ncrossed each other on the wire, that may lead to diverging\nbitmaps.\n\n  This never happens in a well-tuned-system. In a well-tuned-\n  system the resync controller has reduced the resync speed\n  to zero long before we got into ahead-mode.\n\nBut we have to be prepared for the not-well-tuned-system\nof course as well.\nBecause -\u003e diverging bitmaps \u003d non terminating resync.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "617049aa7d753e8c821ac77126ab90e9f1b66d6d",
      "tree": "1cabbc19e2efa054bf585d92f42c0bf7bf0c01b5",
      "parents": [
        "071942727824bab03b1a3f6b6eeb5b269697b333"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Dec 22 12:48:31 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:23 2011 +0100"
      },
      "message": "drbd: Fixed an issue with AHEAD -\u003e SYNC_SOURCE transitions\n\nCreate a new barrier when leaving the AHEAD mode.\n\n  Otherwise we trigger the assertion in req_mod(, barrier_acked)\n  D_ASSERT(req-\u003erq_state \u0026 RQ_NET_SENT);\n\nThe new barrier is created by recycling the newest existing one.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "071942727824bab03b1a3f6b6eeb5b269697b333",
      "tree": "c08c9595b4f4628b399abe5c8195bc6211aa13e1",
      "parents": [
        "3f98688afc2ce0138fc88e272bdd128e1e0b0976"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Dec 20 15:38:07 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:21 2011 +0100"
      },
      "message": "drbd: ratelimit io error messages\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3f98688afc2ce0138fc88e272bdd128e1e0b0976",
      "tree": "05a92b453947ad33ca4270cd134261bcabb9cd9a",
      "parents": [
        "725a97e43ee945cc813fffd9e628e50d703b973b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 20 14:48:20 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:20 2011 +0100"
      },
      "message": "drbd: There might be a resync after unfreezing IO due to no disk [Bugz 332]\n\nWhen on-no-data-accessible is set to suspend-io, also consider that\na Primary, SyncTarget node losses its connection.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "725a97e43ee945cc813fffd9e628e50d703b973b",
      "tree": "ec67dbfccf0b3a43cb879056a1fb320b82b8dd2d",
      "parents": [
        "06d33e968d2c58143a7aaafa8963cf6a58099467"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sun Dec 19 11:29:55 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:08 2011 +0100"
      },
      "message": "drbd: fix potential access of on-stack wait_queue_head_t after return\n\nI run into something declaring itself as \"spinlock deadlock\",\n BUG: spinlock lockup on CPU#1, kjournald/27816, ffff88000ad6bca0\n Pid: 27816, comm: kjournald Tainted: G        W 2.6.34.6 #2\n Call Trace:\n  \u003cIRQ\u003e  [\u003cffffffff811ba0aa\u003e] do_raw_spin_lock+0x11e/0x14d\n  [\u003cffffffff81340fde\u003e] _raw_spin_lock_irqsave+0x6a/0x81\n  [\u003cffffffff8103b694\u003e] ? __wake_up+0x22/0x50\n  [\u003cffffffff8103b694\u003e] __wake_up+0x22/0x50\n  [\u003cffffffffa07ff661\u003e] bm_async_io_complete+0x258/0x299 [drbd]\nbut the call traces do not fit at all,\nall other cpus are cpu_idle.\n\nI think it may be this race:\n\ndrbd_bm_write_page\n wait_queue_head_t io_wait;\n atomic_t in_flight;\n bm_async_io\n  submit_bio\n\t\t\t\t\tbm_async_io_complete\n\t\t\t\t\t  if (atomic_dec_and_test(in_flight))\n wait_event(io_wait,\n\tatomic_read(in_flight) \u003d\u003d 0)\n return\n\t\t\t\t\t    wake_up(io_wait)\n\nThe wake_up now accesses the wait_queue_head_t spinlock, which is no\nlonger valid, since the stack frame of drbd_bm_write_page has been\nclobbered now.\n\nFix this by using struct completion, which does both the condition test\nas well as the wake_up inside its spinlock, so this race cannot happen.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "06d33e968d2c58143a7aaafa8963cf6a58099467",
      "tree": "4380d4060178a44ea0e4d56a47d1fff1a43e7b86",
      "parents": [
        "418e0a927d520f9c8e875ea75abee35d93a0f1b3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Dec 18 17:00:59 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:40 2011 +0100"
      },
      "message": "drbd: improve on bitmap write out timing\n\nEven though we now track the need for bitmap writeout per bitmap page,\nthere is no need to trigger the writeout while a resync is going on.\n\nOnce the resync is finished (or aborted),\nwe trigger bitmap writeout anyways.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "418e0a927d520f9c8e875ea75abee35d93a0f1b3",
      "tree": "8eeb5b67db90d29355ba03765167b99bb3132b37",
      "parents": [
        "7648cdfe52daf0ca4fa9489879dea9e089b0dfe1"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Dec 18 13:36:54 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:38 2011 +0100"
      },
      "message": "drbd: spelling 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": "7648cdfe52daf0ca4fa9489879dea9e089b0dfe1",
      "tree": "7dd711ec5bda5ef0429bf94205dbbf7fe1659d82",
      "parents": [
        "5a22db8968a69bec835d1ed9a96ab3381719e0c0"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Dec 17 23:58:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:37 2011 +0100"
      },
      "message": "drbd: be less noisy with some log messages\n\nWe expect changes to a bitmap page in drbd_bm_write_page,\nthat\u0027s why we submit a copy page.\n\nIf a page changes during global writeout, that would be unexpected,\nand reason to warn, though.\n\nAlso, often page writeout can be skipped (on activity log transactions\nduring normal operation, for example), no need to log that everytime.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5a22db8968a69bec835d1ed9a96ab3381719e0c0",
      "tree": "6dd29c3cec008a2f846f54a02cdb139c4ce94be3",
      "parents": [
        "f735e3635430c6d1c319664d82b34376e3f9aa17"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Dec 17 21:14:23 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:35 2011 +0100"
      },
      "message": "drbd: serialize sending of resync uuid with pending w_send_oos\n\nTo improve the latency of IO requests during bitmap exchange,\nwe recently allowed writes while waiting for the bitmap, sending \"set\nout-of-sync\" information packets for any newly dirtied bits.\n\nWe have to make sure that the new resync-uuid does not overtake\nthese \"set oos\" packets. Once the resync-uuid is received, the\nsync target starts the resync process, and expects the bitmap to\nonly be cleared, not re-set.\n\nIf we use this protocol extension, we queue the generation and sending\nof the resync-uuid on the worker, which naturally serializes with all\npreviously queued packets.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f735e3635430c6d1c319664d82b34376e3f9aa17",
      "tree": "c470f5ccd8536ad49778f842762042b75be2677e",
      "parents": [
        "c88d65e2231dbae4b7cd0ad7b2a919857a1be171"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Dec 17 21:06:18 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:34 2011 +0100"
      },
      "message": "drbd: add debugging assert to make sure the protocol is clean\n\nWe expect to only receive the recently introduced \"set out of sync\"\npackets in specific states. If we receive them in different states, that\nmay confuse the resync process to the point where it won\u0027t terminate, or\nthink it made negative progress.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c88d65e2231dbae4b7cd0ad7b2a919857a1be171",
      "tree": "942160fb7738af05e662e327e79138365c4a1499",
      "parents": [
        "2265b473aecc1a6fe1f84a0ee272ba39806c2a8a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 20 15:29:28 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:32 2011 +0100"
      },
      "message": "drbd: Documenting drbd_should_do_remote() and drbd_should_send_oos()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2265b473aecc1a6fe1f84a0ee272ba39806c2a8a",
      "tree": "bd58a09ad124dd37f15db23f20912049ccd067cd",
      "parents": [
        "02851e9f00d78dbc8ded0aacbf9bf3b631d627b3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 15:41:26 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:30 2011 +0100"
      },
      "message": "drbd: fix potential dereference of NULL pointer\n\nIf drbd used to have crypto digest algorithms configured, then is being\nunconfigured (but not unloaded), it frees the algorithms, but does not\nreset the config.  If it then is reconfigured to use the very same\nalgorithm, it \"forgot\" to re-allocate the algorithms, thinking that the\nconfig has not changed in that aspect.\nIt will then Oops on the first attempt to actually use those algorithms.\n\nFix this by resetting the config to defaults after cleanup.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "02851e9f00d78dbc8ded0aacbf9bf3b631d627b3",
      "tree": "d7a5611fef479c13ff70cccace8f22a963ba6df8",
      "parents": [
        "84e7c0f7d123d64d97e1f789ad2f23a72fe8981f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 14:47:39 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:29 2011 +0100"
      },
      "message": "drbd: move bitmap write from resync_finished to after_state_change\n\nWe must not call it directly from resync_finished,\nas we may be in either receiver or worker context there.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "84e7c0f7d123d64d97e1f789ad2f23a72fe8981f",
      "tree": "79327091826f3b5136796792a92e55d1b52a37be",
      "parents": [
        "6850c4421481139dc2cf982358e79c833a50d73c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 00:37:57 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:27 2011 +0100"
      },
      "message": "drbd: Removed a reference to debug macros removed long time ago\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6850c4421481139dc2cf982358e79c833a50d73c",
      "tree": "4b844bab228dfdf7b62a002b1b30d4296bcf6546",
      "parents": [
        "4b0715f09655e76ca24c35a9e25e7c464c2f7346"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 00:32:38 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:26 2011 +0100"
      },
      "message": "drbd: get rid of unused debug code\n\nLong time ago, we had paranoia code in the bitmap that allocated one\nextra word, assigned a magic value, and checked on every occasion that\nthe magic value was still unchanged.\n\nThat debug code is unused, the extra long word complicates code a bit.\nGet rid of it.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4b0715f09655e76ca24c35a9e25e7c464c2f7346",
      "tree": "e98706a35b1e18cad09f01d2346d9a1c938c081c",
      "parents": [
        "19f843aa08e2d8f87a09b4c2edc43b00638423a8"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Dec 14 15:13:04 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:24 2011 +0100"
      },
      "message": "drbd: allow petabyte storage on 64bit arch\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "19f843aa08e2d8f87a09b4c2edc43b00638423a8",
      "tree": "49919bd17ba7e03eb7cb76175910714d55704997",
      "parents": [
        "95a0f10cddbf93ce89c175ac1c53dad2d20ad309"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Dec 15 08:59:11 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:19 2011 +0100"
      },
      "message": "drbd: bitmap keep track of changes vs on-disk bitmap\n\nWhen we set or clear bits in a bitmap page,\nalso set a flag in the page-\u003eprivate pointer.\n\nThis allows us to skip writes of unchanged pages.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "95a0f10cddbf93ce89c175ac1c53dad2d20ad309",
      "tree": "98866a5938a75f235fdce6ab20cfa95fe984388e",
      "parents": [
        "7777a8ba1fc980e5edfe492ebf5a1676497b8db2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Dec 15 08:59:09 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:40 2011 +0100"
      },
      "message": "drbd: store in-core bitmap little endian, regardless of architecture\n\nOur on-disk bitmap is a little endian bitstream.\nUp to now, we have stored the in-core copy of that in\nnative endian, applying byte order conversion when necessary.\n\nInstead, keep the bitmap pages little endian, as they are read from disk,\nand use the generic_*_le_bit family of functions.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7777a8ba1fc980e5edfe492ebf5a1676497b8db2",
      "tree": "9eb81d2bee5bf63a796ae4df0b9cf352b3f0360b",
      "parents": [
        "1b881ef77537f1077482f9946a6a99b4e2dd54b2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Dec 15 23:21:39 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:38 2011 +0100"
      },
      "message": "drbd: bitmap: don\u0027t count unused bits (fix non-terminating resync)\n\nWe trusted the on-disk bitmap to have unused bits cleared.\nIn case that is not true for whatever reason,\nand we take a code path where the unused bits don\u0027t get cleared\nelsewhere (bm_clear_surplus is not called), we may miscount the bits,\nand get confused during resync, waiting for bits to get cleared that we\ndon\u0027t even use: the resync process would not terminate.\n\nFix this by masking out unused bits in __bm_count_bits.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1b881ef77537f1077482f9946a6a99b4e2dd54b2",
      "tree": "70edbe85f61fe74f1038b58997c3750af354b898",
      "parents": [
        "24dccabb390412d04435e11cfb535df51def7b2d"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Mon Dec 13 18:03:38 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:37 2011 +0100"
      },
      "message": "drbd: Rename __inc_ap_bio_cond to may_inc_ap_bio\n\nThe old name is confusing: the function does not increment anything.\nAlso rename _inc_ap_bio_cond to inc_ap_bio_cond: there is no need for\nan underscore.\nFinally, make it clear that these functions return boolean values.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "24dccabb390412d04435e11cfb535df51def7b2d",
      "tree": "ab418eebdb9040302bf06a6d608f722dd3188ebe",
      "parents": [
        "2c46407d241f4b0e5b87959aae8f50f41fdd2a3a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Sun Dec 12 17:45:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:35 2011 +0100"
      },
      "message": "drbd: Fix: drbd_bitmap_io does not return an enum determine_dev_size\n\nI guess bitmap I/O errors are supposed to cause drbd_determin_dev_size\nto return dev_size_error.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2c46407d241f4b0e5b87959aae8f50f41fdd2a3a",
      "tree": "ea596a353a89095993f666e6b9ecf9d15392bd11",
      "parents": [
        "f70af118e3f3638698ac08959a41b9f9fe7237c8"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Sat Dec 11 21:53:12 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:34 2011 +0100"
      },
      "message": "drbd: receive_bitmap_plain: Get rid of ugly and useless enum\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f70af118e3f3638698ac08959a41b9f9fe7237c8",
      "tree": "d77e797811b0b27fa19254127b60de3f67d2ed47",
      "parents": [
        "78fcbdae224469cb48767fa29ca41f1d5890e57c"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Sat Dec 11 18:51:50 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:32 2011 +0100"
      },
      "message": "drbd: send_bitmap_rle_or_plain: Get rid of ugly and useless enum\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "78fcbdae224469cb48767fa29ca41f1d5890e57c",
      "tree": "3605a86116e0e671988e2094f21bbe4a6e33418c",
      "parents": [
        "de1f8e4a0af3c2d0dff9f6341fead4b509941282"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 22:18:27 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:30 2011 +0100"
      },
      "message": "drbd: receive_bitmap: Missing free_page() 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": "de1f8e4a0af3c2d0dff9f6341fead4b509941282",
      "tree": "e8bbbbdd18a11434c7608c9cf3ceaba0e3fe5ac2",
      "parents": [
        "4114be815f9811da42a21dc2f7ff552833660595"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 21:04:00 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:29 2011 +0100"
      },
      "message": "drbd: receive_bitmap: Avoid casting enum drbd_state_rv to int\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4114be815f9811da42a21dc2f7ff552833660595",
      "tree": "f9f8effcb281ed9c7f03c8b6d35caec7f739a985",
      "parents": [
        "f2024e7ce29f4287395ce879364cd68c7ac226f2"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 17:09:10 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:27 2011 +0100"
      },
      "message": "drbd: receive_bitmap: Fix the wrong return value\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f2024e7ce29f4287395ce879364cd68c7ac226f2",
      "tree": "214dbd12fce34f623b1b06f06ed5d81640297b58",
      "parents": [
        "81e84650c200de0695372461964dd960365696db"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 13:44:05 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:26 2011 +0100"
      },
      "message": "drbd: drbd_nl_disk_conf: Avoid a compiler warning\n\nWarning: comparison between ‘enum drbd_ret_code’ and ‘enum drbd_state_rv’\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "81e84650c200de0695372461964dd960365696db",
      "tree": "c57e51e8c1f540321fd6e8d43c304a95f7fa5ebe",
      "parents": [
        "6184ea2145609b4ad63b141bf1f8124135ff4949"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 15:03:57 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:24 2011 +0100"
      },
      "message": "drbd: Use the standard bool, true, and false keywords\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6184ea2145609b4ad63b141bf1f8124135ff4949",
      "tree": "2141b705c93c301cd496480179d9a5bb1193877c",
      "parents": [
        "bb4379464efeb4624757e2cc0bf9207a309c1075"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 14:23:27 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:22 2011 +0100"
      },
      "message": "drbd: This code is dead now\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bb4379464efeb4624757e2cc0bf9207a309c1075",
      "tree": "0bbfa3e4da63315d2a1fe7b2709844716fcc7303",
      "parents": [
        "bf885f8a6772fb48409dd505a09d974a5e621f22"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 14:02:35 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:21 2011 +0100"
      },
      "message": "drbd: Another small enum drbd_state_rv cleanup\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bf885f8a6772fb48409dd505a09d974a5e621f22",
      "tree": "28205a11a192a14192bac3f8487b444e6d533955",
      "parents": [
        "c8b325632f0e5ffdaeca3d1f3be77c9399316a40"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 00:39:32 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:19 2011 +0100"
      },
      "message": "drbd: Be more explicit about functions that return an enum drbd_state_rv\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c8b325632f0e5ffdaeca3d1f3be77c9399316a40",
      "tree": "3b86d7a6a9b180e05a78c89d9a83ca1b93aa5cbe",
      "parents": [
        "116676ca621a862a8124969772f4dd61c8b40eee"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 01:06:16 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:18 2011 +0100"
      },
      "message": "drbd: Rename enum drbd_state_ret_codes to enum drbd_state_rv\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "116676ca621a862a8124969772f4dd61c8b40eee",
      "tree": "f02da6846ac3726f800fe80cc08a5f6da396c6a9",
      "parents": [
        "0cf9d27e38447efe5e5edce155a66a782a5aac4a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 13:33:11 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:16 2011 +0100"
      },
      "message": "drbd: Rename enum drbd_ret_codes to enum drbd_ret_code\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0cf9d27e38447efe5e5edce155a66a782a5aac4a",
      "tree": "995f0581eacec75533f6b8918ecd43cfb510c1f5",
      "parents": [
        "662d91a23a8e8451ca47c08d5cff710fd080fd3a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Tue Dec 07 10:43:29 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:15 2011 +0100"
      },
      "message": "drbd: Get rid of unnecessary macros (2)\n\nThe FAULT_ACTIVE macro just wraps the drbd_insert_fault macro for no\napparent reason.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "662d91a23a8e8451ca47c08d5cff710fd080fd3a",
      "tree": "7b6eadb2857f8aa109ffc4e638a0866e33e42946",
      "parents": [
        "2f58dcfc85b6800efd938f755e6c5f9979f4aa5c"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Tue Dec 07 03:01:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:13 2011 +0100"
      },
      "message": "drbd: Get rid of unnecessary macros (1)\n\nThis macro doesn\u0027t save much code, but makes things a lot harder to read.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2f58dcfc85b6800efd938f755e6c5f9979f4aa5c",
      "tree": "f8d9fff58a1ae7640b26e8ec323aa9a9e4f818b0",
      "parents": [
        "96756784a6250c7d9878671ef3386b93b0c576d4"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Mon Dec 13 17:48:19 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:11 2011 +0100"
      },
      "message": "drbd: Rename drbd_make_request_26 to drbd_make_request\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "96756784a6250c7d9878671ef3386b93b0c576d4",
      "tree": "57cd3f726340abd82eabe23bf96d2cf756c153ad",
      "parents": [
        "cab2f74b45127a78b9a2980f54ca16cc9f45ddac"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 16:23:43 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:10 2011 +0100"
      },
      "message": "drbd: Remove left-over prototype\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cab2f74b45127a78b9a2980f54ca16cc9f45ddac",
      "tree": "ce7986dca4c4512251e576db9c0e08e5409fcd8b",
      "parents": [
        "220df4d006ed561b8fd4fbd8c01c6c28d6143653"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 16:08:46 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:08 2011 +0100"
      },
      "message": "drbd: Make sure that drbd_send() has sent the right number of bytes\n\nReviewed-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "220df4d006ed561b8fd4fbd8c01c6c28d6143653",
      "tree": "fa65f11c9276138c1dd2cc345389b9cb1bddf827",
      "parents": [
        "7e458c32da946bd4f6aea476b61b79575578f834"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 09 15:21:02 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:02 2011 +0100"
      },
      "message": "drbd: fix incomplete error message\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7e458c32da946bd4f6aea476b61b79575578f834",
      "tree": "62f686be3528fcb58668b54c9ce6dbbf54dce70b",
      "parents": [
        "8a3c104438be4986a77f332009b695fcac48f620"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 19:02:09 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:22 2011 +0100"
      },
      "message": "drbd: Removed an unnecessary #undef\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8a3c104438be4986a77f332009b695fcac48f620",
      "tree": "5f659c3125cb4dd901bfb15532c3ac051f94c8cc",
      "parents": [
        "09b9e7979378fe070784de20e50bb1d42aa643ab"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sun Dec 05 14:11:14 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:20 2011 +0100"
      },
      "message": "drbd: fix regression, we need to close drbd epochs during normal operation\n\ncommit e2041475e6ddb081734d161f6421977323f5a9b9\ndrbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap\n\nContained a bad chunk that tried to optimize away drbd barriers during\nbitmap exchange, but accidentally dropped them for normal mode as well.\n\nImpact: depending on activity log size and access pattern, activity log\nextents may not be recycled in time, causeing IO to block indefinetely.\n\nFix: skip drbd barriers only if there is no connection to send them on,\nor the request being completed has not been on the network at all.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "09b9e7979378fe070784de20e50bb1d42aa643ab",
      "tree": "b0326f36388850085d7c4c08bcb429b0ec95a913",
      "parents": [
        "2561b9c1f1d63077c41903fc6ad58dc9ec47248b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Dec 03 16:04:24 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:18 2011 +0100"
      },
      "message": "drbd: Implemented the before-resync-source handler\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2561b9c1f1d63077c41903fc6ad58dc9ec47248b",
      "tree": "79f4148dce59a9f696e680d70151312721f296cf",
      "parents": [
        "42ff269d1022a86be4f526cf674998c47b7ab856"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Dec 03 15:22:48 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:17 2011 +0100"
      },
      "message": "drbd: --force option for disconnect\n\nAs the network connection can be lost at any time, a --force option\nfor disconnect is just a matter of completeness.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "42ff269d1022a86be4f526cf674998c47b7ab856",
      "tree": "d392b05fd0c626093b552232b26b60d21afa4d26",
      "parents": [
        "3e3a7766c2e6995ac98e7855017abc3544d54e08"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 24 10:11:14 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:15 2011 +0100"
      },
      "message": "drbd: add packet_type 27 (return_code_only) to netlink api\n\nIn case we ever should add an other packet type,\nwe must not reuse 27, as that currently used for\n\"empty\" return code only replies.\nDocument it as such.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3e3a7766c2e6995ac98e7855017abc3544d54e08",
      "tree": "943c9d62c89764f1070a8a4067a3bd0d4e9de162",
      "parents": [
        "17a93f3007c13003c739a19d0814cb5c2d21daba"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 24 10:41:45 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:14 2011 +0100"
      },
      "message": "drbd: use kzalloc and memset(,0,) to start with clean buffers in drbd_nl\n\nMake sure we start with clean buffers to not accidentally send garbage\nback to userspace. Note: has not been observed; but just in case.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "17a93f3007c13003c739a19d0814cb5c2d21daba",
      "tree": "a3b6bd04eeecc0da14f20e6766495b3b06e7ce57",
      "parents": [
        "3da127fa887e5187ede702b835770634d705f8b2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 24 10:37:35 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:12 2011 +0100"
      },
      "message": "drbd: remove /proc/drbd before unregistering from netlink\n\nThere still exists a (theoretical) race on module unload, where\n/proc/drbd may still exist, but the netlink callback has been\nunregistered already, allowing drbdsetup to shout without listeners,\nand get no reply.\n\nReorder remove_proc_entry and unregister of netlink callback.\ndrbdsetup first checks for existence of the proc entry,\nand if that is missing, won\u0027t even try to contact the module.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3da127fa887e5187ede702b835770634d705f8b2",
      "tree": "8bd46caed3ed01c192d99117819d314f838e42cd",
      "parents": [
        "c507f46f26661d4d0dc95a1b1271df5855ab4602"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 24 10:33:02 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:11 2011 +0100"
      },
      "message": "drbd: increase module count on /proc/drbd access\n\nIf someone holds /proc/drbd open, previously rmmod would\n\"succeed\" in starting the unload, but then block on remove_proc_entry,\nleading to a situation where the lsmod does not show drbd anymore,\nbut /proc/drbd being still there (but no longer accessible).\n\nI\u0027d rather have rmmod fail up front in this case.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c507f46f26661d4d0dc95a1b1271df5855ab4602",
      "tree": "cc83852cc713536229e115030f0892fef97883cf",
      "parents": [
        "1fc80cf37810d6b00cac27a219b8ecab2010adac"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Nov 22 15:49:17 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:09 2011 +0100"
      },
      "message": "drbd: Removed 20 seconds upper bound for side-stepping\n\nGiven low-enough network bandwidth combined with a IO\npattern that hammers onto a single RS-extent, side-stepping\nmight be necessary for much longer times.\n\nChanged the code to print a single informal message after\n20 seconds, but it keeps on stepping aside forever.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1fc80cf37810d6b00cac27a219b8ecab2010adac",
      "tree": "9d844dcb200a49f3bb94f66238278e4827537d99",
      "parents": [
        "3719094ec2dec411b3151f10048316d787e086f9"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Nov 22 14:18:47 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:07 2011 +0100"
      },
      "message": "drbd: Becoming sync target may not happen out of \u003c C_WF_REPORT_PARAMS\n\nThis patch is acutally a necessary addendum to the patch\n\"fix for spurious full sync (becoming sync target looked like invalidate)\"\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3719094ec2dec411b3151f10048316d787e086f9",
      "tree": "4be7bd2bb31612e8210665b9e20985de7deb30e4",
      "parents": [
        "ab17b68f4579b460753a416b0afc4446381d876f"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Nov 10 12:08:37 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:06 2011 +0100"
      },
      "message": "drbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap\n\n* C_STARTING_SYNC_S, C_STARTING_SYNC_T In these states the bitmap gets\n  written to disk. Locking out of app-IO is done by using the\n  drbd_queue_bitmap_io() and drbd_bitmap_io() functions these days.\n  It is no longer necessary to lock out app-IO based on the connection\n  state.\n  App-IO that may come in after the BITMAP_IO flag got cleared before the\n  state transition to C_SYNC_(SOURCE|TARGET) does not get mirrored, sets\n  a bit in the local bitmap, that is already set, therefore changes nothing.\n\n* C_WF_BITMAP_S In this state we send updates (P_OUT_OF_SYNC packets).\n  With that we make sure they have the same number of bits when going\n  into the C_SYNC_(SOURCE|TARGET) connection state.\n\n* C_UNCONNECTED: The receiver starts, no need to lock out IO.\n\n* C_DISCONNECTING: in drbd_disconnect() we had a wait_event()\n  to wait until ap_bio_cnt reaches 0. Removed that.\n\n* C_TIMEOUT, C_BROKEN_PIPE, C_NETWORK_FAILURE\n  C_PROTOCOL_ERROR, C_TEAR_DOWN: Same as C_DISCONNECTING\n\n* C_WF_REPORT_PARAMS: IO still possible since that is still\n  like C_WF_CONNECTION.\n\nAnd we do not need to send barriers in C_WF_BITMAP_S connection state.\n\nAllow concurrent accesses to the bitmap when receiving the bitmap.\nEverything gets ORed anyways.\n\nA drbd_free_tl_hash() is in after_state_chg_work(). At that point\nall the work items of the last connections must have been processed.\n\nIntroduced a call to drbd_free_tl_hash() into drbd_free_mdev()\nfor paranoia reasons.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ab17b68f4579b460753a416b0afc4446381d876f",
      "tree": "78c88ce883d2c1e721171611f0899b159b24f290",
      "parents": [
        "22afd7ee94c1c5857323b677267ba8bace09bcef"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Nov 17 16:54:36 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:04 2011 +0100"
      },
      "message": "drbd: Improvements in sanitize_state()\n\nThe relevant change is that the state change to C_FW_BITMAP_S should\nimplicitly change pdsk to C_CONSISTENT. (Think of it as C_OUTDATED, only\nwithout the guarantee that the peer has the outdated written to its\nmeta data)\n\nAt that opportunity I restructured the switch statement so that it\ngets evaluated every time. (Has declarative character)\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "22afd7ee94c1c5857323b677267ba8bace09bcef",
      "tree": "4c704ede7399dfdd8bfba9dd7af0518a5cdeb691",
      "parents": [
        "8869d683b7491467fd39fcbe79756fce3e6f35e7"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Nov 16 15:30:44 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:03 2011 +0100"
      },
      "message": "drbd: Fixed race condition in drbd_queue_bitmap_io\n\nMay only test for ap_bio_cnt \u003d\u003d 0 under req_lock. It can increase\nonly under req_lock.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8869d683b7491467fd39fcbe79756fce3e6f35e7",
      "tree": "b8634a30967f36ff34f4de8ecf38eb96997f5f28",
      "parents": [
        "127b317844e7cc0458743b604998bece95eab030"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Nov 17 18:24:19 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:01 2011 +0100"
      },
      "message": "drbd: Fixed inc_ap_bio()\n\nThe condition must be checked after perpare_to_wait(). The old\nimplementaion could loose wakeup events. Never observed in real\nlife.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "127b317844e7cc0458743b604998bece95eab030",
      "tree": "305a594fc498e9a2702fcf2a8a660b44ab241ab2",
      "parents": [
        "aeda1cd6a58009ef21b6d9c09b1a3ded726c2d10"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Nov 16 10:07:53 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:59 2011 +0100"
      },
      "message": "drbd: use test_and_set_bit() to decide if bm_io_work should be queued\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "aeda1cd6a58009ef21b6d9c09b1a3ded726c2d10",
      "tree": "bfe98db19ead95ce7021798b80299fe1942db42d",
      "parents": [
        "f91ab6282df251d28aa4ad1bd85194ebe0a0115b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Nov 09 17:45:06 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:57 2011 +0100"
      },
      "message": "drbd: Begin to account BIO processing time before inc_ap_bio()\n\nSince inc_ap_bio() might sleep already\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f91ab6282df251d28aa4ad1bd85194ebe0a0115b",
      "tree": "1c696b201c9eaea365e8d80bb3956827a0a880e7",
      "parents": [
        "9d77a5fee9d2a1ea4cd9a841d27b107df5913b33"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Nov 09 13:59:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:56 2011 +0100"
      },
      "message": "drbd: Implemented side-stepping in drbd_res_begin_io()\n\nBefore:\n  drbd_rs_begin_io() locked app-IO out of an RS extent, and\n  waited then until all previous app-IO in that area finished.\n  (But not only until the disk-IO was finished but until the\n   barrier/epoch ack came in for that \u003d\u003d round trip time latency ++)\n\nAfter:\n  As soon as a new app-IO waits wants to start new IO on that\n  RS extent, drbd_rs_begin_io() steps aside (clearing the\n  BME_NO_WRITES flag again). It retries after 100ms.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "9d77a5fee9d2a1ea4cd9a841d27b107df5913b33",
      "tree": "0814d5b3a16adf838783065855755909dea80504",
      "parents": [
        "e3555d8545976703938d1b59e2db509426dbe02c"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sun Nov 07 18:02:56 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:54 2011 +0100"
      },
      "message": "drbd: Make some functions static\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e3555d8545976703938d1b59e2db509426dbe02c",
      "tree": "a29b15c4ab07b51bf6e162ae68796c50718778aa",
      "parents": [
        "59817f4fab6a165ba83ce399464ba38432db8233"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sun Nov 07 15:56:29 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:53 2011 +0100"
      },
      "message": "drbd: Implemented priority inheritance for resync requests\n\nWe only issue resync requests if there is no significant application IO\ngoing on. \u003d Application IO has higher priority than resnyc IO.\n\nIf application IO can not be started because the resync process locked\nan resync_lru entry, start the IO operations necessary to release the\nlock ASAP.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "59817f4fab6a165ba83ce399464ba38432db8233",
      "tree": "2016cbf3e1e33ee2e433f0ae762513ff6697d24e",
      "parents": [
        "c4752ef1284519c3baa1c3b19df34a80b4905245"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 29 12:44:20 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:51 2011 +0100"
      },
      "message": "drbd: Do not cleanup resync LRU for the Ahead/Behind SyncSource/SyncTarget transitions\n\nThis one should be replaced with moving this cleanup to the\n\u0027right\u0027 position.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c4752ef1284519c3baa1c3b19df34a80b4905245",
      "tree": "60585a6a3ad1ff8165e6921f348eb17701b39732",
      "parents": [
        "73a01a18b9c28a0fab1131ece5b0a9bc00a879b8"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Oct 27 17:32:36 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:49 2011 +0100"
      },
      "message": "drbd: When proxy\u0027s buffer drained off go into regular resync mode\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "73a01a18b9c28a0fab1131ece5b0a9bc00a879b8",
      "tree": "36ed1ea31bd18def918717906a58355a77b39cba",
      "parents": [
        "67531718d8f1259f01ab84c2aa25f7b03c7afd46"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Oct 27 14:33:00 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:48 2011 +0100"
      },
      "message": "drbd: New packet for Ahead/Behind mode: P_OUT_OF_SYNC\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "67531718d8f1259f01ab84c2aa25f7b03c7afd46",
      "tree": "6f76323440f8ce3793b5d5f1a19808207f38db5b",
      "parents": [
        "422028b1ca4c07995af82a18abced022ff4c296c"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Oct 27 12:21:30 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:46 2011 +0100"
      },
      "message": "drbd: Implemented two new connection states Ahead/Behind\n\nIn this connection mode, the ahead node no longer replicates\napplication IO. The behind\u0027s disk becomes out dated.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "422028b1ca4c07995af82a18abced022ff4c296c",
      "tree": "87583c3aab3d8b39c5210de800d5eae79941dc25",
      "parents": [
        "759fbdfba66e620aceb3e73167e6003d1b8b0b0b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Oct 27 11:12:07 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:45 2011 +0100"
      },
      "message": "drbd: New configuration parameters for dealing with network congestion\n\nnet {\n    on_congestion {block|pull-ahead|disconnect};\n    congestion-fill {sectors};\n    congestion-extents {al-extents};\n}\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    }
  ],
  "next": "759fbdfba66e620aceb3e73167e6003d1b8b0b0b"
}
