)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "759fbdfba66e620aceb3e73167e6003d1b8b0b0b",
      "tree": "34080a67cfdee2c0a2000126622bf65d4a7e0936",
      "parents": [
        "688593c5a82068aea64df0b836793dfbbaa646d7"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Oct 26 16:02:27 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:43 2011 +0100"
      },
      "message": "drbd: Track the numbers of sectors in flight\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "688593c5a82068aea64df0b836793dfbbaa646d7",
      "tree": "013ddc67a52c794d5e3b595bd982cb71cf9029f5",
      "parents": [
        "4896e8c1b8fb7e46a65a6676e271fc047a260a3e"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 17 22:25:03 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:34:32 2011 +0100"
      },
      "message": "drbd: Renamed write_flags_to_bio() to wire_flags_to_bio()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4896e8c1b8fb7e46a65a6676e271fc047a260a3e",
      "tree": "ac06646292c04907e9cca866a2d8d81b7a92fa83",
      "parents": [
        "1816a2b47afae838e53a177d5d166cc7be97d6b5"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Nov 11 22:41:04 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:13 2011 +0100"
      },
      "message": "drbd: restore compatibility with 32bit kernels\n\nWith commit\ndrbd: further converge progress display of resync and online-verify\naccidentally an u64/u64 div was introduced, causing an unresolvable\nsymbol __udivdi3 to be reference. Actually for that division, 32bit are\nstill suficient for now, so we can revert to unsigned long instead.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1816a2b47afae838e53a177d5d166cc7be97d6b5",
      "tree": "70d4e3c8aca3ab26af6ebe84ed23b0ba4d4d67e9",
      "parents": [
        "3129b1b9aed15bbebde1b2a5719434273feb295d"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Nov 11 15:19:07 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:11 2011 +0100"
      },
      "message": "drbd: properly use max_hw_sectors to limit the our bio size\n\nTo ease tracking of bios in some hash tables, we want it to\nnot cross certain boundaries (128k, used to be 32k).\nWe limit the maximum bio size using queue parameters.\n\nHistorically some defines and variables we use there have been named\nmax_segment_size, which was misguided. Rename them to max_bio_size,\nand use [blk_]queue_max_hw_sectors where appropriate.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3129b1b9aed15bbebde1b2a5719434273feb295d",
      "tree": "1a9242e43ae853c6af2c20278d814d0138eb9f37",
      "parents": [
        "470be44ab1841f3261a4d758450a42e6b79e9551"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Nov 11 10:47:05 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:09 2011 +0100"
      },
      "message": "drbd: debug: limit nelink-broadcast of request on digest mismatch to 32k\n\nWe used to be limited to 32k requests,\nbut have increased that limit to 128k now.\n\nThis part of the code can only deal with 32k,\nit would scramble arbitrary pages for larger requests.\n\nAs it is used for debugging only anyways,\nit is ok to simply truncate the dumped data here.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "470be44ab1841f3261a4d758450a42e6b79e9551",
      "tree": "1e6532855e065408b6e838bd27fe36629fb18487",
      "parents": [
        "5f9915bbb8e0975ce99f893c29b8e89100b33399"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Nov 10 10:36:52 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:08 2011 +0100"
      },
      "message": "drbd: detect modification of in-flight buffers\n\nWith data-integrity digest enabled, double-check on the sending side\nfor modifications by upper layers of buffers under write back,\nso we can tell it appart from corruption on the \"wire\".\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5f9915bbb8e0975ce99f893c29b8e89100b33399",
      "tree": "70606e132030ad46414d9e2d658b748cdaa70ae9",
      "parents": [
        "18edc0b9d7dac2f74117a0bdb98f2e705eb74d82"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Nov 09 14:15:24 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:06 2011 +0100"
      },
      "message": "drbd: further converge progress display of resync and online-verify\n\nShow progressbar and ETA always, with proc_details \u003e\u003d 1 also show the\ncurrent sector position for both resync and online-verify on both nodes.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "18edc0b9d7dac2f74117a0bdb98f2e705eb74d82",
      "tree": "046016ff1349564bbd77d94212e4689bd0af5390",
      "parents": [
        "2649f0809f55e4df98c333a2b85c6fc8fee04804"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Nov 09 14:12:10 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:04 2011 +0100"
      },
      "message": "drbd: fix potential wrap of 32bit oos:%lu display in /proc/drbd\n\nWhen converting bits (4k resolution, still) to kB, we shift left.  If it\nwas a large number of bits on a 32bit box (\u003e\u003d 4 TiB storage), we may\nwrap the 32bit unsigned long base type, resulting in incorrect display.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2649f0809f55e4df98c333a2b85c6fc8fee04804",
      "tree": "b275b9af4122fe84965d754b27615c71c8a13a60",
      "parents": [
        "e65f440d474d7d6a6fd8a2c844e851d8c96ed9c5"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 10:05:47 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:03 2011 +0100"
      },
      "message": "drbd: use the resync controller for online-verify requests as well\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e65f440d474d7d6a6fd8a2c844e851d8c96ed9c5",
      "tree": "92fb1b9fea75ac13154dbc844a4153ea6d07ab30",
      "parents": [
        "9bd28d3c90c80c7ec46085de281b38f67331da41"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 10:04:07 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:19:01 2011 +0100"
      },
      "message": "drbd: factor out drbd_rs_number_requests\n\nPreparation patch to be able to use the auto-throttling resync controller\nfor online-verify requests as well.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "9bd28d3c90c80c7ec46085de281b38f67331da41",
      "tree": "92bfb9ec78eaea619888811903ccc2512521c6de",
      "parents": [
        "439d595379f87ec95249da21122eb085866f8ba9"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:55:18 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:59 2011 +0100"
      },
      "message": "drbd: factor out drbd_rs_controller_reset\n\nPreparation patch to be able to use the auto-throttling resync controller\nfor online-verify requests as well.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "439d595379f87ec95249da21122eb085866f8ba9",
      "tree": "bcf189586472ec7b64a37a3494b704bedb7c5906",
      "parents": [
        "ea5442aff68c559c951373739201721185191748"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:52:46 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:58 2011 +0100"
      },
      "message": "drbd: show progress bar and ETA for online-verify\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ea5442aff68c559c951373739201721185191748",
      "tree": "4303cbd866aa4e0541b6ef31fe711bd006f11922",
      "parents": [
        "c6ea14dfa391da58e309d0d5041564b3d9dbb82f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:48:01 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:56 2011 +0100"
      },
      "message": "drbd: advance progress step marks for online-verify\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c6ea14dfa391da58e309d0d5041564b3d9dbb82f",
      "tree": "696ba5368e640f4b2ab45180e70b0bbd20afb5b9",
      "parents": [
        "de228bba676e1f76e5e5f9444e51bb2db003cefb"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:23:37 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:54 2011 +0100"
      },
      "message": "drbd: factor out advancement of resync marks for progress reporting\n\nThis is in preparation to unify progress reporting of\nonline-verify and resync requests.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "de228bba676e1f76e5e5f9444e51bb2db003cefb",
      "tree": "9e1abb90caa63c71855343aef1861e04712e2bc4",
      "parents": [
        "30b743a2d532af39c9ed13c85d5473f6f620f6c8"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:43:15 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:53 2011 +0100"
      },
      "message": "drbd: initialize online-verify progress tracking on verify target\n\nFor partial (resumed) online verify, initialize the resync step marks\nonce we know what the online verify start sector is.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "30b743a2d532af39c9ed13c85d5473f6f620f6c8",
      "tree": "9c995b292e463320003aa8d4a3a502ddc3a09d00",
      "parents": [
        "26525618863afcc4aab8b2a83451d37c6f513460"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:39:06 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:51 2011 +0100"
      },
      "message": "drbd: improve online-verify progress tracking\n\nFor a partial (resumed) online-verify, initialize rs_total not to total\nbits, but to number of bits to check in this run, to match the meaning\nrs_total has for actual resync.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "26525618863afcc4aab8b2a83451d37c6f513460",
      "tree": "71a0d52eb8bc30a5abe61bd58098a19fce83658f",
      "parents": [
        "4c63f5646e405b5010cc9499419060bf2e838f5b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Nov 05 09:56:33 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:18:49 2011 +0100"
      },
      "message": "drbd: only reset online-verify start sector if verify completed\n\nFor network hickups during online-verify, on the next verify\ntriggered, we by default want to resume where it left off.\n\nAfter any replication link interruption, there will be a (possibly\nempty) resync.  Do not reset online-verify start sector if some resync\ncompleted, that would defeats the purpose.\n\nOnly reset the start sector once a verify run is completed.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "69d60eb96ae8a73cf9b79cf28051caf973006011",
      "tree": "254be7302abbd6a21d4f54cfdad6a0af6db282d0",
      "parents": [
        "721a9602e6607417c6bc15b18e97a2f35266c690"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Mar 09 08:27:37 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "blk-throttle: Use blk_plug in throttle dispatch\n\nUse plug in throttle dispatch also as we are dispatching a bunch of\nbios in throttle context and some of them might merge.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    }
  ],
  "next": "cf15900e1209d5b46ec2d24643adbf561830935f"
}
