)]}'
{
  "log": [
    {
      "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": "6362beea8914cbd4630ccde3617d944aeca2d48f",
      "tree": "f73f703e32b7018674ae26c35c91956bc4a10045",
      "parents": [
        "5dbfe7aedf54aa7f62fd659e34371d4ea0e7bffe"
      ],
      "author": {
        "name": "Mike Miller",
        "email": "mike.miller@hp.com",
        "time": "Tue Oct 19 09:40:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Oct 19 09:40:34 2010 +0200"
      },
      "message": "cciss: fix PCI IDs for new Smart Array controllers\n\ncciss: fix PCI IDs for new controllers\n\nThis patch fixes the botched up PCI IDs of new controllers. Please consider\nthis patch for inclusion.\n\nSigned-off-by: Mike Miller \u003cmike.miller@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.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": "be70e2671b95a8982ff133ebaafff6399ad393d4",
      "tree": "86eef019bf14a50dcefea2b666cb3fd694816c11",
      "parents": [
        "2265769531afe267f864111c103b04b4427720b6"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Oct 14 11:58:20 2010 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 15 10:41:31 2010 +0200"
      },
      "message": "dynamic_debug.h: Fix dynamic_dev_dbg() macro if CONFIG_DYNAMIC_DEBUG not set\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@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": "504c6d1b44bc6e694bdba8d9a2a4e046275b5e2b",
      "tree": "3dc50274aabbb2d3bcf17a9f088444a2cacea929",
      "parents": [
        "639e2f2aa76eefaf22078dccbbf2f3483f587aa7"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Sun Sep 26 12:23:25 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sun Sep 26 12:23:25 2010 +0900"
      },
      "message": "amiga floppy: Compile failure fixes\n\no Compile fixes for amiga floppy driver.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "639e2f2aa76eefaf22078dccbbf2f3483f587aa7",
      "tree": "7df6fac9e0b45584f79ae75bf7f7d55019ff1fbc",
      "parents": [
        "786029ff810ff4a2fd52c0462713985a415417ab"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Sep 24 20:35:45 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 24 20:35:45 2010 +0200"
      },
      "message": "atari floppy: Stop sharing request queue across multiple gendisks\n\no Use one request queue per gendisk instead of sharing the queue.\n\no Don\u0027t have hardware. No compile testing or run time testing done. Completely\n  untested.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "786029ff810ff4a2fd52c0462713985a415417ab",
      "tree": "9779d53ecc99b88513be0177bfdbecb92dc6edb9",
      "parents": [
        "488211844e0c3fad6ffa98a6f3c4f2139074e79a"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Sep 24 20:35:44 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 24 20:35:44 2010 +0200"
      },
      "message": "amiga floppy: Stop sharing request queue across multiple gendisks\n\no Use one request queue per gendisk instead of sharing request queue\n\no Don\u0027t have hardware. No compile testing or run time testing done. Completely\n  untested.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "488211844e0c3fad6ffa98a6f3c4f2139074e79a",
      "tree": "c65be4db08980d2230b62b7b52320c5bb8bcf484",
      "parents": [
        "fcfb5c0ce11fe474cd6b4f7e83e0cc25f220d911"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Sep 22 09:32:36 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Sep 22 09:32:36 2010 +0200"
      },
      "message": "floppy: switch to one queue per drive instead of sharing a queue\n\nPretty straight forward conversion. Note that we do round-robin\nbetween the drives that have available requests, before we simply\nused the drive that the IO scheduler told us to. Since the IO\nscheduler doesn\u0027t care about multiple devices per queue, the resulting\nsort would not have made sense.\n\nFixed by Vivek to get rid of a double lock problem in set_next_request()\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\n"
    },
    {
      "commit": "fcfb5c0ce11fe474cd6b4f7e83e0cc25f220d911",
      "tree": "9b650860568f631fc36d0fdca15d1144bcedfb66",
      "parents": [
        "0c9f5ba7cb7435ea4b99599de4af0729f0740647"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:35 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:40 2010 +0200"
      },
      "message": "cciss: remove some superfluous tests from cciss_bigpassthru()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0c9f5ba7cb7435ea4b99599de4af0729f0740647",
      "tree": "1c80511d7a57c5ce2998d6c26eaeb5d6814a8f27",
      "parents": [
        "f32f125b1c14dcde49ec415ec941af750433251e"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:30 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:39 2010 +0200"
      },
      "message": "cciss: factor out cciss_big_passthru\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f32f125b1c14dcde49ec415ec941af750433251e",
      "tree": "85934839906b5b1b79c9c07723797db23d9727e6",
      "parents": [
        "0894b32c5c1444d25f3e988cf03415ce8dfc5142"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:25 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:37 2010 +0200"
      },
      "message": "cciss: factor out cciss_passthru\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0894b32c5c1444d25f3e988cf03415ce8dfc5142",
      "tree": "525a32e3350db1325e9ec9bdaa12271a15e66e53",
      "parents": [
        "c525919ddf0b10ff0e1f528dd50d90edfdee4797"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:20 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:36 2010 +0200"
      },
      "message": "cciss: factor out cciss_getluninfo\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c525919ddf0b10ff0e1f528dd50d90edfdee4797",
      "tree": "2c39db5a4e1e648bc5d15c7017663c2139a66aa3",
      "parents": [
        "8a4f7fbfdd76a304c8f04dde6b8fd0e5c50bbe76"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:15 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:35 2010 +0200"
      },
      "message": "cciss: factor out cciss_getdrivver\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8a4f7fbfdd76a304c8f04dde6b8fd0e5c50bbe76",
      "tree": "becfda4a679543971f2cdbc948d47cb960bf80c0",
      "parents": [
        "d18dfad4e2bf6c2d2c5c104d882b14b9fee71b14"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:10 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:34 2010 +0200"
      },
      "message": "cciss: factor out cciss_getfirmver\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "d18dfad4e2bf6c2d2c5c104d882b14b9fee71b14",
      "tree": "a7ccc43dbe19dba9b5d14ac08871813c62470c59",
      "parents": [
        "93c74931131d3a7af3a6aa18aab0d39978b5d3b5"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:56:05 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:33 2010 +0200"
      },
      "message": "cciss: factor out cciss_getbustypes\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "93c74931131d3a7af3a6aa18aab0d39978b5d3b5",
      "tree": "81f9811e6cc2f8d3072f4fbe90a242f0e4d7d5ed",
      "parents": [
        "4f43f32cd3f65cfee5f30d7e6be55854cf33809b"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:55:59 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:32 2010 +0200"
      },
      "message": "cciss: factor out cciss_getheartbeat\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "4f43f32cd3f65cfee5f30d7e6be55854cf33809b",
      "tree": "100c18f82e4ac710469136b7f037f089f4b14684",
      "parents": [
        "252161094255ffdc277b8a0e5e12b0a8ff67b10f"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:55:54 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:32 2010 +0200"
      },
      "message": "cciss: factor out cciss_setnodename\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "252161094255ffdc277b8a0e5e12b0a8ff67b10f",
      "tree": "875117a8c576bd2bfea5504f635312b1b9041383",
      "parents": [
        "4c800eed9a46f7b6a469d24e7e6051b23e62bb69"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:55:49 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:31 2010 +0200"
      },
      "message": "cciss: factor out cciss_getnodename\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "4c800eed9a46f7b6a469d24e7e6051b23e62bb69",
      "tree": "2dd28321454adc0c0d3b0af63347e25243b0d645",
      "parents": [
        "576e661c658ab7d2a15cc12d5b8a1600db81ec0a"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:55:44 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:30 2010 +0200"
      },
      "message": "cciss: factor out cciss_setintinfo\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "576e661c658ab7d2a15cc12d5b8a1600db81ec0a",
      "tree": "1396cc0c1192b154f1f9e3cad80218e65e263283",
      "parents": [
        "0a25a5aee727c4a56c7d39e0e595947b02ee2696"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:55:39 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:29 2010 +0200"
      },
      "message": "cciss: factor out cciss_getintinfo\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0a25a5aee727c4a56c7d39e0e595947b02ee2696",
      "tree": "61262c46f4547de8b87c4a91df5e195f7fe4e76c",
      "parents": [
        "ee86273062cbb310665fe49e1f1937d2cf85b0b9"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Thu Aug 26 13:55:34 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:12:28 2010 +0200"
      },
      "message": "cciss: factor out cciss_getpciinfo\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ee86273062cbb310665fe49e1f1937d2cf85b0b9",
      "tree": "cca87f85feafedb52bcc0687b6daa6b15895b199",
      "parents": [
        "9ee47476d6734c9deb9ae9ab05d963302f6b6150"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Mon Aug 23 15:16:00 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Aug 23 15:18:10 2010 +0200"
      },
      "message": "loop: add some basic read-only sysfs attributes\n\nCreate /sys/block/loopX/loop directory and provide these attributes:\n - backing_file\n - autoclear\n - offset\n - sizelimit\n\nThis loop directory is present only if loop device is configured.\n\nTo be used in util-linux-ng (and possibly elsewhere like udev rules)\nwhere code need to get loop attributes from kernel (and not store\nduplicate info in userspace).\n\nMoreover loop ioctls are not even able to provide full backing\nfile info because of buffer limits.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9ee47476d6734c9deb9ae9ab05d963302f6b6150",
      "tree": "d6d5a54831322628427eb54cb3edc2f78a6125f4",
      "parents": [
        "76be97c1fc945db08aae1f1b746012662d643e97",
        "144dcfc01221e1a79fa47ca897df7d5e3ab298e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 19:55:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 19:55:14 2010 -0700"
      },
      "message": "Merge branch \u0027radix-tree\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n\n* \u0027radix-tree\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev:\n  radix-tree: radix_tree_range_tag_if_tagged() can set incorrect tags\n  radix-tree: clear all tags in radix_tree_node_rcu_free\n"
    },
    {
      "commit": "76be97c1fc945db08aae1f1b746012662d643e97",
      "tree": "3b99e4b7c76bf5e3905dd8d7092f8f56b249d773",
      "parents": [
        "3dc8d7f07e7496c0c6702e7e4b1acc179fa94019"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 17:43:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 17:43:29 2010 -0700"
      },
      "message": "Linux 2.6.36-rc2\n"
    },
    {
      "commit": "144dcfc01221e1a79fa47ca897df7d5e3ab298e6",
      "tree": "70b0d0bf73815fb242502a562da3a8c7667843ba",
      "parents": [
        "b6dd08652e2b70e73661c4975ae46398066c06f8"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Aug 23 10:33:53 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Aug 23 10:33:53 2010 +1000"
      },
      "message": "radix-tree: radix_tree_range_tag_if_tagged() can set incorrect tags\n\nCommit ebf8aa44beed48cd17893a83d92a4403e5f9d9e2 (\"radix-tree:\nomplement function radix_tree_range_tag_if_tagged\") does not safely\nset tags on on intermediate tree nodes. The code walks down the tree\nsetting tags before it has fully resolved the path to the leaf under\nthe assumption there will be a leaf slot with the tag set in the\nrange it is searching.\n\nUnfortunately, this is not a valid assumption - we can abort after\nsetting a tag on an intermediate node if we overrun the number of\ntags we are allowed to set in a batch, or stop scanning because we\nwe have passed the last scan index before we reach a leaf slot with\nthe tag we are searching for set.\n\nAs a result, we can leave the function with tags set on intemediate\nnodes which can be tripped over later by tag-based lookups. The\nresult of these stale tags is that lookup may end prematurely or\nlivelock because the lookup cannot make progress.\n\nThe fix for the problem involves reocrding the traversal path we\ntake to the leaf nodes, and only propagating the tags back up the\ntree once the tag is set in the leaf node slot. We are already\nrecording the path for efficient traversal, so there is no\nadditional overhead to do the intermediately node tag setting in\nthis manner.\n\nThis fixes a radix tree lookup livelock triggered by the new\nwriteback sync livelock avoidance code introduced in commit\nf446daaea9d4a420d16c606f755f3689dcb2d0ce (\"mm: implement writeback\nlivelock avoidance using page tagging\").\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b6dd08652e2b70e73661c4975ae46398066c06f8",
      "tree": "fa70f295a5074627a6b6dba11a8c8cf90d4e4b95",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Aug 23 10:33:19 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Aug 23 10:33:19 2010 +1000"
      },
      "message": "radix-tree: clear all tags in radix_tree_node_rcu_free\n\nCommit f446daaea9d4a420d16c606f755f3689dcb2d0ce (\"mm: implement\nwriteback livelock avoidance using page tagging\") introduced a new\nradix tree tag, increasing the number of tags in each node from 2 to\n3. It did not, however, fix up the code in\nradix_tree_node_rcu_free() that cleans up after radix_tree_shrink()\nand hence could leave stray tags set in the new tag array.\n\nThe result is that the livelock avoidance code added in the the\nabove commit would hit stale tags when doing tag based lookups,\nresulting in livelocks when trying to traverse the tree.\n\nFix this problem in radix_tree_node_rcu_free() so it doesn\u0027t happen\nagain in the future by using a loop to walk all the tags up to\nRADIX_TREE_MAX_TAGS to clear the stray tags radix_tree_shrink()\nleaves behind.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    }
  ],
  "next": "3dc8d7f07e7496c0c6702e7e4b1acc179fa94019"
}
