)]}'
{
  "log": [
    {
      "commit": "7b28afe01ab6ffb5f152f47831b44933facd2328",
      "tree": "a537d78f49fa1b959c9a453f459c1acd767a939f",
      "parents": [
        "726e99ab88db059fe1422e15376ae404f8c66eb4",
        "86e1e98e5c6b4edab97e2b058466ef553cfd878e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 30 10:10:50 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 30 10:10:50 2011 +0200"
      },
      "message": "Merge branch \u0027for-3.0-important\u0027 of git://git.drbd.org/linux-2.6-drbd into for-linus\n"
    },
    {
      "commit": "86e1e98e5c6b4edab97e2b058466ef553cfd878e",
      "tree": "e8b26c03a90edaf5214a094d3dcb1b223041b862",
      "parents": [
        "15b493d11fcce3c5547e3d7fb6d90e11ffe12777"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jun 28 13:22:48 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:46 2011 +0200"
      },
      "message": "drbd: we should write meta data updates with FLUSH FUA\n\nWe used to write these with BIO_RW_BARRIER aka REQ_HARDBARRIER (unless\ndisabled in the configuration). The correct semantic now would be to\nwrite with FLUSH/FUA.\nFor example, with activity log transactions, FUA alone is not enough, we\nneed the corresponding bitmap update (and all related application\nupdates) on stable storage as well.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cb6518cbef5e3e36b7ae90fcab610a52ea7e9fc0",
      "tree": "1eb6576ba34d7a731eeea5dab58c96905a142be2",
      "parents": [
        "5a8b424276f7ba50c51e7caf485b2be23739e5b8"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jun 20 14:44:45 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:44 2011 +0200"
      },
      "message": "drbd: when receive times out on meta socket, also check last receive time on data socket\n\nIf we have an asymetrically congested network, we may send P_PING,\nbut due to congestion, the corresponding P_PING_ACK would time out,\nand we would drop a (congested, but otherwise) healthy connection\n(\"PingAck did not arrive in time.\")\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5a8b424276f7ba50c51e7caf485b2be23739e5b8",
      "tree": "001a7250e631db20a5bc3d9fd667dc8a817d9c1f",
      "parents": [
        "8ccee20e3ef4e12dbf02a18f17d386569b1f73ee"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jun 14 14:18:23 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:43 2011 +0200"
      },
      "message": "drbd: account bitmap IO during resync as resync-(related-)-io\n\nIf we have a good resync rate, we will frequently update the on-disk\nbitmap, which, if not accounted for as resync io, may let an otherwise\nidle device appear to be \"busy\", and cause us to throttle resync.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8ccee20e3ef4e12dbf02a18f17d386569b1f73ee",
      "tree": "a725b7844412c1cf9079e46ce779d33338ae1d67",
      "parents": [
        "829c60878626be290a4c248e8f1b86a0d5cbd38b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jun 06 11:31:42 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:42 2011 +0200"
      },
      "message": "drbd: don\u0027t cond_resched_lock with IRQs disabled\n\nThe last commit, drbd: add missing spinlock to bitmap receive,\nintroduced a cond_resched_lock(), where the lock in question is taken\nwith irqs disabled.\n\nAs we must not schedule with IRQs disabled,\nand cond_resched_lock_irq() does not exist, yet,\nwe re-aquire the spin_lock_irq() for each bitmap page processed in turn.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "829c60878626be290a4c248e8f1b86a0d5cbd38b",
      "tree": "3774c1a3abb72bcc5ab0b37a23fdd9727ca188e4",
      "parents": [
        "0cfdd247d1779d5ffc8f685b172a526ecdc6773f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jun 03 21:18:13 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:41 2011 +0200"
      },
      "message": "drbd: add missing spinlock to bitmap receive\n\nDuring bitmap exchange, when using the RLE bitmap compression scheme,\nwe have a code path that can set the whole bitmap at once.\n\nTo avoid holding spin_lock_irq() for too long, we used to lock out other\nbitmap modifications during bitmap exchange by other means, and then,\nknowing we have exclusive access to the bitmap, modify it without\nthe spinlock, and with IRQs enabled.\n\nSince we now allow local IO to continue, potentially setting additional\nbits during the bitmap receive phase, this is no longer true, and we get\nuncoordinated updates of bitmap members, causing bm_set to no longer\naccurately reflect the total number of set bits.\n\nTo actually see this, you\u0027d need to have a large bitmap, use RLE bitmap\ncompression, and have busy IO during sync handshake and bitmap exchange.\n\nFix this by taking the spin_lock_irq() in this code path as well, but\ncalling cond_resched_lock() after each page worth of bits processed.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0cfdd247d1779d5ffc8f685b172a526ecdc6773f",
      "tree": "affca52cde37dde016424d5c17679464f855f7ae",
      "parents": [
        "a1c15c59feee36267c43142a41152fbf7402afb6"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 25 11:14:35 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 30 09:23:40 2011 +0200"
      },
      "message": "drbd: Use the correct max_bio_size when creating resync requests\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "929cfdd5d3bdc772aff32e5a3fb4e3894394aa75",
      "tree": "f67202d079eaf1f8d65b2e1bfac70b768ae34bc4",
      "parents": [
        "798ce8f1cca29dcc3f4b55947f611f4ffb32ac2b",
        "a1c15c59feee36267c43142a41152fbf7402afb6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 09:15:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 09:15:35 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.40/drivers\u0027 of git://git.kernel.dk/linux-2.6-block: (110 commits)\n  loop: handle on-demand devices correctly\n  loop: limit \u0027max_part\u0027 module param to DISK_MAX_PARTS\n  drbd: fix warning\n  drbd: fix warning\n  drbd: Fix spelling\n  drbd: fix schedule in atomic\n  drbd: Take a more conservative approach when deciding max_bio_size\n  drbd: Fixed state transitions after async outdate-peer-handler returned\n  drbd: Disallow the peer_disk_state to be D_OUTDATED while connected\n  drbd: Fix for the connection problems on high latency links\n  drbd: fix potential activity log refcount imbalance in error path\n  drbd: Only downgrade the disk state in case of disk failures\n  drbd: fix disconnect/reconnect loop, if ping-timeout \u003d\u003d ping-int\n  drbd: fix potential distributed deadlock\n  lru_cache.h: fix comments referring to ts_ instead of lc_\n  drbd: Fix for application IO with the on-io-error\u003dpass-on policy\n  xen/p2m: Add EXPORT_SYMBOL_GPL to the M2P override functions.\n  xen/p2m/m2p/gnttab: Support GNTMAP_host_map in the M2P override.\n  xen/blkback: don\u0027t fail empty barrier requests\n  xen/blkback: fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()\n  ...\n"
    },
    {
      "commit": "0ddf72be4edbd7640b57c13161f71416df16ec11",
      "tree": "5cef009715650da96a82f1b9d9afbd5843b5a105",
      "parents": [
        "9b2f61aec73dc9e735e247fd720c673b30999e7c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon May 23 15:29:32 2011 -0700"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:38:33 2011 +0200"
      },
      "message": "drbd: fix warning\n\nIn file included from drivers/block/drbd/drbd_main.c:54:                        drivers/block/drbd/drbd_int.h:1190: warning: parameter has incomplete type\n\nForward declarations of enums do not work.\n\nFix it unpleasantly by moving the prototype.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b2f61aec73dc9e735e247fd720c673b30999e7c",
      "tree": "7d82ad8dd932c5d6a047fbfecd49aa34e8ea15a2",
      "parents": [
        "24c4830c8ec3cbc904d84c213126a35f41a4e455"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:27:38 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:38:32 2011 +0200"
      },
      "message": "drbd: fix warning\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "24c4830c8ec3cbc904d84c213126a35f41a4e455",
      "tree": "3d232dd4e56ec477929a2537ef683b4f19528fb2",
      "parents": [
        "9a0d9d0389ef769e4b01abf50fcc11407706270b"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bvanassche@acm.org",
        "time": "Sat May 21 18:32:29 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:21:29 2011 +0200"
      },
      "message": "drbd: Fix spelling\n\nFound these with the help of ispell -l.\n\nSigned-off-by: Bart Van Assche \u003cbvanassche@acm.org\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "9a0d9d0389ef769e4b01abf50fcc11407706270b",
      "tree": "e766296ff1e684a0a081a6961ec664a4131faf74",
      "parents": [
        "99432fcc528d7a5ac8494a4c07ad4726670c96e2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon May 02 11:51:31 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:14:32 2011 +0200"
      },
      "message": "drbd: fix schedule in atomic\n\nAn administrative detach used to request a state change directly to D_DISKLESS,\nfirst suspending IO to avoid the last put_ldev() occuring from an endio handler,\npotentially in irq context.\n\nThis is not enough on the receiving side (typically secondary), we may miss\nsome peer_req on the way to local disk, which then may do the last put_ldev()\nfrom their drbd_peer_request_endio().\n\nThis patch makes the detach always go through the intermediate D_FAILED state.\nWe may consider to rename it D_DETACHING.\n\nAlternative approach would be to create yet an other work item to be scheduled\non the worker, do the destructor work from there, and get the timing right.\n\nmanually picked commit 564040f from the drbd 8.4 branch.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "99432fcc528d7a5ac8494a4c07ad4726670c96e2",
      "tree": "0b86df2b3e86af1eab14b987e81b7f4a5f88c090",
      "parents": [
        "21423fa79119a80e335de0c82ec29f67ed59f1bc"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri May 20 16:39:13 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:08:58 2011 +0200"
      },
      "message": "drbd: Take a more conservative approach when deciding max_bio_size\n\nThe old (optimistic) implementation could shrink the bio size\non an primary device.\n\nShrinking the bio size on a primary device is bad. Since there\nwe might get BIOs with the old (bigger) size shortly after\nwe published the new size.\n\nThe new implementation is more conservative, and eventually\nincreases the max_bio_size on a primary device (which is valid).\nIt does so, when it knows the local limit AND the remote limit.\n\n We cache the last seen max_bio_size of the peer in the meta\n data, and rely on that, to make the operation of single\n nodes more efficient.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "21423fa79119a80e335de0c82ec29f67ed59f1bc",
      "tree": "955e28d450d817d803f2504cb1b38b669c598cc9",
      "parents": [
        "fa7d939663b61f5c2bd3436d3aa126d4c0f47aa8"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 17 14:19:41 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:08:11 2011 +0200"
      },
      "message": "drbd: Fixed state transitions after async outdate-peer-handler returned\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fa7d939663b61f5c2bd3436d3aa126d4c0f47aa8",
      "tree": "2fa5264c72d2b5e8fa8414d1ba90217edc1a7731",
      "parents": [
        "a8e407925d49c521151dd24b6376c1f9a04a093f"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 17 14:48:55 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:07:50 2011 +0200"
      },
      "message": "drbd: Disallow the peer_disk_state to be D_OUTDATED while connected\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a8e407925d49c521151dd24b6376c1f9a04a093f",
      "tree": "9751821550b2f332f9937427874854f51a454352",
      "parents": [
        "76727f684aa2d6a2dc59a7e5cf77e092a1bf4fb6"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri May 13 12:03:55 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:07:22 2011 +0200"
      },
      "message": "drbd: Fix for the connection problems on high latency links\n\nIt seems that the real cause of all the issues where that\nwe did not noticed in drbd_try_connect() when the other\nguy closes one socket if the round trip time gets higher\nthan 100ms. There were that 100ms hard coded!\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "76727f684aa2d6a2dc59a7e5cf77e092a1bf4fb6",
      "tree": "59e80cf30c5cbf33f5179889025b8b0d7afdd970",
      "parents": [
        "d2e17807e3799bae24664a92f4d2d3dade021e00"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon May 16 15:31:45 2011 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:06:44 2011 +0200"
      },
      "message": "drbd: fix potential activity log refcount imbalance in error path\n\nIt is no longer sufficient to trigger on local WRITE,\nwe need to check on (rq_state \u0026 RQ_IN_ACT_LOG)\nbefore calling drbd_al_complete_io also in the error path.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d2e17807e3799bae24664a92f4d2d3dade021e00",
      "tree": "7e3abd6d91be6fac6d90b3d3adf21f8b1418736a",
      "parents": [
        "f36af18c7b4ea1ba333c09b606bb4a7e5af66b4d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Mar 14 11:54:47 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:05:48 2011 +0200"
      },
      "message": "drbd: Only downgrade the disk state in case of disk failures\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f36af18c7b4ea1ba333c09b606bb4a7e5af66b4d",
      "tree": "6983acfaa859fee028b2927f8f520a27e1785c4d",
      "parents": [
        "53ea433145d9a56c7ad5e69f21f5662053e00e84"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Mar 09 22:44:55 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:03:30 2011 +0200"
      },
      "message": "drbd: fix disconnect/reconnect loop, if ping-timeout \u003d\u003d ping-int\n\nIf there is no replication traffic within the idle timeout\n(ping-int seconds), DRBD will send a P_PING,\nand adjust the timeout to ping-timeout.\n\nIf there is no P_PING_ACK received within this ping-timeout,\nDRBD finally drops the connection, and tries to re-establish it.\n\nTo decide which timeout was active, we compared the current timeout\nwith the ping-timeout, and dropped the connection, if that was the case.\n\nBy default, ping-int is 10 seconds, ping-timeout is 500 ms.\n\nUnfortunately, if you configure ping-timeout to be the same as ping-int,\nexpiry of the idle-timeout had been mistaken for a missing ping ack,\nand caused an immediate reconnection attempt.\n\nFix:\nAllow both timeouts to be equal, use a local variable\nto store which timeout is active.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "53ea433145d9a56c7ad5e69f21f5662053e00e84",
      "tree": "fcd581287611f2ad2e169e50c34678192fb085b3",
      "parents": [
        "600942e0fdb7ed1565d056d7305c46c7c0544a3e"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Mar 08 17:11:40 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 10:02:41 2011 +0200"
      },
      "message": "drbd: fix potential distributed deadlock\n\nWe limit ourselves to a configurable maximum number of pages used as\ntemporary bio pages.\n\nIf the configured \"max_buffers\" is not big enough to match the bandwidth\nof the respective deployment, a distributed deadlock could be triggered\nby e.g. fast online verify and heavy application IO.\n\nTCP connections would block on congestion, because both receivers\nwould wait on pages to become available.\n\nFortunately the respective senders in this case would be able to give\nback some pages already. So do that.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "738a84b25cac5af94936e5a1b15cd9909212383c",
      "tree": "ebed88ad337d18ca5f0f29eb938894381c10311d",
      "parents": [
        "779d530632c98967820d3bbcae15d492fc20301e"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 03 00:21:30 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 24 09:59:49 2011 +0200"
      },
      "message": "drbd: Fix for application IO with the on-io-error\u003dpass-on policy\n\nIn case a write failes on the local disk, go into D_INCONSISTENT\ndisk state. That causes future reads of that block to be shipped\nto the peer.\n\nRead retry remote was already in place.\n\nActually the documentation needs to get fixed now. Since the\napplication is still shielded from the error. (as long as we have\nonly a single disk failing) The difference to detach is that\nwe keep the disk. And therefore might keep all the other, still\nworking sectors up to date.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "70c71606190e9115e5f8363bfcd164c582eb314a",
      "tree": "17c7f6b5df814b9ed319bc0d839969a0de741433",
      "parents": [
        "281dc5c5ec0fb299514567cbc358562649c1af95"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun May 22 16:47:17 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 22 21:41:57 2011 -0700"
      },
      "message": "Add appropriate \u003clinux/prefetch.h\u003e include for prefetch users\n\nAfter discovering that wide use of prefetch on modern CPUs\ncould be a net loss instead of a win, net drivers which were\nrelying on the implicit inclusion of prefetch.h via the list\nheaders showed up in the resulting cleanup fallout.  Give\nthem an explicit include via the following $0.02 script.\n\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #!/bin/bash\n MANUAL\u003d\"\"\n for i in `git grep -l \u0027prefetch(.*)\u0027 .` ; do\n \tgrep -q \u0027\u003clinux/prefetch.h\u003e\u0027 $i\n \tif [ $? \u003d 0 ] ; then\n \t\tcontinue\n \tfi\n\n \t(\techo \u0027?^#include \u003clinux/?a\u0027\n \t\techo \u0027#include \u003clinux/prefetch.h\u003e\u0027\n \t\techo .\n \t\techo w\n \t\techo q\n \t) | ed -s $i \u003e /dev/null 2\u003e\u00261\n \tif [ $? !\u003d 0 ]; then\n \t\techo $i needs manual fixup\n \t\tMANUAL\u003d\"$i $MANUAL\"\n \tfi\n done\n echo ------------------- 8\\\u003c----------------------\n echo vi $MANUAL\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Paul \u003cpaul.gortmaker@windriver.com\u003e\n[ Fixed up some incorrect #include placements, and added some\n  non-network drivers and the fib_trie.c case    - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "7e599e6e62759e057e902fcf9a05ba24f6155bcd",
      "tree": "c546d89105deaadfe961133fed6fd0b84f66ab6f",
      "parents": [
        "3a80e52486eff1221ece5902b423da59f263069d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 07:42:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 07:42:58 2011 -0700"
      },
      "message": "drbd: fix up merge error\n\nIn commit 95a0f10cddbf (\"drbd: store in-core bitmap little endian,\nregardless of architecture\") drbd had made the sane choice to use\nlittle-endian bitmap functions everywhere.  However, it used the\nhorrible old functions names from \u003casm-generic/bitops/le.h\u003e, that were\nnever really meant to be exported.\n\nIn the meantime, things got cleaned up, and in commit c4945b9ed472\n(\"asm-generic: rename generic little-endian bitops functions\") we\nrenamed the LE bitops to something sane, exactly so that they could be\nused in random code without people gouging their eyes out when seeing\nthe crazy jumble of letters that were the old internal names.\n\nAs a result the drbd thing merged cleanly (commit 8d49a77568d1: \"Merge\nbranch \u0027for-2.6.39/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\"),\nsince there was no data conflict - but the end result obviously doesn\u0027t\nactually compile.\n\nReported-and-tested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d49a77568d1105ff3e64aec484dac059f54824e",
      "tree": "633ee954a3cea97bf136dec933388a2e419e5dac",
      "parents": [
        "93567c43eb2a4771b9c590435928f9b3a428e568",
        "1ddd5049545e0aa1a0ed19bca4d9c9c3ce1ac8a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 20:02:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 20:02:07 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/drivers\u0027 of git://git.kernel.dk/linux-2.6-block: (122 commits)\n  cciss: fix lost command issue\n  drbd: need include for bitops functions declarations\n  Revert \"cciss: Add missing allocation in scsi_cmd_stack_setup and  corresponding deallocation\"\n  cciss: fix missed command status value CMD_UNABORTABLE\n  cciss: remove unnecessary casts\n  cciss: Mask off error bits of c-\u003ebusaddr in cmd_special_free when calling pci_free_consistent\n  cciss: Inform controller we are using 32-bit tags.\n  cciss: hoist tag masking out of loop\n  cciss: Add missing allocation in scsi_cmd_stack_setup and  corresponding deallocation\n  cciss: export resettable host attribute\n  drbd: drop code present under #ifdef which is relevant to 2.6.28 and below\n  drbd: Fixed handling of read errors on a \u0027VerifyS\u0027 node\n  drbd: Fixed handling of read errors on a \u0027VerifyT\u0027 node\n  drbd: Implemented real timeout checking for request processing time\n  drbd: Remove unused function atodb_endio()\n  drbd: improve log message if received sector offset exceeds local capacity\n  drbd: kill dead code\n  drbd: don\u0027t BUG_ON, if bio_add_page of a single page to an empty bio fails\n  drbd: Removed left over, now wrong comments\n  drbd: serialize admin requests for new verify run with pending bitmap io\n  ...\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "f0ff1357ce391265edbf844792da7da9a694f4bd",
      "tree": "a65e8b3a3c0cf3a3744117c1bc43a84d48050218",
      "parents": [
        "b66538014f7eae121afa99ca18488fd67536a1bf"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Mar 17 15:02:51 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 15:02:51 2011 +0100"
      },
      "message": "drbd: need include for bitops functions declarations\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "03567812d81dd87a810b2bd1e804f4001de03da5",
      "tree": "fbed361cfc8bc6f816d85d5edca31b37a2044b5e",
      "parents": [
        "7961243b7bdd62d72b47eb2c0bee776c51a8a8e2"
      ],
      "author": {
        "name": "Or Gerlitz",
        "email": "ogerlitz@voltaire.com",
        "time": "Thu Jan 13 10:43:40 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:21 2011 +0100"
      },
      "message": "drbd: drop code present under #ifdef which is relevant to 2.6.28 and below\n\nSigned-off-by: Or Gerlitz \u003cogerlitz@voltaire.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7961243b7bdd62d72b47eb2c0bee776c51a8a8e2",
      "tree": "c2fc7da055b61cc4f9b041524a2f873612f3104c",
      "parents": [
        "8f21420ebd5ca5a751e2f606b49b0acd2a2af314"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Mar 02 23:14:44 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:20 2011 +0100"
      },
      "message": "drbd: Fixed handling of read errors on a \u0027VerifyS\u0027 node\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8f21420ebd5ca5a751e2f606b49b0acd2a2af314",
      "tree": "bf652362959fa629c17b1954b861783d894eb131",
      "parents": [
        "7fde2be93080c028c20078a2d6abec8a95891192"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Mar 01 15:52:35 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:18 2011 +0100"
      },
      "message": "drbd: Fixed handling of read errors on a \u0027VerifyT\u0027 node\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7fde2be93080c028c20078a2d6abec8a95891192",
      "tree": "47993e3c52d550d22ab8035de94d526d226bc2e6",
      "parents": [
        "c5a91619793d444e5103ec5841045bf878718398"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Mar 01 11:08:28 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:16 2011 +0100"
      },
      "message": "drbd: Implemented real timeout checking for request processing time\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c5a91619793d444e5103ec5841045bf878718398",
      "tree": "3a1457aaaba954610b8bd55f27b8f4e9997bf936",
      "parents": [
        "fdda6544ad4d3284246e717b7108f7f497b45295"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Tue Jan 25 17:33:38 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:15 2011 +0100"
      },
      "message": "drbd: Remove unused function atodb_endio()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fdda6544ad4d3284246e717b7108f7f497b45295",
      "tree": "e144b5e54258bd3603c80304b4a984a4a9153894",
      "parents": [
        "e99dc367b3aafb1ce2d5d92e94834d07b299e1d7"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 24 15:11:01 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:13 2011 +0100"
      },
      "message": "drbd: improve log message if received sector offset exceeds local capacity\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e99dc367b3aafb1ce2d5d92e94834d07b299e1d7",
      "tree": "8fad9b684369f49c2e8100ae0afa8eccfe0d59a5",
      "parents": [
        "10f6d9926cd17afff9dc03c967706419798b4929"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 24 14:58:39 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:12 2011 +0100"
      },
      "message": "drbd: kill dead code\n\nThis code became obsolete and unused last December with\n drbd: bitmap keep track of changes vs on-disk bitmap\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "10f6d9926cd17afff9dc03c967706419798b4929",
      "tree": "7b1cd4bfcffbb3832c756ce29861411f7300aadd",
      "parents": [
        "039312b6481e2928f3be19fee94c83327d93e4c7"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jan 24 14:47:09 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:10 2011 +0100"
      },
      "message": "drbd: don\u0027t BUG_ON, if bio_add_page of a single page to an empty bio fails\n\nJust deal with it more gracefully, if we fail to add even a single page\nto an empty bio. We used to BUG_ON() there, but it has been observed in\nsome Xen deployment, so we need to handle that case more robustly now.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "039312b6481e2928f3be19fee94c83327d93e4c7",
      "tree": "cfdbc96255867ecfdeb1529d38dad37f9a1a1178",
      "parents": [
        "873b0d5f98ab70e4df7a62b2ef0305373f88f330"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jan 21 14:13:22 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:09 2011 +0100"
      },
      "message": "drbd: Removed left over, now wrong comments\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "873b0d5f98ab70e4df7a62b2ef0305373f88f330",
      "tree": "28f36e0d6eb1352b842c403d68908dc4246c7604",
      "parents": [
        "e636db5b956950b8b9bfbeb766a637f84bae1e3b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 22:53:48 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:07 2011 +0100"
      },
      "message": "drbd: serialize admin requests for new verify run with pending bitmap io\n\nThis is an addendum to\n drbd: serialize admin requests for new resync with pending bitmap io\n\nIt avoids a race that could trigger \"FIXME\" assert log messages.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e636db5b956950b8b9bfbeb766a637f84bae1e3b",
      "tree": "6b6b05d69c2baaf4ea4ec1dee5cd399aed85eb88",
      "parents": [
        "0ddc5549f88dfc4a4c919693e9a86095e89e080b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 17:10:37 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:06 2011 +0100"
      },
      "message": "drbd: fix potential imbalance of ap_in_flight\n\nWhen we receive a barrier ack, we walk the ring list of drbd requests\nin the transfer log of the respective epoch, do some housekeeping,\nand free those objects.\n\nWe tried to keep epochs of mirrored and unmirrored drbd requests\nseparate, and assert that no local-only requests are present in a\nbarrier_acked epoch.\n\nIt turns out that this has quite a number of corner cases and would\nadd bloated code without functional benefit.\n\nWe now revert the (insufficient) commits\n drbd: Fixed an issue with AHEAD -\u003e SYNC_SOURCE transitions\n drbd: Ensure that an epoch contains only requests of one kind\nand instead fix the processing of barrier acks to cope with\na mix of local-only and mirrored requests.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0ddc5549f88dfc4a4c919693e9a86095e89e080b",
      "tree": "95b89ce27e2e6d2e0989bd75becf19ca590c2c35",
      "parents": [
        "20ceb2b22edaf51e59e76087efdc71a16a2858de"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 12:35:15 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:04 2011 +0100"
      },
      "message": "drbd: silence some noisy log messages during disconnect\n\nIf we fail to send the information that we lost our disk,\nwe have no connection, and no disk: no access to data anymore.\nThat is either expected (deconfiguration), or there will be so much\nnoise in the logs that \"Sending state failed\" is not useful at all.\nDrop it.\n\nIf the reason for a shorter than expected receive was a signal,\nwhich we sent because we already decided to disconnect,\nthese additional log messages are confusing and useless.\n\nThis patch follows this pattern:\n - dev_warn(DEV, \"short read expecting header on sock: r\u003d%d\\n\", r);\n + if (!signal_pending(current))\n + \tdev_warn(DEV, \"short read expecting header on sock: r\u003d%d\\n\", r);\n\nAlso make them all dev_warn for consistency.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "20ceb2b22edaf51e59e76087efdc71a16a2858de",
      "tree": "a4f267242725bac2a915e879a6b6ac259218c5fa",
      "parents": [
        "62b0da3a244ac33d25a77861ef1cc0080103f2ff"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jan 21 10:56:44 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:02 2011 +0100"
      },
      "message": "drbd: describe bitmap locking for bulk operation in finer detail\n\nNow that we do no longer in-place endian-swap the bitmap, we allow\nselected bitmap operations (testing bits, sometimes even settting bits)\nduring some bulk operations.\n\nThis caused us to hit a lot of FIXME asserts similar to\n\tFIXME asender in drbd_bm_count_bits,\n\tbitmap locked for \u0027write from resync_finished\u0027 by worker\nWhich now is nonsense: looking at the bitmap is perfectly legal\nas long as it is not being resized.\n\nThis cosmetic patch defines some flags to describe expectations in finer\ndetail, so the asserts in e.g. bm_change_bits_to() can be skipped if\nappropriate.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "62b0da3a244ac33d25a77861ef1cc0080103f2ff",
      "tree": "a4313df7c46ac50d751fb0798323e34a3e4efbee",
      "parents": [
        "d07c9c10e5620c632aae9cac2b609033398f6139"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 20 13:25:21 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:48:01 2011 +0100"
      },
      "message": "drbd: log UUIDs whenever they change\n\nAll decisions about sync, sync direction, and wether or not to\nallow a connect or attach are based on our set of UUIDs to tag a\ndata generation.\n\nLog changes to the UUIDs whenever they occur,\nlogging \"new current UUID P:Q:R:S\" is more useful\nthan \"Creating new current UUID\".\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d07c9c10e5620c632aae9cac2b609033398f6139",
      "tree": "32bc11c4e9093068f4a363c6d8a8b77316350209",
      "parents": [
        "cd88d030d41a9b0100fd5fee872024e6ebc8b276"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jan 20 16:49:33 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:59 2011 +0100"
      },
      "message": "drbd: We can not process BIOs with a size of 0\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cd88d030d41a9b0100fd5fee872024e6ebc8b276",
      "tree": "c107e24c88fee112ebc85c966573ad51074aed7b",
      "parents": [
        "79a30d2d71f7be862de93228fe9b919ef664af52"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jan 20 11:46:41 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:58 2011 +0100"
      },
      "message": "drbd: Provide hints with the error message when clearing the sync pause flag\n\nWhen the user clears the sync-pause flag, and sync stays in pause\nstate, give hints to the user, why it still is in pause state.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "79a30d2d71f7be862de93228fe9b919ef664af52",
      "tree": "00f2e8a2adc5f284d50fe529eb1bae37c4eb5c2f",
      "parents": [
        "54b956abef2c1ab339fd01792e69e4a921a5e487"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 20 10:32:05 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:56 2011 +0100"
      },
      "message": "drbd: queue bitmap writeout more intelligently\n\nThe \"lazy writeout\" of cleared bitmap pages happens during resync, and\nshould happen again once the resync finishes cleanly, or is aborted.\n\nIf resync finished cleanly, or was aborted because of peer disk\nfailure, we trigger the writeout from worker context in the after\nstate change work.\n\nIf resync was aborted because of connection failure, we should not\nimmediately trigger bitmap writeout, but rather postpone the\nwriteout to after the connection cleanup happened.  We now do it\nin the receiver context from drbd_disconnect().\n\nIf resync was aborted because of local disk failure, well, there\nis nothing to write to anymore.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "54b956abef2c1ab339fd01792e69e4a921a5e487",
      "tree": "e489b7742b99e8cfda55d75dc4675d3f00c40af0",
      "parents": [
        "194bfb32dba8345a7e0f83e9b1ee965e14d4b679"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jan 20 10:47:53 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:55 2011 +0100"
      },
      "message": "drbd: don\u0027t pointlessly queue bitmap send, if we lost connection\n\nThis is a minor optimization and cleanup,\nand also considerably reduces some harmless (but noisy) race with\nthe connection cleanup code.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "194bfb32dba8345a7e0f83e9b1ee965e14d4b679",
      "tree": "7ce893e0116c4b286a55b068ffde10be18241afd",
      "parents": [
        "6c922ed543bee1bc6685ade07be59f3fa49a7288"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Jan 18 10:38:01 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:53 2011 +0100"
      },
      "message": "drbd: serialize admin requests for new resync with pending bitmap io\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6c922ed543bee1bc6685ade07be59f3fa49a7288",
      "tree": "1a2b0c13be822da96a6335953cca9cd06d1b7e1b",
      "parents": [
        "20ee639024e3d33111df0e343050b218c656bf16"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Jan 12 11:51:13 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:52 2011 +0100"
      },
      "message": "drbd: only generate and send a new sync uuid after a successful state change\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "20ee639024e3d33111df0e343050b218c656bf16",
      "tree": "bb19ee90dfbea96d0e11c1bd4c0dc0655638001c",
      "parents": [
        "6a35c45f890dc18c5527ac501b308058118f20e7"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jan 18 15:28:59 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:47:42 2011 +0100"
      },
      "message": "drbd: cleaned up __set_current_state() followed by schedule_timeout() calls\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6a35c45f890dc18c5527ac501b308058118f20e7",
      "tree": "627c73d972af6905f2ab77131e4232c62d31a553",
      "parents": [
        "2deb8336d04106f215c21ad1b029e78d12033d02"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 17 20:27:30 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:42 2011 +0100"
      },
      "message": "drbd: Ensure that an epoch contains only requests of one kind\n\nThe assert in drbd_req.c:755 forces us to have only requests of\none kind in an epoch. The two kinds we distinguish here are:\nlocal-only or mirrored.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2deb8336d04106f215c21ad1b029e78d12033d02",
      "tree": "19a6efb58bf425002630c58826c6b53099fe73a1",
      "parents": [
        "94f2b05f03fbc605f83ae501682c85ff4535bb6d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 17 18:39:18 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:40 2011 +0100"
      },
      "message": "drbd: Fixed P_NEG_ACK processing for protocol A and B\n\nProtocol A has no P_WRITE_ACKs, but has P_NEG_ACKs.\nThe master bio might already be completed, therefore the\nrequest is no longer in the collision hash.\n\u003d\u003e Do not try to validate block_id as request\n\nIn Protocol B we might already have got a P_RECV_ACK\nbut then get a P_NEG_ACK after wards.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "94f2b05f03fbc605f83ae501682c85ff4535bb6d",
      "tree": "8814ec8c4f9a330f8560de48d0072d10423c8bb4",
      "parents": [
        "148efa165e9464927887b03c83a52c33b80b4431"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 17 15:14:26 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:39 2011 +0100"
      },
      "message": "drbd: Killed an assert that is no longer valid\n\nThe point is that drbd_disconnect() can be called with a cstate of\nWFConnection.\n\nThat happens if the user issues \"drbdsetup disconnect\" while the\ndrbd_connect() function executes. Then drbdd_init() will call\ndrbdd(), which in turn will return without receiving any\npackets. Then drbdd_init() will end up calling drbd_disconnect()\nwith a cstate of WFConnection.\n\nBottom line: This assertion is wrong as it is, and we do not\nsee value in fixing it. \u003d\u003e Removing it.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "148efa165e9464927887b03c83a52c33b80b4431",
      "tree": "2c13039e139600b7d9347211cc714f90df01c6b3",
      "parents": [
        "370a43e7982dd497822097e0ae6022947ac2e7d4"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sat Jan 15 00:21:15 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:37 2011 +0100"
      },
      "message": "drbd: Do not drop net config if sending in drbd_send_protocol() fails\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "370a43e7982dd497822097e0ae6022947ac2e7d4",
      "tree": "a501836af9959177a1ef9b6746ab21c3b3af6d94",
      "parents": [
        "71c78cfba232de8f61a4b1bbb6e876424d133407"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jan 14 16:03:11 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:36 2011 +0100"
      },
      "message": "drbd: Work on the Ahead -\u003e SyncSource transition\n\nThe test if rs_pending_cnt \u003d\u003d 0 was too weak. Using Test for\nunacked_cnt \u003d\u003d 0 instead. Moved that into the worker.\n\nSince unacked_cnt gets already increased when an P_RS_DATA_REQ\ncomes in.\n\nAlso using a timer to make Ahead -\u003e SyncSource -\u003e Ahead cycles\nslower...\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "71c78cfba232de8f61a4b1bbb6e876424d133407",
      "tree": "2875a4f478f328d57a148dcd01b9563053447fd2",
      "parents": [
        "4a23f2649698272abcd9e0c9a992d65739f32792"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jan 14 19:20:34 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:34 2011 +0100"
      },
      "message": "drbd: Nothing should stop SyncSource -\u003e Ahead transitions\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4a23f2649698272abcd9e0c9a992d65739f32792",
      "tree": "3921ce5019d9d72befc48dbf14850c189bce5543",
      "parents": [
        "2b8a90b55533c66258a1ff0fb27b8cffa95665c4"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jan 11 17:42:17 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:32 2011 +0100"
      },
      "message": "drbd: Do not full sync if a P_SYNC_UUID packet gets lost\n\nSee also commit from 2009-08-15\n\"drbd_uuid_compare(): Do not full sync in case a P_SYNC_UUID packet gets lost.\"\n\nWe saw cases where the History UUIDs where not as expected. So the\ndetection of the special case did not trigger. With the sync UUID\nno longer being a random number, but deducible from the previous\nbitmap UUID, the detection of this special case becomes more\nreliable.\n\nThe SyncUUID now is the previous bitmap UUID + 0x1000000000000.\n\nRule 5a:\nCs \u003d H1p \u0026 H1p + Offset \u003d Bp\n  Connection was lost before SyncUUID Packet came through.\n  Corrent (peer) UUIDs:\n   Bp \u003d H1p\n   H1p \u003d H2p\n   H2p \u003d 0\n  Become Sync target.\n\nRule 7a:\nCp \u003d H1s \u0026 H1s + Offset \u003d Bs\n  Connection was lost before SyncUUID Packet came through.\n  Correct (own) UUIDs:\n   Bs \u003d H1s\n   H1s \u003d H2s\n   H2s \u003d 0\n  Become Sync source.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2b8a90b55533c66258a1ff0fb27b8cffa95665c4",
      "tree": "24e6d5816123e7912e1fe7db0261c083da8810f3",
      "parents": [
        "110a204a354a5a69f99ed0bc8e6d779e6a94d410"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jan 10 11:15:17 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:31 2011 +0100"
      },
      "message": "drbd: Corrected off-by-one error in DRBD_MINOR_COUNT_MAX\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "110a204a354a5a69f99ed0bc8e6d779e6a94d410",
      "tree": "b59f14f8c0b722c94ef5b01604cb572016a6942a",
      "parents": [
        "794abb753e29e85949b3719dbc2ab6a98711a47e"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Mon Jan 03 15:47:08 2011 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:29 2011 +0100"
      },
      "message": "drbd: Remove useless / wrong comments\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "794abb753e29e85949b3719dbc2ab6a98711a47e",
      "tree": "95d03c4b184c28087fa3ff1f4f5562a5ee5b0a56",
      "parents": [
        "da0a78161d2b2da4819a1f05a38bb1dcbe02d951"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 27 11:51:23 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:28 2011 +0100"
      },
      "message": "drbd: Cleaned up the resync timer logic\n\nBesides removed a few lines of code, this moves the inspection\nof the state from before the queuing process to after the queuing.\nI.e. more closely to the actual invocation of the work.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "da0a78161d2b2da4819a1f05a38bb1dcbe02d951",
      "tree": "2228b9b03e645d5339b812c6330b44756675b36c",
      "parents": [
        "d612d309e4c8401ad94c531678b59c4a8b7c41ce"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 23 14:24:33 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:26 2011 +0100"
      },
      "message": "drbd: Be more careful with SyncSource -\u003e Ahead transitions\n\nWe may not get from SyncSource to Ahead if we have sent some\nP_RS_DATA_REPLY packets to the peer and are waiting for\nP_WRITE_ACK.\n\nAgain, this is not relevant for proper tuned systems, but makes\nsure that the not-tuned system does not get diverging bitmaps.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d612d309e4c8401ad94c531678b59c4a8b7c41ce",
      "tree": "a50d72c0d2a92701df76e7e6effd96781728f600",
      "parents": [
        "617049aa7d753e8c821ac77126ab90e9f1b66d6d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 27 10:53:28 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:25 2011 +0100"
      },
      "message": "drbd: No longer answer P_RS_DATA_REQUEST packets when in C_AHEAD mode\n\nWhen the sync source node replies to a P_RS_DATA_REQUEST packet\nwhen it is already in ahead mode. I.e. those two packets\ncrossed each other on the wire, that may lead to diverging\nbitmaps.\n\n  This never happens in a well-tuned-system. In a well-tuned-\n  system the resync controller has reduced the resync speed\n  to zero long before we got into ahead-mode.\n\nBut we have to be prepared for the not-well-tuned-system\nof course as well.\nBecause -\u003e diverging bitmaps \u003d non terminating resync.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "617049aa7d753e8c821ac77126ab90e9f1b66d6d",
      "tree": "1cabbc19e2efa054bf585d92f42c0bf7bf0c01b5",
      "parents": [
        "071942727824bab03b1a3f6b6eeb5b269697b333"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Dec 22 12:48:31 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:23 2011 +0100"
      },
      "message": "drbd: Fixed an issue with AHEAD -\u003e SYNC_SOURCE transitions\n\nCreate a new barrier when leaving the AHEAD mode.\n\n  Otherwise we trigger the assertion in req_mod(, barrier_acked)\n  D_ASSERT(req-\u003erq_state \u0026 RQ_NET_SENT);\n\nThe new barrier is created by recycling the newest existing one.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "071942727824bab03b1a3f6b6eeb5b269697b333",
      "tree": "c08c9595b4f4628b399abe5c8195bc6211aa13e1",
      "parents": [
        "3f98688afc2ce0138fc88e272bdd128e1e0b0976"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Dec 20 15:38:07 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:21 2011 +0100"
      },
      "message": "drbd: ratelimit io error messages\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3f98688afc2ce0138fc88e272bdd128e1e0b0976",
      "tree": "05a92b453947ad33ca4270cd134261bcabb9cd9a",
      "parents": [
        "725a97e43ee945cc813fffd9e628e50d703b973b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 20 14:48:20 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:20 2011 +0100"
      },
      "message": "drbd: There might be a resync after unfreezing IO due to no disk [Bugz 332]\n\nWhen on-no-data-accessible is set to suspend-io, also consider that\na Primary, SyncTarget node losses its connection.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "725a97e43ee945cc813fffd9e628e50d703b973b",
      "tree": "ec67dbfccf0b3a43cb879056a1fb320b82b8dd2d",
      "parents": [
        "06d33e968d2c58143a7aaafa8963cf6a58099467"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sun Dec 19 11:29:55 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:45:08 2011 +0100"
      },
      "message": "drbd: fix potential access of on-stack wait_queue_head_t after return\n\nI run into something declaring itself as \"spinlock deadlock\",\n BUG: spinlock lockup on CPU#1, kjournald/27816, ffff88000ad6bca0\n Pid: 27816, comm: kjournald Tainted: G        W 2.6.34.6 #2\n Call Trace:\n  \u003cIRQ\u003e  [\u003cffffffff811ba0aa\u003e] do_raw_spin_lock+0x11e/0x14d\n  [\u003cffffffff81340fde\u003e] _raw_spin_lock_irqsave+0x6a/0x81\n  [\u003cffffffff8103b694\u003e] ? __wake_up+0x22/0x50\n  [\u003cffffffff8103b694\u003e] __wake_up+0x22/0x50\n  [\u003cffffffffa07ff661\u003e] bm_async_io_complete+0x258/0x299 [drbd]\nbut the call traces do not fit at all,\nall other cpus are cpu_idle.\n\nI think it may be this race:\n\ndrbd_bm_write_page\n wait_queue_head_t io_wait;\n atomic_t in_flight;\n bm_async_io\n  submit_bio\n\t\t\t\t\tbm_async_io_complete\n\t\t\t\t\t  if (atomic_dec_and_test(in_flight))\n wait_event(io_wait,\n\tatomic_read(in_flight) \u003d\u003d 0)\n return\n\t\t\t\t\t    wake_up(io_wait)\n\nThe wake_up now accesses the wait_queue_head_t spinlock, which is no\nlonger valid, since the stack frame of drbd_bm_write_page has been\nclobbered now.\n\nFix this by using struct completion, which does both the condition test\nas well as the wake_up inside its spinlock, so this race cannot happen.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "06d33e968d2c58143a7aaafa8963cf6a58099467",
      "tree": "4380d4060178a44ea0e4d56a47d1fff1a43e7b86",
      "parents": [
        "418e0a927d520f9c8e875ea75abee35d93a0f1b3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Dec 18 17:00:59 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:40 2011 +0100"
      },
      "message": "drbd: improve on bitmap write out timing\n\nEven though we now track the need for bitmap writeout per bitmap page,\nthere is no need to trigger the writeout while a resync is going on.\n\nOnce the resync is finished (or aborted),\nwe trigger bitmap writeout anyways.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "418e0a927d520f9c8e875ea75abee35d93a0f1b3",
      "tree": "8eeb5b67db90d29355ba03765167b99bb3132b37",
      "parents": [
        "7648cdfe52daf0ca4fa9489879dea9e089b0dfe1"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Dec 18 13:36:54 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:38 2011 +0100"
      },
      "message": "drbd: spelling fix in log message\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7648cdfe52daf0ca4fa9489879dea9e089b0dfe1",
      "tree": "7dd711ec5bda5ef0429bf94205dbbf7fe1659d82",
      "parents": [
        "5a22db8968a69bec835d1ed9a96ab3381719e0c0"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Dec 17 23:58:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:37 2011 +0100"
      },
      "message": "drbd: be less noisy with some log messages\n\nWe expect changes to a bitmap page in drbd_bm_write_page,\nthat\u0027s why we submit a copy page.\n\nIf a page changes during global writeout, that would be unexpected,\nand reason to warn, though.\n\nAlso, often page writeout can be skipped (on activity log transactions\nduring normal operation, for example), no need to log that everytime.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5a22db8968a69bec835d1ed9a96ab3381719e0c0",
      "tree": "6dd29c3cec008a2f846f54a02cdb139c4ce94be3",
      "parents": [
        "f735e3635430c6d1c319664d82b34376e3f9aa17"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Dec 17 21:14:23 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:35 2011 +0100"
      },
      "message": "drbd: serialize sending of resync uuid with pending w_send_oos\n\nTo improve the latency of IO requests during bitmap exchange,\nwe recently allowed writes while waiting for the bitmap, sending \"set\nout-of-sync\" information packets for any newly dirtied bits.\n\nWe have to make sure that the new resync-uuid does not overtake\nthese \"set oos\" packets. Once the resync-uuid is received, the\nsync target starts the resync process, and expects the bitmap to\nonly be cleared, not re-set.\n\nIf we use this protocol extension, we queue the generation and sending\nof the resync-uuid on the worker, which naturally serializes with all\npreviously queued packets.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f735e3635430c6d1c319664d82b34376e3f9aa17",
      "tree": "c470f5ccd8536ad49778f842762042b75be2677e",
      "parents": [
        "c88d65e2231dbae4b7cd0ad7b2a919857a1be171"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Dec 17 21:06:18 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:34 2011 +0100"
      },
      "message": "drbd: add debugging assert to make sure the protocol is clean\n\nWe expect to only receive the recently introduced \"set out of sync\"\npackets in specific states. If we receive them in different states, that\nmay confuse the resync process to the point where it won\u0027t terminate, or\nthink it made negative progress.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c88d65e2231dbae4b7cd0ad7b2a919857a1be171",
      "tree": "942160fb7738af05e662e327e79138365c4a1499",
      "parents": [
        "2265b473aecc1a6fe1f84a0ee272ba39806c2a8a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Dec 20 15:29:28 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:32 2011 +0100"
      },
      "message": "drbd: Documenting drbd_should_do_remote() and drbd_should_send_oos()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2265b473aecc1a6fe1f84a0ee272ba39806c2a8a",
      "tree": "bd58a09ad124dd37f15db23f20912049ccd067cd",
      "parents": [
        "02851e9f00d78dbc8ded0aacbf9bf3b631d627b3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 15:41:26 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:30 2011 +0100"
      },
      "message": "drbd: fix potential dereference of NULL pointer\n\nIf drbd used to have crypto digest algorithms configured, then is being\nunconfigured (but not unloaded), it frees the algorithms, but does not\nreset the config.  If it then is reconfigured to use the very same\nalgorithm, it \"forgot\" to re-allocate the algorithms, thinking that the\nconfig has not changed in that aspect.\nIt will then Oops on the first attempt to actually use those algorithms.\n\nFix this by resetting the config to defaults after cleanup.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "02851e9f00d78dbc8ded0aacbf9bf3b631d627b3",
      "tree": "d7a5611fef479c13ff70cccace8f22a963ba6df8",
      "parents": [
        "84e7c0f7d123d64d97e1f789ad2f23a72fe8981f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 14:47:39 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:29 2011 +0100"
      },
      "message": "drbd: move bitmap write from resync_finished to after_state_change\n\nWe must not call it directly from resync_finished,\nas we may be in either receiver or worker context there.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "84e7c0f7d123d64d97e1f789ad2f23a72fe8981f",
      "tree": "79327091826f3b5136796792a92e55d1b52a37be",
      "parents": [
        "6850c4421481139dc2cf982358e79c833a50d73c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 00:37:57 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:27 2011 +0100"
      },
      "message": "drbd: Removed a reference to debug macros removed long time ago\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6850c4421481139dc2cf982358e79c833a50d73c",
      "tree": "4b844bab228dfdf7b62a002b1b30d4296bcf6546",
      "parents": [
        "4b0715f09655e76ca24c35a9e25e7c464c2f7346"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 16 00:32:38 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:26 2011 +0100"
      },
      "message": "drbd: get rid of unused debug code\n\nLong time ago, we had paranoia code in the bitmap that allocated one\nextra word, assigned a magic value, and checked on every occasion that\nthe magic value was still unchanged.\n\nThat debug code is unused, the extra long word complicates code a bit.\nGet rid of it.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4b0715f09655e76ca24c35a9e25e7c464c2f7346",
      "tree": "e98706a35b1e18cad09f01d2346d9a1c938c081c",
      "parents": [
        "19f843aa08e2d8f87a09b4c2edc43b00638423a8"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Dec 14 15:13:04 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:24 2011 +0100"
      },
      "message": "drbd: allow petabyte storage on 64bit arch\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "19f843aa08e2d8f87a09b4c2edc43b00638423a8",
      "tree": "49919bd17ba7e03eb7cb76175910714d55704997",
      "parents": [
        "95a0f10cddbf93ce89c175ac1c53dad2d20ad309"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Dec 15 08:59:11 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:43:19 2011 +0100"
      },
      "message": "drbd: bitmap keep track of changes vs on-disk bitmap\n\nWhen we set or clear bits in a bitmap page,\nalso set a flag in the page-\u003eprivate pointer.\n\nThis allows us to skip writes of unchanged pages.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "95a0f10cddbf93ce89c175ac1c53dad2d20ad309",
      "tree": "98866a5938a75f235fdce6ab20cfa95fe984388e",
      "parents": [
        "7777a8ba1fc980e5edfe492ebf5a1676497b8db2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Dec 15 08:59:09 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:40 2011 +0100"
      },
      "message": "drbd: store in-core bitmap little endian, regardless of architecture\n\nOur on-disk bitmap is a little endian bitstream.\nUp to now, we have stored the in-core copy of that in\nnative endian, applying byte order conversion when necessary.\n\nInstead, keep the bitmap pages little endian, as they are read from disk,\nand use the generic_*_le_bit family of functions.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7777a8ba1fc980e5edfe492ebf5a1676497b8db2",
      "tree": "9eb81d2bee5bf63a796ae4df0b9cf352b3f0360b",
      "parents": [
        "1b881ef77537f1077482f9946a6a99b4e2dd54b2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Dec 15 23:21:39 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:38 2011 +0100"
      },
      "message": "drbd: bitmap: don\u0027t count unused bits (fix non-terminating resync)\n\nWe trusted the on-disk bitmap to have unused bits cleared.\nIn case that is not true for whatever reason,\nand we take a code path where the unused bits don\u0027t get cleared\nelsewhere (bm_clear_surplus is not called), we may miscount the bits,\nand get confused during resync, waiting for bits to get cleared that we\ndon\u0027t even use: the resync process would not terminate.\n\nFix this by masking out unused bits in __bm_count_bits.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1b881ef77537f1077482f9946a6a99b4e2dd54b2",
      "tree": "70edbe85f61fe74f1038b58997c3750af354b898",
      "parents": [
        "24dccabb390412d04435e11cfb535df51def7b2d"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Mon Dec 13 18:03:38 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:37 2011 +0100"
      },
      "message": "drbd: Rename __inc_ap_bio_cond to may_inc_ap_bio\n\nThe old name is confusing: the function does not increment anything.\nAlso rename _inc_ap_bio_cond to inc_ap_bio_cond: there is no need for\nan underscore.\nFinally, make it clear that these functions return boolean values.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "24dccabb390412d04435e11cfb535df51def7b2d",
      "tree": "ab418eebdb9040302bf06a6d608f722dd3188ebe",
      "parents": [
        "2c46407d241f4b0e5b87959aae8f50f41fdd2a3a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Sun Dec 12 17:45:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:35 2011 +0100"
      },
      "message": "drbd: Fix: drbd_bitmap_io does not return an enum determine_dev_size\n\nI guess bitmap I/O errors are supposed to cause drbd_determin_dev_size\nto return dev_size_error.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2c46407d241f4b0e5b87959aae8f50f41fdd2a3a",
      "tree": "ea596a353a89095993f666e6b9ecf9d15392bd11",
      "parents": [
        "f70af118e3f3638698ac08959a41b9f9fe7237c8"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Sat Dec 11 21:53:12 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:34 2011 +0100"
      },
      "message": "drbd: receive_bitmap_plain: Get rid of ugly and useless enum\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f70af118e3f3638698ac08959a41b9f9fe7237c8",
      "tree": "d77e797811b0b27fa19254127b60de3f67d2ed47",
      "parents": [
        "78fcbdae224469cb48767fa29ca41f1d5890e57c"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Sat Dec 11 18:51:50 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:32 2011 +0100"
      },
      "message": "drbd: send_bitmap_rle_or_plain: Get rid of ugly and useless enum\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "78fcbdae224469cb48767fa29ca41f1d5890e57c",
      "tree": "3605a86116e0e671988e2094f21bbe4a6e33418c",
      "parents": [
        "de1f8e4a0af3c2d0dff9f6341fead4b509941282"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 22:18:27 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:30 2011 +0100"
      },
      "message": "drbd: receive_bitmap: Missing free_page() on error path\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "de1f8e4a0af3c2d0dff9f6341fead4b509941282",
      "tree": "e8bbbbdd18a11434c7608c9cf3ceaba0e3fe5ac2",
      "parents": [
        "4114be815f9811da42a21dc2f7ff552833660595"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 21:04:00 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:29 2011 +0100"
      },
      "message": "drbd: receive_bitmap: Avoid casting enum drbd_state_rv to int\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4114be815f9811da42a21dc2f7ff552833660595",
      "tree": "f9f8effcb281ed9c7f03c8b6d35caec7f739a985",
      "parents": [
        "f2024e7ce29f4287395ce879364cd68c7ac226f2"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 17:09:10 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:27 2011 +0100"
      },
      "message": "drbd: receive_bitmap: Fix the wrong return value\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f2024e7ce29f4287395ce879364cd68c7ac226f2",
      "tree": "214dbd12fce34f623b1b06f06ed5d81640297b58",
      "parents": [
        "81e84650c200de0695372461964dd960365696db"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Dec 10 13:44:05 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:26 2011 +0100"
      },
      "message": "drbd: drbd_nl_disk_conf: Avoid a compiler warning\n\nWarning: comparison between ‘enum drbd_ret_code’ and ‘enum drbd_state_rv’\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "81e84650c200de0695372461964dd960365696db",
      "tree": "c57e51e8c1f540321fd6e8d43c304a95f7fa5ebe",
      "parents": [
        "6184ea2145609b4ad63b141bf1f8124135ff4949"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 15:03:57 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:24 2011 +0100"
      },
      "message": "drbd: Use the standard bool, true, and false keywords\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6184ea2145609b4ad63b141bf1f8124135ff4949",
      "tree": "2141b705c93c301cd496480179d9a5bb1193877c",
      "parents": [
        "bb4379464efeb4624757e2cc0bf9207a309c1075"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 14:23:27 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:22 2011 +0100"
      },
      "message": "drbd: This code is dead now\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bb4379464efeb4624757e2cc0bf9207a309c1075",
      "tree": "0bbfa3e4da63315d2a1fe7b2709844716fcc7303",
      "parents": [
        "bf885f8a6772fb48409dd505a09d974a5e621f22"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 14:02:35 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:21 2011 +0100"
      },
      "message": "drbd: Another small enum drbd_state_rv cleanup\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bf885f8a6772fb48409dd505a09d974a5e621f22",
      "tree": "28205a11a192a14192bac3f8487b444e6d533955",
      "parents": [
        "c8b325632f0e5ffdaeca3d1f3be77c9399316a40"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 00:39:32 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:19 2011 +0100"
      },
      "message": "drbd: Be more explicit about functions that return an enum drbd_state_rv\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c8b325632f0e5ffdaeca3d1f3be77c9399316a40",
      "tree": "3b86d7a6a9b180e05a78c89d9a83ca1b93aa5cbe",
      "parents": [
        "116676ca621a862a8124969772f4dd61c8b40eee"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 01:06:16 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:18 2011 +0100"
      },
      "message": "drbd: Rename enum drbd_state_ret_codes to enum drbd_state_rv\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "116676ca621a862a8124969772f4dd61c8b40eee",
      "tree": "f02da6846ac3726f800fe80cc08a5f6da396c6a9",
      "parents": [
        "0cf9d27e38447efe5e5edce155a66a782a5aac4a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 13:33:11 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:16 2011 +0100"
      },
      "message": "drbd: Rename enum drbd_ret_codes to enum drbd_ret_code\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0cf9d27e38447efe5e5edce155a66a782a5aac4a",
      "tree": "995f0581eacec75533f6b8918ecd43cfb510c1f5",
      "parents": [
        "662d91a23a8e8451ca47c08d5cff710fd080fd3a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Tue Dec 07 10:43:29 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:15 2011 +0100"
      },
      "message": "drbd: Get rid of unnecessary macros (2)\n\nThe FAULT_ACTIVE macro just wraps the drbd_insert_fault macro for no\napparent reason.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "662d91a23a8e8451ca47c08d5cff710fd080fd3a",
      "tree": "7b6eadb2857f8aa109ffc4e638a0866e33e42946",
      "parents": [
        "2f58dcfc85b6800efd938f755e6c5f9979f4aa5c"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Tue Dec 07 03:01:41 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:13 2011 +0100"
      },
      "message": "drbd: Get rid of unnecessary macros (1)\n\nThis macro doesn\u0027t save much code, but makes things a lot harder to read.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2f58dcfc85b6800efd938f755e6c5f9979f4aa5c",
      "tree": "f8d9fff58a1ae7640b26e8ec323aa9a9e4f818b0",
      "parents": [
        "96756784a6250c7d9878671ef3386b93b0c576d4"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Mon Dec 13 17:48:19 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:11 2011 +0100"
      },
      "message": "drbd: Rename drbd_make_request_26 to drbd_make_request\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "96756784a6250c7d9878671ef3386b93b0c576d4",
      "tree": "57cd3f726340abd82eabe23bf96d2cf756c153ad",
      "parents": [
        "cab2f74b45127a78b9a2980f54ca16cc9f45ddac"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 16:23:43 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:10 2011 +0100"
      },
      "message": "drbd: Remove left-over prototype\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cab2f74b45127a78b9a2980f54ca16cc9f45ddac",
      "tree": "ce7986dca4c4512251e576db9c0e08e5409fcd8b",
      "parents": [
        "220df4d006ed561b8fd4fbd8c01c6c28d6143653"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Thu Dec 09 16:08:46 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:08 2011 +0100"
      },
      "message": "drbd: Make sure that drbd_send() has sent the right number of bytes\n\nReviewed-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "220df4d006ed561b8fd4fbd8c01c6c28d6143653",
      "tree": "fa65f11c9276138c1dd2cc345389b9cb1bddf827",
      "parents": [
        "7e458c32da946bd4f6aea476b61b79575578f834"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 09 15:21:02 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:36:02 2011 +0100"
      },
      "message": "drbd: fix incomplete error message\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7e458c32da946bd4f6aea476b61b79575578f834",
      "tree": "62f686be3528fcb58668b54c9ce6dbbf54dce70b",
      "parents": [
        "8a3c104438be4986a77f332009b695fcac48f620"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Dec 08 19:02:09 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:22 2011 +0100"
      },
      "message": "drbd: Removed an unnecessary #undef\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8a3c104438be4986a77f332009b695fcac48f620",
      "tree": "5f659c3125cb4dd901bfb15532c3ac051f94c8cc",
      "parents": [
        "09b9e7979378fe070784de20e50bb1d42aa643ab"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sun Dec 05 14:11:14 2010 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Mar 10 11:35:20 2011 +0100"
      },
      "message": "drbd: fix regression, we need to close drbd epochs during normal operation\n\ncommit e2041475e6ddb081734d161f6421977323f5a9b9\ndrbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap\n\nContained a bad chunk that tried to optimize away drbd barriers during\nbitmap exchange, but accidentally dropped them for normal mode as well.\n\nImpact: depending on activity log size and access pattern, activity log\nextents may not be recycled in time, causeing IO to block indefinetely.\n\nFix: skip drbd barriers only if there is no connection to send them on,\nor the request being completed has not been on the network at all.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    }
  ],
  "next": "09b9e7979378fe070784de20e50bb1d42aa643ab"
}
