)]}'
{
  "log": [
    {
      "commit": "a115413de13ae6beb0cbfc198afe385a261ab284",
      "tree": "45afb2173a442b8524cf70fc6b50eee80437c68a",
      "parents": [
        "c13f7e1a94007c4381814e7daf033e3e8f0663f3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Nov 13 20:42:29 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Nov 27 19:50:43 2010 +0100"
      },
      "message": "drbd: fix for spin_lock_irqsave in endio callback\n\nIn commit 9b7f76dc37919ea36caa9680a3f765e5b19b25fb,\n Author: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n Date:   Wed Aug 11 23:40:24 2010 +0200\n\n    drbd: new configuration parameter c-min-rate\n\na bad chunk slipped through, which is now reverted as well,\nrestoring the correct irqsave for the endio callback.\n\nThis patch also add comments at both req_mod()\nand in the endio callback so it should not happen again.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c13f7e1a94007c4381814e7daf033e3e8f0663f3",
      "tree": "38115a45b39cd53204268238b8dc6e5bbfd9bafc",
      "parents": [
        "19650e8580987c0ffabc2fe2cbc16b944789df8b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Oct 29 23:32:01 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Nov 27 19:50:43 2010 +0100"
      },
      "message": "drbd: don\u0027t recvmsg with zero length\n\nThis should fix a performance degradation we observed recently.\n\nIf we don\u0027t expect any subheader, we should not call into the tcp stack,\nas that may add considerable latency if there is no data available at\nthis point.\n\nFor a synthetic synchronous write load with single outstanding writes,\nthis additional latency when processing the \"unplug remote\" packet\nadded up to a performance degradation factor \u003e\u003d 10.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00e375e7e962f938f6b3c93e4cd097a5e26cc788",
      "tree": "9aacf8566c688273af830fc4e50186810068b028",
      "parents": [
        "f85acd81aa623e3dcf268c90e5cd8ecf36830984",
        "4205df34003eec4371020872cdfa228ffae5bd6a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:51:27 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:51:27 2010 +0100"
      },
      "message": "Merge branch \u0027for-2.6.37/drivers\u0027 into for-linus\n\nConflicts:\n\tdrivers/block/cciss.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "77304d2abac6101f7249754ffdd4421258877ab0",
      "tree": "8ee5914529d70120528a630a8e904c22f8c4f98c",
      "parents": [
        "90fdb0b98a62d78a0650b9fd3ddc58a48f71d740"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Mon Nov 08 14:39:12 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:40:53 2010 +0100"
      },
      "message": "block: read i_size with i_size_read()\n\nConvert direct reads of an inode\u0027s i_size to using i_size_read().\n\ni_size_{read,write} use a seqcount to protect reads from accessing\nincomple writes.  Concurrent i_size_write()s require mutual exclussion\nto protect the seqcount that is used by i_size_{read,write}.  But\ni_size_read() callers do not need to use additional locking.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nAcked-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "2027ae1fa914640c287171035cb607a03ad36e95",
      "tree": "b691a7cd20b2fe1b6736f5a02497a9fc7f897a19",
      "parents": [
        "51a0bb0c2e614659132fce272c8a1815a12c5c2a"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Thu Oct 28 06:15:26 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Oct 28 06:15:26 2010 -0600"
      },
      "message": "drivers/block/drbd/drbd_main.c: fix error path\n\nFailure to create drbd_ee_mempool appears not to get checked.  Looks like\na copy-and-paste problem to me.\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nCc: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "53c2eb24ff49abe1bfc45d067797f74b409690d8",
      "tree": "9684ee71d2fda68cde3fd404ba5ffa094fde7351",
      "parents": [
        "7f3883962870dd28b5f2322ac44a9d03640ef448",
        "650789c87f16dcdf1dd0a67ac7461b7537534855"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Oct 23 18:43:55 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Oct 23 18:43:55 2010 +0200"
      },
      "message": "Merge branch \u0027for-jens\u0027 of git://git.drbd.org/linux-2.6-drbd into for-2.6.37/drivers\n"
    },
    {
      "commit": "650789c87f16dcdf1dd0a67ac7461b7537534855",
      "tree": "47e8ffc3b45542fd4d447a8c902b977c108fc00f",
      "parents": [
        "a8a4e51e6965db84d2af041370ea2ab6232aa4f1"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 25 10:47:17 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sat Oct 23 13:02:34 2010 +0200"
      },
      "message": "drbd: Removed checks for REQ_HARDBARRIER on incomming BIOs\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a8a4e51e6965db84d2af041370ea2ab6232aa4f1",
      "tree": "74f1301712fa631faf6c39337bced33060ca5038",
      "parents": [
        "2451fc3b2bd3a7205270da75a21dde0d5d7c96a2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 25 10:21:04 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sat Oct 23 13:01:45 2010 +0200"
      },
      "message": "drbd: REQ_HARDBARRIER -\u003e REQ_FUA transition for meta data accesses\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2451fc3b2bd3a7205270da75a21dde0d5d7c96a2",
      "tree": "60c31f1c6da680d44ee7492be4cd377127f2ac3d",
      "parents": [
        "8825f7c3e5c7b251b49fc594658a96f59417ee16"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 24 13:43:11 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Sat Oct 23 13:00:48 2010 +0200"
      },
      "message": "drbd: Removed the BIO_RW_BARRIER support form the receiver/epoch code\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a2887097f25cd38cadfc11d10769e2b349fb5eca",
      "tree": "cd4adcb305365d6ba9acd2c02d4eb9d0125c6f8d",
      "parents": [
        "8abfc6e7a45eb74e51904bbae676fae008b11366",
        "005a1d15f5a6b2bb4ada80349513effbf22b4588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block: (46 commits)\n  xen-blkfront: disable barrier/flush write support\n  Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c\n  block: remove BLKDEV_IFL_WAIT\n  aic7xxx_old: removed unused \u0027req\u0027 variable\n  block: remove the BH_Eopnotsupp flag\n  block: remove the BLKDEV_IFL_BARRIER flag\n  block: remove the WRITE_BARRIER flag\n  swap: do not send discards as barriers\n  fat: do not send discards as barriers\n  ext4: do not send discards as barriers\n  jbd2: replace barriers with explicit flush / FUA usage\n  jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n  jbd: replace barriers with explicit flush / FUA usage\n  nilfs2: replace barriers with explicit flush / FUA usage\n  reiserfs: replace barriers with explicit flush / FUA usage\n  gfs2: replace barriers with explicit flush / FUA usage\n  btrfs: replace barriers with explicit flush / FUA usage\n  xfs: replace barriers with explicit flush / FUA usage\n  block: pass gfp_mask and flags to sb_issue_discard\n  dm: convey that all flushes are processed as empty\n  ...\n"
    },
    {
      "commit": "8abfc6e7a45eb74e51904bbae676fae008b11366",
      "tree": "57d0a24558c0693e3a52e8e756616f6c72def1e9",
      "parents": [
        "e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e",
        "6362beea8914cbd4630ccde3617d944aeca2d48f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:03:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:03:12 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/drivers\u0027 of git://git.kernel.dk/linux-2.6-block: (95 commits)\n  cciss: fix PCI IDs for new Smart Array controllers\n  drbd: add race-breaker to drbd_go_diskless\n  drbd: use dynamic_dev_dbg to optionally log uuid changes\n  dynamic_debug.h: Fix dynamic_dev_dbg() macro if CONFIG_DYNAMIC_DEBUG not set\n  drbd: cleanup: change \"\u003c\u003d 0\" to \"\u003d\u003d 0\"\n  drbd: relax the grace period of the md_sync timer again\n  drbd: add some more explicit drbd_md_sync\n  drbd: drop wrong debug asserts, fix recently introduced race\n  drbd: cleanup useless leftover warn/error printk\u0027s\n  drbd: add explicit drbd_md_sync to drbd_resync_finished\n  drbd: Do not log an ASSERT for P_OV_REQUEST packets while C_CONNECTED\n  drbd: fix for possible deadlock on IO error during resync\n  drbd: fix unlikely access after free and list corruption\n  drbd: fix for spurious fullsync (uuids rotated too fast)\n  drbd: allow for explicit resync-finished notifications\n  drbd: preparation commit, using full state in receive_state()\n  drbd: drbd_send_ack_dp must not rely on header information\n  drbd: Fix regression in recv_bm_rle_bits (compressed bitmap)\n  drbd: Fixed a stupid copy and paste error\n  drbd: Allow larger values for c-fill-target.\n  ...\n\nFix up trivial conflict in drivers/block/ataflop.c due to BKL removal\n"
    },
    {
      "commit": "e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e",
      "tree": "f42fd892495bfc4cbb740d06b016d267c9c42d00",
      "parents": [
        "4f3a29dadaf999a273f1e7fe2476595d0283eef3",
        "b4627321e18582dcbdeb45d77df29d3177107c65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block: (39 commits)\n  cfq-iosched: Fix a gcc 4.5 warning and put some comments\n  block: Turn bvec_k{un,}map_irq() into static inline functions\n  block: fix accounting bug on cross partition merges\n  block: Make the integrity mapped property a bio flag\n  block: Fix double free in blk_integrity_unregister\n  block: Ensure physical block size is unsigned int\n  blkio-throttle: Fix possible multiplication overflow in iops calculations\n  blkio-throttle: limit max iops value to UINT_MAX\n  blkio-throttle: There is no need to convert jiffies to milli seconds\n  blkio-throttle: Fix link failure failure on i386\n  blkio: Recalculate the throttled bio dispatch time upon throttle limit change\n  blkio: Add root group to td-\u003etg_list\n  blkio: deletion of a cgroup was causes oops\n  blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING\u003dn\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: revert bad fix for memory hotplug causing bounces\n  Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: Prevent hang_check firing during long I/O\n  cfq: improve fsync performance for small files\n  ...\n\nFix up trivial conflicts due to __rcu sparse annotation in include/linux/genhd.h\n"
    },
    {
      "commit": "8825f7c3e5c7b251b49fc594658a96f59417ee16",
      "tree": "051e2d3c2c05e89c573297feeae315e541dc30d8",
      "parents": [
        "fb2c7a10eec051317ff091b2cb2d73c5ecd98c19"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 21 17:21:19 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:55:22 2010 +0200"
      },
      "message": "drbd: Silenced an assert\n\nThat assertion\u0027s condition needed adjustment for today\u0027s semantics\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fb2c7a10eec051317ff091b2cb2d73c5ecd98c19",
      "tree": "71780ba6a3d19b9a79e076d99b2a4e85e8e04db9",
      "parents": [
        "bc571b8cb930ea78207851dd38b5a435fcb8891c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Oct 19 12:08:13 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:53:10 2010 +0200"
      },
      "message": "drbd: rate limit an error message\n\nIf we don\u0027t rate limit it, and you happen to log err level messages via\nserial console, an IO error on a disconnected Primary may cause serious\nunresponsiveness.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bc571b8cb930ea78207851dd38b5a435fcb8891c",
      "tree": "30181e1a2695cb59f72b182012adb41adbc8d077",
      "parents": [
        "6719fb036cea56a5ee9d0ac912ed8c7cabb27f49"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 21 18:07:31 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:51:22 2010 +0200"
      },
      "message": "drbd: fix a misleading printk\n\nThis codepath used to be called only for failed kmalloc GFP_ATOMIC,\nbut is now also triggered by other things.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6719fb036cea56a5ee9d0ac912ed8c7cabb27f49",
      "tree": "eed4e4d3161cc6f7a4009c5c856e88c6707c88a3",
      "parents": [
        "82f59cc6353889b426cf13b6596d5a3d100fa09e"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Oct 18 23:04:07 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:50:27 2010 +0200"
      },
      "message": "drbd: fix potential data divergence after multiple failures\n\nIf we get an IO-error during an activity log transaction,\nif we failed to write the bitmap of the evicted extent,\nwe must not write the transaction itself.\nIf we failed to write the transaction,\nwe must not even submit the corresponding bio,\nas its extent is not yet marked in the activity log.\n\nOtherwise, if this was a disconneted Primary (degraded cluster), which\nnow lost its disk as well, and we later re-attach the same backend\nstorage, we possibly \"forget\" to resync some parts of the disk that\npotentially have been changed.\n\nOn the receiving side, when receiving from a peer with unhealthy disk,\nchecking for pdsk \u003d\u003d D_DISKLESS is not enough, we need to set out of\nsync and do AL transactions for everything pdsk \u003c D_INCONSISTENT on the\nreceiving side.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "82f59cc6353889b426cf13b6596d5a3d100fa09e",
      "tree": "6d5a678516334f0a37a56a509b84322a0352719b",
      "parents": [
        "3beec1d446fba335f07787636920892dd3b2c658"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sat Oct 16 12:13:47 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:46:11 2010 +0200"
      },
      "message": "drbd: fix potential deadlock on detach\n\nIf we have contention in drbd_al_begin_iod (heavy randon IO),\nan administrative request to detach the disk may deadlock\nfor similar reasons as the recently fixed deadlock if detaching\nbecause of IO-error.\n\nThe approach taken here is to either go through the intermediate\ncleanup state D_FAILED, or first lock out application io,\ndon\u0027t just go directly to D_DISKLESS.\n\nWe need an additional state bit (WAS_IO_ERROR) to distinguish\nthe -\u003e D_FAILED because of IO-error from other failures.\n\nSanitize D_ATTACHING -\u003e D_FAILED to D_ATTACHING -\u003e D_DISKLESS.\nIf only attaching, ldev may be missing still, but would be referenced\nfrom within the after_state_ch for -\u003e D_FAILED, potentially\ndereferencing a NULL pointer.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3beec1d446fba335f07787636920892dd3b2c658",
      "tree": "fd4cad540fa79907562955e2584b60f68fda845f",
      "parents": [
        "aaa8e2b34c35d67abf1892cd62ea4e7565ca262c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 14 13:31:48 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:41:20 2010 +0200"
      },
      "message": "drbd: tag a few error messages with \"assert failed\"\n\nIf those messages ever get logged, clearly state that they are\nactually failed ASSERTS, so our regression tests can pick them up\nfrom the logs more easily.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "aaa8e2b34c35d67abf1892cd62ea4e7565ca262c",
      "tree": "19e0cb68b9481dbfa89b26b58d33071f7f2db9bf",
      "parents": [
        "6362beea8914cbd4630ccde3617d944aeca2d48f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Oct 15 13:16:53 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 22 15:36:56 2010 +0200"
      },
      "message": "drbd: consolidate explicit drbd_md_sync into drbd_create_new_uuid\n\nEvery code path changing the current UUID needs to get it on stable\nstorage anyways. Flush it to disk right there, remove the now obsolte\nexplicit drbd_md_sync statements in the other code paths.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5dbfe7aedf54aa7f62fd659e34371d4ea0e7bffe",
      "tree": "1ef5c18551186ba593010cbde9756e27b5d54685",
      "parents": [
        "ac7241211ded714873e8dc6d2f7c98ae7ea2cc30"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Oct 15 09:52:46 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 15 14:06:53 2010 +0200"
      },
      "message": "drbd: add race-breaker to drbd_go_diskless\n\nThis adds a necessary race breaker to these commits:\n    drbd: fix for possible deadlock on IO error during resync\n    drbd: drop wrong debug asserts, fix recently introduced race\n\nWhat we do is get a refcount, check the state, then depending on the\nstate and the requested minimum disk state, either hold it (success),\nor give it back immediately (failed \"try lock\").\n\nSome code paths (flushing of drbd metadata) may still grab and hold a\nrefcount even if we are D_FAILED (application IO won\u0027t).\nSo even if we hit local_cnt \u003d\u003d 0 once after being D_FAILED,\nwe still need to wait for that again after we changed to D_DISKLESS.\nOnce local_cnt reaches 0 while we are D_DISKLESS, we can be sure that\nno one will look at the protected members anymore, so only then is it\nsafe to free them.\n\nWe cannot easily convert to standard locking primitives here, as we want\nto be able to use it in atomic context (we always do a \"try lock\"),\nas well as hold references for a \"long time\" (from IO submission to\ncompletion callback).\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ac7241211ded714873e8dc6d2f7c98ae7ea2cc30",
      "tree": "9faa8e0012c9543978cc09654c9a5a3eac00057d",
      "parents": [
        "be70e2671b95a8982ff133ebaafff6399ad393d4"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 07 15:18:08 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 15 10:52:42 2010 +0200"
      },
      "message": "drbd: use dynamic_dev_dbg to optionally log uuid changes\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2265769531afe267f864111c103b04b4427720b6",
      "tree": "da90c3ce2cb64b75288b7e2da600d3f9b9b5d5c4",
      "parents": [
        "ca0e6098aad127a555ba29d12e0503dbb1577aac"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 12 00:38:45 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 19:17:23 2010 +0200"
      },
      "message": "drbd: cleanup: change \"\u003c\u003d 0\" to \"\u003d\u003d 0\"\n\ndt is unsigned so it\u0027s never less than zero.  We are calculating the\nelapsed time, and that\u0027s never less than zero (unless there is a bug or\nwe invent time travel).  The comparison here is just to guard against\ndivide by zero bugs.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\n"
    },
    {
      "commit": "ca0e6098aad127a555ba29d12e0503dbb1577aac",
      "tree": "c16a9288d2bd49df42aab46ccac98426710d5a77",
      "parents": [
        "856c50c7b616d50e1a3ccd4ce35f7814650fa594"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 14 15:01:21 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 19:15:38 2010 +0200"
      },
      "message": "drbd: relax the grace period of the md_sync timer again\n\nConsolidate the ifdef\u0027s for the debug level, accidentally the used both\nDEBUG and DRBD_DEBUG_MD_SYNC.  Default to off.\n\nFor production, we can safely reduce the grace period for this timer\nagain the the value we used to have.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "856c50c7b616d50e1a3ccd4ce35f7814650fa594",
      "tree": "4ffcbe5f1ce700813516c6d73d188748366fe42a",
      "parents": [
        "9d282875d85ebc2b49362310677fc0dcd91b9db9"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 14 13:37:40 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 19:08:58 2010 +0200"
      },
      "message": "drbd: add some more explicit drbd_md_sync\n\nIt sometimes may take a while for the after state change work to be\nscheduled, which does drbd_md_sync. At convenient places, we should do\nexplicit drbd_md_sync to have the new state information on disk as soon\nas possible.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "9d282875d85ebc2b49362310677fc0dcd91b9db9",
      "tree": "bbbb183462f56b4b065e6dcc5e686587f90ce192",
      "parents": [
        "0f8488e1608b6e30e705460f8110888c645f7f9f"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 14 13:57:07 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 19:08:32 2010 +0200"
      },
      "message": "drbd: drop wrong debug asserts, fix recently introduced race\n\n commit 2372c38caadeaebc68a5ee190782c2a0df01edc3\n drbd: fix for possible deadlock on IO error during resync\n\nintroduced a new ASSERT, which turns out to be wrong. Drop it.\n\nAlso serialize the state change to D_DISKLESS with the after state\nchange work of the -\u003e D_FAILED transition, don\u0027t open a new race.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0f8488e1608b6e30e705460f8110888c645f7f9f",
      "tree": "00fa40d74f4db3cb666d079b962cb3f1d6136236",
      "parents": [
        "13d42685bec1f012dcbc5d187490eb1d15ec8219"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Oct 13 18:19:23 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:53 2010 +0200"
      },
      "message": "drbd: cleanup useless leftover warn/error printk\u0027s\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "13d42685bec1f012dcbc5d187490eb1d15ec8219",
      "tree": "977f7bdc5ed6c045a522e9bda46d456319dc9c91",
      "parents": [
        "b18b37befb37810ce50e1a9b0a6206dfe363d827"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Oct 13 17:37:54 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:52 2010 +0200"
      },
      "message": "drbd: add explicit drbd_md_sync to drbd_resync_finished\n\nAs we usually update the generation UUIDs here, we should explicitly\nsync them to disk.  So far this has been done only implicitly by related\ncode paths.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "b18b37befb37810ce50e1a9b0a6206dfe363d827",
      "tree": "02c8c204225c9214141abc14982eee82b1d22411",
      "parents": [
        "e9e6f3ec535d7b7c9e2ca64ad691e743e7d3c2f0"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Oct 13 15:32:44 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:51 2010 +0200"
      },
      "message": "drbd: Do not log an ASSERT for P_OV_REQUEST packets while C_CONNECTED\n\nThis might happen if on the VERIFY_S node the disk gets dropped.\nAlthough this is an cluster wide state transition, the VERIFY_T node,\nupdates it connection state first. Then the ack packet for the\ncluster wide state transition travels back, and the VERIFY_S node\nstops to produce the P_OV_REQUEST packets.\n\nThere is absolutely nothing wrong with that.\n\nFurther, do not log \"Can not satisfy peer\u0027s...\" on the VERIFY_S\nnode in this case, but pretend that they had equal checksum.\n\n[Bugz 327]\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e9e6f3ec535d7b7c9e2ca64ad691e743e7d3c2f0",
      "tree": "cbc17d81b9d937b4fc515548f30f5ed00be193ee",
      "parents": [
        "22cc37a943832c948808884604ec6f5ff2594c1d"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Sep 14 20:26:27 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:50 2010 +0200"
      },
      "message": "drbd: fix for possible deadlock on IO error during resync\n\nScenario:\n\nSomething (say, flush-147:0) is in drbd_al_begin_io,\nholding a local_cnt, waiting for the resync to make progress.\n\nDisk fails, worker in after_state_ch does drbd_rs_cancel_all,\nthen waits for local_cnt to drop to zero.\n\nflush-147:0 is woken by drbd_rs_cancel_all, needs to write an AL\ntransaction, and queues that on the worker.\n\nDeadlock.\n\nFix: do not wait in the worker, have put_ldev() trigger the\nstate change D_FAILED -\u003e D_DISKLESS when necessary.\nput_ldev() cannot do the state change directly, as it may or may not\nalready hold various spinlocks. We queue a short work instead.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "22cc37a943832c948808884604ec6f5ff2594c1d",
      "tree": "5c0784f0010421c45c4fd847dac8692d03f399e6",
      "parents": [
        "af85e8e83d160f72a10e4467852646ac08614260"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Sep 14 20:40:41 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:49 2010 +0200"
      },
      "message": "drbd: fix unlikely access after free and list corruption\n\nVarious cleanup paths have been incomplete, for the very unlikely case\nthat we cannot allocate enough bios from process context when submitting\non behalf of the peer or resync process.\n\nNever observed.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "af85e8e83d160f72a10e4467852646ac08614260",
      "tree": "b2c842d6129065bbdd787a810038752e6239b0ef",
      "parents": [
        "e9ef7bb6f9696471ddddf0065afac8b435e5d051"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 07 16:07:55 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:48 2010 +0200"
      },
      "message": "drbd: fix for spurious fullsync (uuids rotated too fast)\n\nIf it was an \"empty\" resync, the SyncSource may have already \"finished\"\nthe resync and rotated the UUIDs, before noticing the connection loss\n(and generating a new uuid, if Primary, rotating again), while the\nSyncTarget did not change its uuids at all, or only got to the previous\nsync-uuid.\nThis would then again lead to a full sync on next handshake\n(see also Bug #251).\n\nFix:\nUse explicit resync finished notification even for empty resyncs,\ndo not finish an empty resync implicitly on the SyncSource.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e9ef7bb6f9696471ddddf0065afac8b435e5d051",
      "tree": "565678cffe217fb8ca884626909632d4a360c7b4",
      "parents": [
        "4ac4aadacb5badc45679cd94cd362132daafe8c4"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Oct 07 15:55:39 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:47 2010 +0200"
      },
      "message": "drbd: allow for explicit resync-finished notifications\n\nPreparation patch so more drbd_send_state() usage on the peer\nwill not confuse drbd in receive_state().\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4ac4aadacb5badc45679cd94cd362132daafe8c4",
      "tree": "3577305d13bd60a536cb8ed156d639e707bdeca4",
      "parents": [
        "2b2bf2148fd46874ee72a877c951e5c6675d1caa"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Jul 22 17:39:26 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:46 2010 +0200"
      },
      "message": "drbd: preparation commit, using full state in receive_state()\n\nno functional change, just using full state instead of just the .conn\npart of it for comparisons.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2b2bf2148fd46874ee72a877c951e5c6675d1caa",
      "tree": "15ec40dd736c5e7cf833deb61b6770d562fa11b5",
      "parents": [
        "004352fa60345e499379af310de73a2df1a5762a"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Oct 06 11:46:55 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:45 2010 +0200"
      },
      "message": "drbd: drbd_send_ack_dp must not rely on header information\n\ndrbd commit 17c854fea474a5eb3cfa12e4fb019e46debbc4ec\ndrbd: receiving of big packets, for payloads between 64kByte and 4GByte\nintroduced a new on-the-wire packet header format.  We must no longer\nassume either format, but use the result of whatever drbd_recv_header\nhas decoded.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "004352fa60345e499379af310de73a2df1a5762a",
      "tree": "6a5e0651d30b1c7e4c0964875e44b23aad7f8ea8",
      "parents": [
        "f10f262349762c96ab247b6108af3a30b52b6f5a"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Oct 05 20:13:58 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:44 2010 +0200"
      },
      "message": "drbd: Fix regression in recv_bm_rle_bits (compressed bitmap)\n\nWe used to be16_to_cpu the length field in our received packet header.\ndrbd commit 17c854fea474a5eb3cfa12e4fb019e46debbc4ec\n    drbd: receiving of big packets, for payloads between 64kByte and 4GByte\nchanged this, but forgot to adjust a few places where we relied on\nh-\u003elength being in native byte order.\n\nThis broke the receiving side of the RLE compressed bitmap exchange.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f10f262349762c96ab247b6108af3a30b52b6f5a",
      "tree": "a93a849cdfcad4264ac6313a9806254756a36013",
      "parents": [
        "00b425377d60e67e86721d4ce6d7cbf131a5d0fd"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Oct 05 16:50:17 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:43 2010 +0200"
      },
      "message": "drbd: Fixed a stupid copy and paste error\n\nThis caused rs_planed to be not in sync with the content of the fifo.\nThat in turn could cause that the resync comes to a complete halt.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "00b425377d60e67e86721d4ce6d7cbf131a5d0fd",
      "tree": "7e815cbdc90ebd1c801157f707e1e278a739ed68",
      "parents": [
        "f65363cfa05fe60874030461a0eeb84b7e60cba4"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Oct 05 11:19:39 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:42 2010 +0200"
      },
      "message": "drbd: Allow larger values for c-fill-target.\n\nConnections through a compressing proxy might have more bits\non the fly. 500MByte instead of 50MByte\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f65363cfa05fe60874030461a0eeb84b7e60cba4",
      "tree": "02bec26e82989cf7fff97e3f4ff0108b74032832",
      "parents": [
        "8979d9c9e0bc8e54cf5bd7a89abb2145f087b5e1"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Sep 14 20:14:09 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:41 2010 +0200"
      },
      "message": "drbd: fix possible access after free\n\nIf we release the page pointed to by md_io_tmpp, we need to zero out the\npointer, too, as that may be used later to decide whether we need to\nallocate a new page again.\n\nImpact: a previously freed page may be used and clobbered.  Depending on\nwhat that particular page is being used for meanwhile, this may result\nin silent data corruption of completely unrelated things.\n\nOnly of concern on devices with logical_block_size !\u003d 512 byte,\nif you re-attach after becoming diskless once.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8979d9c9e0bc8e54cf5bd7a89abb2145f087b5e1",
      "tree": "2e22d97889ec466d954dd9db39de6b9ba5564703",
      "parents": [
        "fb22c402ffdf61dd121795b5809de587185d5240"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Sep 14 15:56:29 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:41 2010 +0200"
      },
      "message": "drbd: protocol compatibility for maximum packet sizes\n\nTwo missing corner cases to the \"maximum packet size\" handshake.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fb22c402ffdf61dd121795b5809de587185d5240",
      "tree": "7c3de5410eff21b3a3b105dc63d5e2034f2c7c63",
      "parents": [
        "78db89287ce0f146a1f2a019a0b243ea4557caac"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Sep 08 23:20:21 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:40 2010 +0200"
      },
      "message": "drbd: Track the reasons to suspend IO in dedicated state bits\n\nThere are three ways to get IO suspended:\n\n * Loss of any access to data\n * Fence-peer-handler running\n * User requested to suspend IO\n\nTrack those in different bits, so that one condition clearing its\nstate bit does not interfere with the other two conditions.\n\nOnly when the user resumes IO he overrules all three bits.\n\nThe fact is hidden from the user, he sees only a single suspend\nbit.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "78db89287ce0f146a1f2a019a0b243ea4557caac",
      "tree": "2617438befb8ade666103f40f009e89f184464bc",
      "parents": [
        "5a75cc7cfbb98e896232902214432dae30653dfe"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Sep 13 13:27:10 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:39 2010 +0200"
      },
      "message": "drbd: DIV_ROUND_UP not needed here\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5a75cc7cfbb98e896232902214432dae30653dfe",
      "tree": "278a4625bc5ba0bd406357c2ef4450e9c98eb188",
      "parents": [
        "f2906e183f5460df9d9e774f5952f5ff670b3913"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Sep 09 14:22:21 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:38 2010 +0200"
      },
      "message": "drbd: Fixed compatibility with protocol versions smaller than 95\n\nForgot to consider the max size for the 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": "f2906e183f5460df9d9e774f5952f5ff670b3913",
      "tree": "f30736542841df13d66c5aa3f6507105fdc8f7ac",
      "parents": [
        "02bc7174ae83617b4364dc179d95d848d9fd6db5"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Jul 21 17:04:32 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:37 2010 +0200"
      },
      "message": "drbd: fix for spurious full sync (becoming sync target looked like invalidate)\n\nIf a synctarget lost connection while being WFSyncUUID,\ndue to \"state sanitizing\", the attempted state change to SyncTarget\nlooked like an \"invalidate\" to after_state_ch() later,\nthus caused a full sync on next handshake (Bug #318).\n\ndrbd0: PingAck did not arrive in time.\ndrbd0: peer( Primary -\u003e Unknown ) conn( WFSyncUUID -\u003e NetworkFailure ) pdsk( UpToDate -\u003e DUnknown )\n\n        from  : { cs:NetworkFailure ro:Secondary/Unknown ds:UpToDate/DUnknown r--- }\n        to    : { cs:SyncTarget ro:Secondary/Unknown ds:Inconsistent/DUnknown r--- }\n        after sanizising, resulted in\n        state: { cs:NetworkFailure ro:Secondary/Unknown ds:Inconsistent/DUnknown r--- }\n        drbd0: disk( UpToDate -\u003e Inconsistent )\n\nFix:\ndon\u0027t mask state transition errors in \"sanitizing\",\nso the requested state change to SyncTarget fails,\ninstead of being implicitly \"remaped\" to invalidate.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "02bc7174ae83617b4364dc179d95d848d9fd6db5",
      "tree": "df2e16cc3b4e3ac23cceffa710ee6b2daccac384",
      "parents": [
        "a821cc4a9a8d9e67356f9a5cfc1206aa3cfd30f7"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Sep 06 12:13:20 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:36 2010 +0200"
      },
      "message": "drbd: cosmetic, don\u0027t report resync for online-verify\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a821cc4a9a8d9e67356f9a5cfc1206aa3cfd30f7",
      "tree": "d63daf31b85cefc993e6345fcd3ef3f6faac6474",
      "parents": [
        "1d53f09e170e477de67babd7a10e277479260d51"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Sep 06 12:31:37 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:35 2010 +0200"
      },
      "message": "drbd: fix spurious protocol error\n\nIf we cannot satisfy a request (because our disk just broke),\nwe still need to drain the payload.  Or we\u0027ll get a protocol error\nwhen interpreting the payload as DRBD packet header.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1d53f09e170e477de67babd7a10e277479260d51",
      "tree": "c795de9e5aeaf8324eeb25ea20c7b94f573bca83",
      "parents": [
        "435f07402b3165b90592073bc0f8c6f8fa160ff9"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Sun Sep 05 01:13:24 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:34 2010 +0200"
      },
      "message": "drbd: fix potential kernel BUG (NULL deref)\n\nBUG trace would look like:\n lc_find\n drbd_rs_complete_io\n got_OVResult\n drbd_asender\n\nCould be triggered by explicit, or IO-error policy based,\ndetach during online-verify.\n\nWe may only dereference mdev-\u003eresync, if we first get_ldev(), as the\ndisk may break any time, causing mdev-\u003eresync to disappear once all\nldev references have been returned.\nAlready in flight online-verify requests or replies may still come in,\nwhich we then need to ignore.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "435f07402b3165b90592073bc0f8c6f8fa160ff9",
      "tree": "cef4df9cde79857ad5590358c5f155c2f8bd84a2",
      "parents": [
        "76d2e7eca8e7675c6d7a6592f9e747b121cc8a87"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Sep 06 12:30:25 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:33 2010 +0200"
      },
      "message": "drbd: don\u0027t count sendpage()d pages only referenced by tcp as in use\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "76d2e7eca8e7675c6d7a6592f9e747b121cc8a87",
      "tree": "0fef8428c57574046bdd650c4040c9c3d299aba5",
      "parents": [
        "1090c056c5eb6d5335cceb381683e77ac24c71ab"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 25 11:58:05 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:32 2010 +0200"
      },
      "message": "drbd: Adding support for BIO/Request flags: REQ_FUA, REQ_FLUSH and REQ_DISCARD\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1090c056c5eb6d5335cceb381683e77ac24c71ab",
      "tree": "66c38894d55a57797a27569ec77dd5090a9b08f3",
      "parents": [
        "ee15b038164fcf19b798021762dee3cf5cbc6433"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Jul 19 17:41:04 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:31 2010 +0200"
      },
      "message": "drbd: drbd_md_sync before calling user space helpers\n\nJust in case we have some pending meta data changes to sync, do it\nbefore we call our userland helper, as that may take some time,\nor even cause a hard reboot.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ee15b038164fcf19b798021762dee3cf5cbc6433",
      "tree": "8d2cca781af96296a591a14928ece247fc682ef3",
      "parents": [
        "63106d3c6c769b6219bd04edde513b12abae3f61"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Sep 03 10:00:09 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:30 2010 +0200"
      },
      "message": "drbd: fix race on meta-data update, addendum\n\naddendum to baa33ae4eaa4477b60af7c434c0ddd1d182c1ae7\n\nThe race:\n    drbd_md_sync()\n\tif (!test_and_clear_bit(MD_DIRTY, \u0026mdev-\u003eflags))\n\t\treturn;\n    \u003d\u003d\u003e RACE with drbd_md_mark_dirty() rearming the timer.\n\tdel_timer(\u0026mdev-\u003emd_sync_timer);\n\n    Fixed by moving the del_timer before the test_and_clear_bit.\n\nAdditionally only rearm the timer in drbd_md_mark_dirty, if MD_DIRTY was\nnot already set, reduce the grace period from five to one second, and\nadd an ifdef\u0027ed debuging aid to find code paths missing an explicit\ndrbd_md_sync, if any, as those are the only relevant ones for this race.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "63106d3c6c769b6219bd04edde513b12abae3f61",
      "tree": "5131a90796858c44bfb4cceda6c2a4760d7e007d",
      "parents": [
        "ef50a3e34f93a067ada541346be3175e924331a2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Sep 01 15:47:15 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:29 2010 +0200"
      },
      "message": "drbd: Removed a race that could cause unexpected execution of w_make_resync_request()\n\nThe actual race happened int the drbd_start_resync() function. Where\ndrbd_resync_finished() -\u003e __drbd_set_state() set STOP_SYNC_TIMER and\narmed the timer.\n\nIf the timer fired before execution reaches the mod_timer statement\nat the end of drbd_start_resync() the latter would cause an\nunexpected call to w_make_resync_request().\n\nRemoved the STOP_SYNC_TIMER bit, and base it on the connection state.\n\nThe STOP_SYNC_TIMER bit probably originates probably the time before\nthe state engine.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ef50a3e34f93a067ada541346be3175e924331a2",
      "tree": "455fd4a7d4b11ead24b7e297f25b02afabc36c76",
      "parents": [
        "3f3a9b849d2b703934c07fa17f5eac2dc37c1f6b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Sep 01 14:39:30 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:28 2010 +0200"
      },
      "message": "drbd: implicitly create unconfigured devices on sync-after dependencies\n\nIf pacemaker (for example) decided to initialize minor devices not in\nthe exact sync-after dependency order, the configuration partially\nfailed with an error \"The sync-after minor number is invalid\". (Bugz. #322)\n\nWe can avoid that by implicitly creating unconfigured minor devices,\nif others depend on them.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "3f3a9b849d2b703934c07fa17f5eac2dc37c1f6b",
      "tree": "12aff51d5d92a0642232205b95eb9e55e85dd2bf",
      "parents": [
        "c518d04fdec3d8b9d6f8b2228040934de9ee6708"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Sep 01 15:12:12 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:28 2010 +0200"
      },
      "message": "drbd: fix race on meta-data update\n\nThe race:\n\tdrbd_md_mark_dirty()\n\tdrbd_md_sync()\n\t\tif (!test_and_clear_bit(MD_DIRTY, \u0026mdev-\u003eflags))\n\t\t\treturn;\n\t\tdrbd_md_sync_page_io(mdev, mdev-\u003eldev, sector, WRITE)\n  \u003d\u003d\u003e RACE\n\t\tclear_bit(MD_DIRTY, \u0026mdev-\u003eflags); \u003c\u003d\u003d spurious\n\nFixed by removing the spurious clear_bit.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c518d04fdec3d8b9d6f8b2228040934de9ee6708",
      "tree": "8d749aa26634287fe59fba8fe181b0f43f36af1a",
      "parents": [
        "0778286a133d2d3f81861a4e5db308e359583006"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Sep 01 09:50:23 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:27 2010 +0200"
      },
      "message": "drbd: fix race between deconfiguring and reconfiguring network\n\nIf a drbd_nl_net_conf hits the small window between the state change\nto C_STANDALONE and the corresponding cleanup in after_state_ch,\nthat cleanup would throw away stuff we now need again,\nand later trigger BUG_ON()s.\n\nFixed by properly serializing the new config request with\nany pending cleanup.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0778286a133d2d3f81861a4e5db308e359583006",
      "tree": "14bdfe375481d8954ada1ddaa0bc84fcaba4e23d",
      "parents": [
        "d53733893dc43f4ebb5be510863c5debf0f8990b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 31 12:00:50 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:26 2010 +0200"
      },
      "message": "drbd: Disable activity log updates when the whole device is out of sync\n\nWhen the complete device is marked as out of sync, we can disable\nupdates of the on disk AL. Currently AL updates are only disabled\nif one uses the \"invalidate-remote\" command on an unconnected,\nprimary device, or when at attach time all bits in the bitmap are\nset.\n\nAs of now, AL updated do not get disabled when a all bits becomes\nset due to application writes to an unconnected DRBD device.\nWhile this is a missing feature, it is not considered important,\nand might get added later.\n\nBTW, after initializing a \"one legged\" DRBD device\ndrbdadm create-md resX\ndrbdadm -- --force primary resX\nAL updates also get disabled, until the first connect.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d53733893dc43f4ebb5be510863c5debf0f8990b",
      "tree": "dbc9bb129b6c4774747be8b1d68dee6d18052637",
      "parents": [
        "02918be2273a6b086292e0d85b740336eda46e36"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Aug 23 15:18:33 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:25 2010 +0200"
      },
      "message": "drbd: Actually allow BIOs up to 128k (was 32k).\n\nNow we have multiple BIOs per ee, packets with a 32 bit length field,\nit gets time to use these goodies.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "02918be2273a6b086292e0d85b740336eda46e36",
      "tree": "2ec58d863e30be994bfe6ae6feb3ab888fb5c9f0",
      "parents": [
        "0b70a13dac014ec9274640b9e945bde493ba365e"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Aug 20 14:35:10 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:24 2010 +0200"
      },
      "message": "drbd: receiving of big packets, for payloads between 64kByte and 4GByte\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0b70a13dac014ec9274640b9e945bde493ba365e",
      "tree": "cf771e2f8018c0b59bc14fbf00c5c9cdc9caed7c",
      "parents": [
        "204bba9965c4cc175bf5bc65ddd19889e9085c72"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Aug 20 13:36:10 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:23 2010 +0200"
      },
      "message": "drbd: Sending of big packets, for payloads from 64KByte to 4GByte\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "204bba9965c4cc175bf5bc65ddd19889e9085c72",
      "tree": "49af2eedad06561d26fea943b3be5a89da07bd93",
      "parents": [
        "48acf8689847c061bd82c808c379f1bd79dfe407"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Aug 23 16:17:13 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:22 2010 +0200"
      },
      "message": "drbd: Bugfix for regression introduced with f9bc8913c06022e\n\nIf we intent to use the block_id member of an epoch entry,\nwe may not use the digest member.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "48acf8689847c061bd82c808c379f1bd79dfe407",
      "tree": "1b1f26d2a7ab56628587e5e8049fc80fc7d0fa07",
      "parents": [
        "0f0601f4ea2f53cfd8bcae060fb03d9bbde070ec"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Aug 23 15:51:56 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:21 2010 +0200"
      },
      "message": "drbd: Microfix: Assigning sector once is sufficient\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0f0601f4ea2f53cfd8bcae060fb03d9bbde070ec",
      "tree": "42bcbd8edf48c9cee526893108cc69b4918a9f64",
      "parents": [
        "80a40e439e5a3f30b0a6210a1add6d7c33392e54"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 11 23:40:24 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:20 2010 +0200"
      },
      "message": "drbd: new configuration parameter c-min-rate\n\nWe now track the data rate of locally submitted resync related requests,\nand can thus detect non-resync activity on the lower level device.\n\nIf the current sync rate is above c-min-rate, and the lower level device\nappears to be busy, we throttle the resyncer.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "80a40e439e5a3f30b0a6210a1add6d7c33392e54",
      "tree": "4442914b7bb70a1d9bde4be3cd3eb7085738ed66",
      "parents": [
        "1d7734a0df02ff5068ff8baa1447c7baee601db1"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 11 23:28:00 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:19 2010 +0200"
      },
      "message": "drbd: reduce code duplication when receiving data requests\n\nalso canonicalize the return values of read_for_csum\nand drbd_rs_begin_io to return -ESOMETHING, or 0 for success.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1d7734a0df02ff5068ff8baa1447c7baee601db1",
      "tree": "2b01470ccd1523328c9e243801266aff9e2df391",
      "parents": [
        "0bb70bf601579b0d4c56acbb54b8eb0688541e19"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 11 21:21:50 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:18 2010 +0200"
      },
      "message": "drbd: use rolling marks for resync speed calculation\n\nThe current resync speed as displayed in /proc/drbd fluctuates a lot.\nUsing an array of rolling marks makes this calculation much more stable.\nWe used to have this (a long time ago with 0.7), but it got lost somehow.\n\nIf \"stalled\", do not discard the rest of the information, just add a\n\" (stalled)\" tag to the progress line.\n\nThis patch also shortens a spinlock critical section somewhat, and\nreduces the number of atomic operations in put_ldev.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0bb70bf601579b0d4c56acbb54b8eb0688541e19",
      "tree": "d341c4a385be6f977ec1bcf78cd75cc60ecbc871",
      "parents": [
        "c36c3ced692b38d0cf90a5e6f875be2f9ebbc037"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 11 20:53:21 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:17 2010 +0200"
      },
      "message": "drbd: remove outdated comment and dead code\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c36c3ced692b38d0cf90a5e6f875be2f9ebbc037",
      "tree": "e8384ed0c80e2ce057006d83944a299445811380",
      "parents": [
        "85719573dd716bc2ac3e098b44adfed884250bab"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 11 20:42:55 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:16 2010 +0200"
      },
      "message": "drbd: let drbd_free_ee implicitly free any digest\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "85719573dd716bc2ac3e098b44adfed884250bab",
      "tree": "494e7797c923c7c584dc3c16d4d6ab2fcd6996a0",
      "parents": [
        "d207450cf2731c6a2afa8c78fb31c7206cd35eba"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jul 21 10:20:17 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:15 2010 +0200"
      },
      "message": "drbd: Replaced some casts by an union. Improved comments\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d207450cf2731c6a2afa8c78fb31c7206cd35eba",
      "tree": "2cd48ba58ebc3dd2c7243f5cf06240e88e960860",
      "parents": [
        "778f271dfe7a7173c0bae2d6cde8d9bd1533e668"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jul 22 15:27:27 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:14 2010 +0200"
      },
      "message": "drbd: Bugfix: rs_in_flight could become wrong if read_for_csum() requested reschedule later\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "778f271dfe7a7173c0bae2d6cde8d9bd1533e668",
      "tree": "1c057622152bd652102749b488653bff8be24c2a",
      "parents": [
        "8e26f9ccb9be00fdb33551a34c8f6029e89ab79f"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jul 06 11:14:00 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:14 2010 +0200"
      },
      "message": "drbd: The new, smarter resync speed controller\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8e26f9ccb9be00fdb33551a34c8f6029e89ab79f",
      "tree": "0a16e6a5c9f5c42cbc375ac8e3e180011b214743",
      "parents": [
        "9a31d7164d409ca59cfadb7957ac7b0acf4545b8"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jul 06 17:25:54 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:13 2010 +0200"
      },
      "message": "drbd: New sync_param packet, that includes the parameters of the new controller\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "9a31d7164d409ca59cfadb7957ac7b0acf4545b8",
      "tree": "3859b808c97180308d796f87d6af6fd9888b7f5f",
      "parents": [
        "d28fd092a55b504a0d699b65802a995086d70647"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jul 05 13:42:03 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:38:12 2010 +0200"
      },
      "message": "drbd: New sync parameters for the smart resync rate controller\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d28fd092a55b504a0d699b65802a995086d70647",
      "tree": "80071a61faa7e38cd6df6be155dd99e0f455a821",
      "parents": [
        "e756414f7daa93b862f1670dd0a6aaa676ea71e3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Jul 09 23:28:10 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 18:31:43 2010 +0200"
      },
      "message": "drbd: fix list corruption (recent regression)\n\nThe commit 288f422ec13667de40b278535d2a5fb5c77352c4\n drbd: Track all IO requests on the TL, not writes only\nmoved a list_add_tail(req, ) into a region where req\nmay have just been freed due to conflict detection.\n\nFix this by adding a proper cleanup section for that code path.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e756414f7daa93b862f1670dd0a6aaa676ea71e3",
      "tree": "7c20a61d7483db6279279bbeadd245420b810a1d",
      "parents": [
        "6709893059105d7859ae772af70c7db5bbab7de0"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jun 29 17:35:34 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:12:07 2010 +0200"
      },
      "message": "drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "6709893059105d7859ae772af70c7db5bbab7de0",
      "tree": "939d177fc3f70970d46442ee7953b1467d6aabc5",
      "parents": [
        "f70b3511599c49a3dc20ae349d6cdc5af47659df"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 24 16:24:25 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:09:09 2010 +0200"
      },
      "message": "drbd: Make sure tl_restart(, resend) can not get called multiple times for a new connection\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "f70b3511599c49a3dc20ae349d6cdc5af47659df",
      "tree": "1d5971f48f5fe95988df64f5ab1f22333c492dc9",
      "parents": [
        "8f488156c0635dcc9c668737d05386113a745ef9"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 24 14:34:40 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:08:27 2010 +0200"
      },
      "message": "drbd: Do not try to free tl_hash in drbd_disconnect() when IO is suspended\n\nWe may not free tl_hash when IO is suspended, since we can not wait\nuntil ap_bio_cnt reaches zero.\n\nWe can do this after susp reched 0, since then tl_clear was called\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8f488156c0635dcc9c668737d05386113a745ef9",
      "tree": "9c589bfbb57ece853b9960c0e835fbc95a1ca8eb",
      "parents": [
        "cfa03415a14dd0055f2ff8c3d348d4c1452acba6"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 24 12:05:53 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:05:32 2010 +0200"
      },
      "message": "drbd: Allow attach while IO is suspended\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "cfa03415a14dd0055f2ff8c3d348d4c1452acba6",
      "tree": "760aa04f76edd0333324705e86b7a7a306f457c4",
      "parents": [
        "84dfb9f564208a0331131d1ab922382c7d61a553"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jun 23 17:18:51 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:05:08 2010 +0200"
      },
      "message": "drbd: Allow tl_restart() to do IO completion while IO is suspended\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "84dfb9f564208a0331131d1ab922382c7d61a553",
      "tree": "1506d6c318afa4a94b13bab6af983031eac5e3cd",
      "parents": [
        "65d922c33ebd359db25d5846929b2eafc4238fcc"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jun 23 11:20:05 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:04:46 2010 +0200"
      },
      "message": "drbd: Fixed a deadlock, probably only affected UP machines\n\nAfter disconnect (most likely mdev-\u003enet_cnt \u003d\u003d 0) and we are\nstill in an unstable state (!drbd_state_is_stable()). When we\nget an IO request in drbd_get_max_buffers() (called from\n__inc_ap_bio_cond(), called from inc_ap_bio()) we wake up\nmisc_wait. Misc_wait is also used in inc_ap_bio() to sleep\nuntil the outcome of __inc_ap_bio_cond() changes. \u003d\u003e Busy loop!\n\nSolution: Have a dedicated wait queue for get_net_conf() and\nput_net_conf().\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "65d922c33ebd359db25d5846929b2eafc4238fcc",
      "tree": "f8393356094f3e9bb62521d50fbf300184851328",
      "parents": [
        "481c6f503213ab14f69ce88fff7b1ece325522f2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jun 16 16:18:09 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:04:10 2010 +0200"
      },
      "message": "drbd: Do not do a hard state change when establishing a connection [bugz 304]\n\nMake sure the state engine can deny two primaries to connect\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "481c6f503213ab14f69ce88fff7b1ece325522f2",
      "tree": "6d6da7d5e2893349116cfc89e6b7c755965c723a",
      "parents": [
        "43a5182cccae5850f7590f78dd9651bd407be440"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jun 22 14:03:27 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 15:01:37 2010 +0200"
      },
      "message": "drbd: Ensure that the peer was not rebootet in the meantime before resending TL\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "43a5182cccae5850f7590f78dd9651bd407be440",
      "tree": "b3bed34cdd96b8272134f3b00441f109193292af",
      "parents": [
        "87f7be4cf88e93069f4cc63baf2ce70fdfc59c63"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jun 11 11:26:34 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:59:21 2010 +0200"
      },
      "message": "drbd: Delayed creation of current-UUID\n\nWhen a fencing policy of \"resource-and-stonith\" is configured,\nand DRBD looses connection to it\u0027s peer, we can delay the\ncreation of a new current-UUID until IO gets thawed.\n\nThat allows one to deploy fence-peer handlers that actually\ncommit suicide on the machine they get started.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "87f7be4cf88e93069f4cc63baf2ce70fdfc59c63",
      "tree": "b76a190b93d4a5d3629c7f25737e11c8231efd6c",
      "parents": [
        "1616a25493cce727d582886f162c5bb0abd87e6a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jun 11 13:56:33 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:58:36 2010 +0200"
      },
      "message": "drbd: Run the fence-peer helper asynchronously\n\nSince we can not thaw the transfer log, the next logical step is\nto allow reconnects while the fence-peer handler runs.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1616a25493cce727d582886f162c5bb0abd87e6a",
      "tree": "d8dce723c24a8ff4c3ddc41b43b9f4a4c19b3a91",
      "parents": [
        "999122bc188a4d0a4847bdf1915d357bd6ab53dc"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 10 16:55:15 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:57:22 2010 +0200"
      },
      "message": "drbd: Reduce the verbosity of some state transitions\n\nState transitions in the space of non-allowed states used\nto be very noisy. Reduce that, since that has little value\nfor the majority of the user base.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "999122bc188a4d0a4847bdf1915d357bd6ab53dc",
      "tree": "0f9362cc0b5c58f48b9836bf40ee28e095d7dd5a",
      "parents": [
        "18a50fa213d46d5592f6542c91ab4c4760cf346c"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 10 16:46:54 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:56:50 2010 +0200"
      },
      "message": "drbd: Removing a by now obsolete clause in the state sanitizing\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "18a50fa213d46d5592f6542c91ab4c4760cf346c",
      "tree": "2af1520311c4671bd0db2765a9b939b40e3ace04",
      "parents": [
        "894c6a946199cf91e52bc1864c3dc6529cceb3db"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jun 21 14:14:15 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:56:00 2010 +0200"
      },
      "message": "drbd: Now we need to handle the ed_uuid of an diskless, unconnected primary correctly\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "894c6a946199cf91e52bc1864c3dc6529cceb3db",
      "tree": "8fcb4eee7d538717943fba7d55f079efac95fbe0",
      "parents": [
        "47ff2d0a8e7ce87fed180729e8341f650bf585c8"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jun 18 16:03:20 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:55:11 2010 +0200"
      },
      "message": "drbd: Disabled the crashed_primary detection for re-attach of last data while IO is frozen\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "47ff2d0a8e7ce87fed180729e8341f650bf585c8",
      "tree": "a8b9fb2f76ebf70090328dba7c57144d8352d9e5",
      "parents": [
        "265be2d09853d425ad14a61cda0ca63345613d0c"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Jun 18 13:56:57 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:53:42 2010 +0200"
      },
      "message": "drbd: Do not allow a fencing-policy of resource-and-stonith with protocol A\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "265be2d09853d425ad14a61cda0ca63345613d0c",
      "tree": "cc2f419d8aaa41fd088f3d24ca134c4d7f51aa64",
      "parents": [
        "905cd7d8ac9b18e1f122b90dbebe1246b1c364fd"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon May 31 10:14:17 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:52:53 2010 +0200"
      },
      "message": "drbd: Finished the \"on-no-data-accessible suspend-io;\" functionality\n\nWhen no data is accessible (no connection to the peer, nor a local disk)\nallow the user to select to freeze all IO operations instead of getting\nIO errors.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "905cd7d8ac9b18e1f122b90dbebe1246b1c364fd",
      "tree": "6b69cbbfc35ea954b0bd4ad1da5f541fe8aca003",
      "parents": [
        "5ba82308ea766b33404cb130a88fe4113d9c20a3"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon May 10 16:03:10 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:39:38 2010 +0200"
      },
      "message": "drbd: Removed redundant error checks in the request code path\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5ba82308ea766b33404cb130a88fe4113d9c20a3",
      "tree": "ec21a7d1cb92837cd98a6e9e30d44cb4cd63aa87",
      "parents": [
        "b9b98716f83856b928f1c985ab55520c67663dd2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Jun 10 13:30:36 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:37:33 2010 +0200"
      },
      "message": "drbd: factored drbd_req_make_private_bio() out of drbd_req_new()\n\nPreparing tl_thaw_dio()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "b9b98716f83856b928f1c985ab55520c67663dd2",
      "tree": "d935bc8efc8a7ecc6a05225ff941a16ee1d8bfcf",
      "parents": [
        "11b58e73a3a3d1bbb582370d59f9b2c4d0136b42"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jun 22 11:26:48 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:36:51 2010 +0200"
      },
      "message": "drbd: Do not send two barriers without any writes between them\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "11b58e73a3a3d1bbb582370d59f9b2c4d0136b42",
      "tree": "9ca5b48e368da91f6cc1888440b6ea9ffe9a7e3f",
      "parents": [
        "2a80699f807885d501f08a7006f6a56c1c937a6e"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 12 17:08:26 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:35:58 2010 +0200"
      },
      "message": "drbd: factored tl_restart() out of tl_clear().\n\nIf IO was frozen for a temporal network outage, resend the\ncontent of the transfer-log into the newly established connection.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2a80699f807885d501f08a7006f6a56c1c937a6e",
      "tree": "4a3cefc56201d9f88f898a1560945f85a09077d5",
      "parents": [
        "288f422ec13667de40b278535d2a5fb5c77352c4"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jun 09 14:07:43 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:26:45 2010 +0200"
      },
      "message": "drbd: mod_req has now a 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": "288f422ec13667de40b278535d2a5fb5c77352c4",
      "tree": "fc8f594c05b05637a5052a41c603bbdad6f8641e",
      "parents": [
        "7e602c0aaf3e686c36cc742119f0f53f42e9befe"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu May 27 15:07:43 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:25:20 2010 +0200"
      },
      "message": "drbd: Track all IO requests on the TL, not writes only\n\nWith that the drbd_fail_pending_reads() function becomes obsolete.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "7e602c0aaf3e686c36cc742119f0f53f42e9befe",
      "tree": "788ffe2a83d907cbd83b650997775eeac2bc6b1b",
      "parents": [
        "504c6d1b44bc6e694bdba8d9a2a4e046275b5e2b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu May 27 14:49:27 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 14:23:45 2010 +0200"
      },
      "message": "drbd: renamed drbd_tl_epoch.n_req to drbd_tl_epoch.n_writes\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "2a48fc0ab24241755dc93bfd4f01d68efab47f5a",
      "tree": "fa9ae10ce89b26b7d8ae9ce24bdfda5e3007b763",
      "parents": [
        "613655fa39ff6957754fa8ceb8559980920eb8ee"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jun 02 14:28:52 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 05 15:01:10 2010 +0200"
      },
      "message": "block: autoconvert trivial BKL users to private mutex\n\nThe block device drivers have all gained new lock_kernel\ncalls from a recent pushdown, and some of the drivers\nwere already using the BKL before.\n\nThis turns the BKL into a set of per-driver mutexes.\nStill need to check whether this is safe to do.\n\nfile\u003d$1\nname\u003d$2\nif grep -q lock_kernel ${file} ; then\n    if grep -q \u0027include.*linux.mutex.h\u0027 ${file} ; then\n            sed -i \u0027/include.*\u003clinux\\/smp_lock.h\u003e/d\u0027 ${file}\n    else\n            sed -i \u0027s/include.*\u003clinux\\/smp_lock.h\u003e.*$/include \u003clinux\\/mutex.h\u003e/g\u0027 ${file}\n    fi\n    sed -i ${file} \\\n        -e \"/^#include.*linux.mutex.h/,$ {\n                1,/^\\(static\\|int\\|long\\)/ {\n                     /^\\(static\\|int\\|long\\)/istatic DEFINE_MUTEX(${name}_mutex);\n\n} }\"  \\\n    -e \"s/\\(un\\)*lock_kernel\\\u003e[ ]*()/mutex_\\1lock(\\\u0026${name}_mutex)/g\" \\\n    -e \u0027/[      ]*cycle_kernel_lock();/d\u0027\nelse\n    sed -i -e \u0027/include.*\\\u003csmp_lock.h\\\u003e/d\u0027 ${file}  \\\n                -e \u0027/cycle_kernel_lock()/d\u0027\nfi\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "dd3932eddf428571762596e17b65f5dc92ca361b",
      "tree": "57cec5ae2f862037f78b7e993323d77955bb6463",
      "parents": [
        "8786fb70ccb36c7cff64680bb80c46d3a09d44db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 16 20:51:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 20:52:58 2010 +0200"
      },
      "message": "block: remove BLKDEV_IFL_WAIT\n\nAll the blkdev_issue_* helpers can only sanely be used for synchronous\ncaller.  To issue cache flushes or barriers asynchronously the caller needs\nto set up a bio by itself with a completion callback to move the asynchronous\nstate machine ahead.  So drop the BLKDEV_IFL_WAIT flag that is always\nspecified when calling blkdev_issue_* and also remove the now unused flags\nargument to blkdev_issue_flush and blkdev_issue_zeroout.  For\nblkdev_issue_discard we need to keep it for the secure discard flag, which\ngains a more descriptive name and loses the bitops vs flag confusion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c8bf1336824ebd698d37b71763e1c43190f2229a",
      "tree": "19948b3c686ba71bb2e85883a5325cec069015b7",
      "parents": [
        "76be97c1fc945db08aae1f1b746012662d643e97"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Sep 10 20:07:38 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Fri Sep 10 20:07:38 2010 +0200"
      },
      "message": "Consolidate min_not_zero\n\nWe have several users of min_not_zero, each of them using their own\ndefinition.  Move the define to kernel.h.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.home.kernel.dk\u003e\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "e7f52dfb4f378ea1bbfd4476f4e8ba42f5fb332c",
      "tree": "1f31f9c3fd2f3c9150d08c9429b3c2a36f15d5f5",
      "parents": [
        "85f4cc17a62c3ac9edeaf120cdae7261df458053"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Aug 03 20:20:20 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:57 2010 +0200"
      },
      "message": "drbd: revert \"delay probes\", feature is being re-implemented differently\n\nIt was a now abandoned attempt to throttle resync bandwidth\nbased on the delay it causes on the bulk data socket.\nIt has no userbase yet, and has been disabled by\n9173465ccb51c09cc3102a10af93e9f469a0af6f already.\nThis removes the now unused code.\n\nThe basic feature, namely using up \"idle\" bandwith\nof network and disk IO subsystem, with minimal impact\nto application IO, is being reimplemented differently.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    }
  ],
  "next": "85f4cc17a62c3ac9edeaf120cdae7261df458053"
}
