)]}'
{
  "log": [
    {
      "commit": "8d85fce77edfc22f1d6dbf78e3af723b4b556f3d",
      "tree": "a3429b9b9e94e92854bf2b64569b6bf064fd477a",
      "parents": [
        "0f58a01ddd5e8177255705ba15e64c3b74d67993"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Dec 21 15:13:49 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jan 03 15:57:15 2013 -0800"
      },
      "message": "Drivers: block: remove __dev* attributes.\n\nCONFIG_HOTPLUG is going away as an option.  As a result, the __dev*\nmarkings need to be removed.\n\nThis change removes the use of __devinit, __devexit_p, __devinitdata,\n__devinitconst, and __devexit from these drivers.\n\nBased on patches originally written by Bill Pemberton, but redone by me\nin order to handle some of the coding style issues better, by hand.\n\nCc: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Chirag Kantharia \u003cchirag.kantharia@hp.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Jim Paris \u003cjim@jtan.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nCc: Keith Busch \u003ckeith.busch@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: NeilBrown \u003cneilb@suse.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Tao Guo \u003cTao.Guo@emc.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "40889e8d9fc6355980cf2bc94ef4356c10dec4ec",
      "tree": "c03f4e218477052c665cd9b01352f83e32c4a593",
      "parents": [
        "1ca22254b32657d65315af261ae0e699b8427fb7",
        "c3e946ce7276faf0b302acd25c7b874edbeba661"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 14:00:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 14:00:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph update from Sage Weil:\n \"There are a few different groups of commits here.  The largest is\n  Alex\u0027s ongoing work to enable the coming RBD features (cloning,\n  striping).  There is some cleanup in libceph that goes along with it.\n\n  Cyril and David have fixed some problems with NFS reexport (leaking\n  dentries and page locks), and there is a batch of patches from Yan\n  fixing problems with the fs client when running against a clustered\n  MDS.  There are a few bug fixes mixed in for good measure, many of\n  which will be going to the stable trees once they\u0027re upstream.\n\n  My apologies for the late pull.  There is still a gremlin in the rbd\n  map/unmap code and I was hoping to include the fix for that as well,\n  but we haven\u0027t been able to confirm the fix is correct yet; I\u0027ll send\n  that in a separate pull once it\u0027s nailed down.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (68 commits)\n  rbd: get rid of rbd_{get,put}_dev()\n  libceph: register request before unregister linger\n  libceph: don\u0027t use rb_init_node() in ceph_osdc_alloc_request()\n  libceph: init event-\u003enode in ceph_osdc_create_event()\n  libceph: init osd-\u003eo_node in create_osd()\n  libceph: report connection fault with warning\n  libceph: socket can close in any connection state\n  rbd: don\u0027t use ENOTSUPP\n  rbd: remove linger unconditionally\n  rbd: get rid of RBD_MAX_SEG_NAME_LEN\n  libceph: avoid using freed osd in __kick_osd_requests()\n  ceph: don\u0027t reference req after put\n  rbd: do not allow remove of mounted-on image\n  libceph: Unlock unprocessed pages in start_read() error path\n  ceph: call handle_cap_grant() for cap import message\n  ceph: Fix __ceph_do_pending_vmtruncate\n  ceph: Don\u0027t add dirty inode to dirty list if caps is in migration\n  ceph: Fix infinite loop in __wake_requests\n  ceph: Don\u0027t update i_max_size when handling non-auth cap\n  bdi_register: add __printf verification, fix arg mismatch\n  ...\n"
    },
    {
      "commit": "c3e946ce7276faf0b302acd25c7b874edbeba661",
      "tree": "8352894ced729e1eb0397574c5508f0e9a61a192",
      "parents": [
        "c89ce05e0c5a01a256100ac6a6019f276bdd1ca6"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Fri Nov 16 09:29:16 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Thu Dec 20 10:56:44 2012 -0600"
      },
      "message": "rbd: get rid of rbd_{get,put}_dev()\n\nThe functions rbd_get_dev() and rbd_put_dev() are trivial wrappers\nthat add no value, and their existence suggests they may do more\nthan what they do.\n\nGet rid of them.\n\nSigned-off-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Dan Mick \u003cdan.mick@inktank.com\u003e\n"
    },
    {
      "commit": "848b81415c42ff3dc9a4204749087b015c37ef66",
      "tree": "391da3a73aea48632248220d2d6b8d45a88f7eae",
      "parents": [
        "992956189de58cae9f2be40585bc25105cd7c5ad",
        "6fd59a83b9261fa53eaf98fb5514abba504a3ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n \"Incoming:\n\n   - lots of misc stuff\n\n   - backlight tree updates\n\n   - lib/ updates\n\n   - Oleg\u0027s percpu-rwsem changes\n\n   - checkpatch\n\n   - rtc\n\n   - aoe\n\n   - more checkpoint/restart support\n\n  I still have a pile of MM stuff pending - Pekka should be merging\n  later today after which that is good to go.  A number of other things\n  are twiddling thumbs awaiting maintainer merges.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (180 commits)\n  scatterlist: don\u0027t BUG when we can trivially return a proper error.\n  docs: update documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e fanotify output\n  fs, fanotify: add @mflags field to fanotify output\n  docs: add documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e output\n  fs, notify: add procfs fdinfo helper\n  fs, exportfs: add exportfs_encode_inode_fh() helper\n  fs, exportfs: escape nil dereference if no s_export_op present\n  fs, epoll: add procfs fdinfo helper\n  fs, eventfd: add procfs fdinfo helper\n  procfs: add ability to plug in auxiliary fdinfo providers\n  tools/testing/selftests/kcmp/kcmp_test.c: print reason for failure in kcmp_test\n  breakpoint selftests: print failure status instead of cause make error\n  kcmp selftests: print fail status instead of cause make error\n  kcmp selftests: make run_tests fix\n  mem-hotplug selftests: print failure status instead of cause make error\n  cpu-hotplug selftests: print failure status instead of cause make error\n  mqueue selftests: print failure status instead of cause make error\n  vm selftests: print failure status instead of cause make error\n  ubifs: use prandom_bytes\n  mtd: nandsim: use prandom_bytes\n  ...\n"
    },
    {
      "commit": "31279b1457f992f24eee8d45ddd647f5fce42cf6",
      "tree": "25e8286f5e1fc6e01219eac7452b043a62aae90e",
      "parents": [
        "2b37c7d865121249f2dee9ae25d524333b07be63"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Dec 17 16:04:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "aoe: fix use after free in aoedev_by_aoeaddr()\n\nWe should return NULL on failure instead of returning a freed pointer.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b37c7d865121249f2dee9ae25d524333b07be63",
      "tree": "e1a90fd3263a43906e8b24d0f40537754e7b2b76",
      "parents": [
        "bf29754ae8c1d611f43f0e25f1ba18e558455d8d"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "aoe: update internal version number to 81\n\nThis version number is printed to the console on module initialization\nand is available in sysfs, which is where the userland aoe-version tool\nlooks for it.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf29754ae8c1d611f43f0e25f1ba18e558455d8d",
      "tree": "9277724528aa4a30f0655986ac9c6198ceb9bc03",
      "parents": [
        "4a6c9ee93cd03604bd0e61066ce6aaf4bc0f1eb9"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "aoe: identify source of runt AoE packets\n\nThis change only affects experimental AoE storage networks.\n\nIt modifies the console message about runt packets detected so that the\nAoE major and minor addresses of the AoE target that generated the runt\nare mentioned.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a6c9ee93cd03604bd0e61066ce6aaf4bc0f1eb9",
      "tree": "d2201824b6e62127d25dae9908c03b0857bf689f",
      "parents": [
        "c450ba0fc12153cb5d3fd582b4ec82c75217a989"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "aoe: allow comma separator in aoe_iflist value\n\nBy default, the aoe driver uses any ethernet interface for AoE, but the\naoe_iflist module parameter provides a convenient way to limit AoE\ntraffic to a specific list of local network interfaces.\n\nThis change allows a list to be specified using the comma character as a\nseparator.  For example,\n\n  modprobe aoe aoe_iflist\u003deth2,eth3\n\nBefore, it was inconvenient to get the quoting right in shell scripts\nwhen setting aoe_iflist to have more than one network interface.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c450ba0fc12153cb5d3fd582b4ec82c75217a989",
      "tree": "2acf7807aed922a2bb444b8b4f67d40961372331",
      "parents": [
        "71114ec45f09eb6ef6f9d41c98d4ab6455086e58"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: allow user to disable target failure timeout\n\nWith this change, the aoe driver treats the value zero as special for\nthe aoe_deadsecs module parameter.  Normally, this value specifies the\nnumber of seconds during which the driver will continue to attempt\nretransmits to an unresponsive AoE target.  After aoe_deadsecs has\nelapsed, the aoe driver marks the aoe device as \"down\" and fails all\nI/O.\n\nThe new meaning of an aoe_deadsecs of zero is for the driver to\nretransmit commands indefinitely.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71114ec45f09eb6ef6f9d41c98d4ab6455086e58",
      "tree": "3f25f6e70364656b06387955764cd61e08148d3f",
      "parents": [
        "e52a29326462badd9ceec90a9eb2ac2a8550e02e"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: use dynamic number of remote ports for AoE storage target\n\nMany AoE targets have four or fewer network ports, but some existing\nstorage devices have many, and the AoE protocol sets no limit.\n\nThis patch allows the use of more than eight remote MAC addresses per AoE\ntarget, while reducing the amount of memory used by the aoe driver in\ncases where there are many AoE targets with fewer than eight MAC addresses\neach.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e52a29326462badd9ceec90a9eb2ac2a8550e02e",
      "tree": "28d732cd1bbae93d3e2b490127a6afbc0af279c8",
      "parents": [
        "bbb44e30d07fdc111e34a5ec935b57521cea9499"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: avoid races between device destruction and discovery\n\nThis change avoids a race that could result in a NULL pointer derference\nfollowing a WARNing from kobject_add_internal, \"don\u0027t try to register\nthings with the same name in the same directory.\"\n\nThe problem was found with a test that forgets and discovers an\naoe device in a loop:\n\n  while test ! -r /tmp/stop; do\n\taoe-flush -a\n\taoe-discover\n  done\n\nThe race was between aoedev_flush taking aoedevs out of the devlist,\nallowing a new discovery of the same AoE target to take place before the\ndriver gets around to calling sysfs_remove_group.  Fixing that one\nrevealed another race between do_open and add_disk, and this patch avoids\nthat, too.\n\nThe fix required some care, because for flushing (forgetting) an aoedev,\nsome of the steps must be performed under lock and some must be able to\nsleep.  Also, for discovering a new aoedev, some steps might sleep.\n\nThe check for a bad aoedev pointer remains from a time when about half of\nthis patch was done, and it was possible for the\nbdev-\u003ebd_disk-\u003eprivate_data to become corrupted.  The check should be\nremoved eventually, but it is not expected to add significant overhead,\noccurring in the aoeblk_open routine.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbb44e30d07fdc111e34a5ec935b57521cea9499",
      "tree": "11dda6628c4d7719607891f287c12aa87f06855b",
      "parents": [
        "b91316f2b7bc0b1d128a9890a2a4895f7e1c74fc"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: improve handling of misbehaving network paths\n\nAn AoE target can have multiple network ports used for AoE, and in the\naoe driver, those are tracked by the aoetgt struct.  These changes allow\nthe aoe driver to handle network paths, or aoetgts, that are not working\nwell, compared to the others.\n\nPaths that do not get responses despite the retransmission of AoE\ncommands are marked as \"tainted\", and non-tainted paths are preferred.\n\nMeanwhile, the aoe driver attempts to \"probe\" the tainted path in the\nbackground by issuing reads of LBA 0 that are padded out to full\n(possibly jumbo-frame) size.  If the probes get responses, then the path\nis \"redeemed\", and its taint is removed.\n\nThis mechanism has been shown to be helpful in transparently handling\nand recovering from real-world network \"brown outs\" in ways that the\nearlier \"shoot the help-needing target in the head\" mechanism could not.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b91316f2b7bc0b1d128a9890a2a4895f7e1c74fc",
      "tree": "2e031c215e742fb3cde7f2cd41230318667ba1a1",
      "parents": [
        "10935d052eef9441a551571ff5853f84a00b2fd4"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: return real minor number for static minors\n\nThe value returned by the static minor device number number allocator is\nthe real minor number, so it must be multiplied by the supported number\nof partitions per aoedev.\n\nWithout this fix the support for systems without udev is incomplete, and\nthe few users of aoe on such systems will have surprising results when\ndevice nodes names do not match the AoE target.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10935d052eef9441a551571ff5853f84a00b2fd4",
      "tree": "921ffe3962209af875358ee164dc6b3c62802f5c",
      "parents": [
        "e0b2bbab0b569590e27161290f6ea549248356df"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: initialize sysminor to avoid compiler warning\n\nBecause the minor_get and related functions use the return values for\nerrors, the compiler doesn\u0027t know that sysminor will always either 1) be\ninitialized in aoedev_by_aoeaddr by the call to minor_get, or 2) be\nunused as the \"goto out\" is executed.\n\nThis patch avoids the compiler warning.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0b2bbab0b569590e27161290f6ea549248356df",
      "tree": "48525151e94b2206c6508b38ae978aabb7ead8ba",
      "parents": [
        "60116cf77310c10b573552e4d700c270ddadba76"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: make error messages more specific in static minor allocation\n\nFor some special-purpose systems where udev isn\u0027t present, static\nallocation of minor numbers is desirable.  This update distinguishes\ndifferent failure scenarios, to help the user understand what went\nwrong.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60116cf77310c10b573552e4d700c270ddadba76",
      "tree": "7bf945c112a7f126cc2253f00ab7dbdad5715924",
      "parents": [
        "72837600ee8b0d09618f7fcbe36aab08c3ba8890"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: remove call to request handler from I/O completion\n\nThere is no need to call the request handler function in the I/O\ncompletion routine.  The user impact of not doing it is a more \"nice\" aoe\ndriver that is less susceptible to causing soft lockups.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72837600ee8b0d09618f7fcbe36aab08c3ba8890",
      "tree": "8d29b47c698c4d40955cd33adaa40f9363aa7028",
      "parents": [
        "7b6ccc5f975f68d96f941c67eab001b390a7cd1a"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: cleanup: correct comment for aoetgt nout\n\nA misplaced comment was attached to the nout member of the aoetgt.  This\nchange corrects the comment.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b6ccc5f975f68d96f941c67eab001b390a7cd1a",
      "tree": "4b8ae70eea9132fb4b61921fccf046bf1f57cec4",
      "parents": [
        "0a41409c518083133e79015092585d68915865be"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:04:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: increase default cap on outstanding AoE commands in the network\n\nThe aoe driver will never be waiting for more than aoe_maxout AoE\ncommands from a given remote network port on an AoE target.  Increasing\nthe cap increases performance.  Users can tighten the setting to reduce\nthe amount of memory used for handling AoE traffic or the network\nbandwidth used for AoE.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a41409c518083133e79015092585d68915865be",
      "tree": "41dd1cf2d250d13df2fb2dfae67125c7fff639c7",
      "parents": [
        "fe7252bf511d682a977dd096da140accce1b128b"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:25 2012 -0800"
      },
      "message": "aoe: remove vestigial request queue allocation\n\nBefore the aoe driver was an I/O request handler, it was a\nmake_request-style block driver.  Even so, there was a problem where\nsysfs expected a request queue to exist, so one was provided in commit\n7135a71b19be (\"aoe: allocate unused request_queue for sysfs\").\n\nDuring the transition to the request-handler style, a patch was merged\nthat was based on a driver without the noop queue, and the noop queue\nremained in place after the patch was merged, even though a new\nfunctional queue was introduced by the patch, allocated through\nblk_init_queue.\n\nThe user impact is a memory leak proportional to the number of AoE\ntargets discovered.  This patch removes the memory leak and cleans up\nvestiges of the old do-nothing queue from the aoeblk_gdalloc function.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe7252bf511d682a977dd096da140accce1b128b",
      "tree": "5c02098835ba08249d705c3b1878f1c53afdeebb",
      "parents": [
        "519b77b0320fabb07fe54a300876dfff5f96d233"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: copy fallback timing information on destination failover\n\nCommit f3b8e07af774 (\"aoe: commands in retransmit queue use new\ndestination on failure\") omits the copying of the coarse-grained time\nwhen an AoE command was sent during the failover from one destination\nMAC address on the AoE target to another.\n\nThe coarse-grained timing is only used when the system time changes or\nan unlikely length of time has passed since the sending of the AoE\ncommand.  Users will not be impacted unless their system clock is very\ninaccurate or something unusual (e.g., 10 GbE link reset) happens during\nthe period when the aoe driver is handling the failure of a port on the\nAoE target.  Being effected will mean that an AoE target could be\nconsidered \"down\" too eagerly.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "519b77b0320fabb07fe54a300876dfff5f96d233",
      "tree": "621d7ff2f1e259a52ec6e7a80062b807cede8820",
      "parents": [
        "3fc9b032489d365957ce531d32e225b2d0b3ed11"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: update driver-internal version to 64+\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fc9b032489d365957ce531d32e225b2d0b3ed11",
      "tree": "4e3ba6f0c3e89d98cede84bec580230b410cd0e1",
      "parents": [
        "5f0c9c48e7265039c3f945aaf44a1c6ae8adbd01"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: commands in retransmit queue use new destination on failure\n\nWhen one remote MAC address isn\u0027t working as a destination for AoE\ncommands, the frames used to track information associated with the AoE\ncommands are moved to a new aoetgt (defined by the tuple of {AoE major,\nAoE minor, target MAC address}).\n\nThis patch makes sure that the frames on the queue for retransmits that\nneed to be done are updated to use the new destination, so that\nretransmits will be sent through a working network path.\n\nWithout this change, packets on the retransmit queue will be needlessly\nretransmitted to the unresponsive destination MAC, possibly causing\npremature target failure before there\u0027s time for the retransmit timer to\nrun again, decide to retransmit again, and finally update the destination\nto a working MAC address on the AoE target.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f0c9c48e7265039c3f945aaf44a1c6ae8adbd01",
      "tree": "2eb73358dc9ad58dce32dd40ceb0fbc938d915d4",
      "parents": [
        "0d555ecfa468f6dc29697829844f2f79909e376f"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: use high-resolution RTTs with fallback to low-res\n\nThese changes improve the accuracy of the decision about whether it\u0027s time\nto retransmit an AoE command by using the microsecond-resolution\ngettimeofday instead of jiffies.\n\nBecause the system time can jump suddenly, the decision reverts to using\njiffies if the high-resolution time difference is relatively large.\nOtherwise the AoE targets could be considered failed inappropriately.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d555ecfa468f6dc29697829844f2f79909e376f",
      "tree": "53e9ad45f578f0eed1a64309e825afc8d576ae29",
      "parents": [
        "2292a7e109d28ffd70ad060b241f9bd2a687dfa0"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: manipulate aoedev network stats under lock\n\nWith this bugfix in place the calculation of the criterion for \"lateness\"\nis performed under lock.  Without the lock, there is a chance that one of\nthe non-atomic operations performed on the round trip time statistics\ncould be incomplete, such that an incorrect lateness criterion would be\ncalculated.\n\nWithout this change, the effect of the bug would be rare unecessary but\nbenign retransmissions.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2292a7e109d28ffd70ad060b241f9bd2a687dfa0",
      "tree": "b18d33ea202c97880c76ae4b7943a233b3936d64",
      "parents": [
        "3a0c40d2d29e476ece583540e4f11276e0f36d5f"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: err device: include MAC addresses for unexpected responses\n\nThe /dev/etherd/err character device provides low-level information about\nnormal but sometimes interesting AoE command retransmits and \"unexpected\nresponses\", i.e., responses for packets that have already been\nretransmitted.\n\nThis change adds MAC addresses to the messages about unexpected responses,\nso that when they occur, it\u0027s more easy to determine the network paths to\nwhich they belong.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3a0c40d2d29e476ece583540e4f11276e0f36d5f",
      "tree": "6f57de53c253bf588040611c12e5cb9e84326ba6",
      "parents": [
        "667be1e757f5684576d01d7402907a2489b1402f"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: improve network congestion handling\n\nThe aoe driver already had some congestion handling, but it was limited in\nits ability to cope with the kind of congestion that can arise on more\ncomplex networks such as those involving paths through multiple ethernet\nswitches.\n\nSome of the lessons from TCP\u0027s history of development can be applied to\nimproving the congestion control and avoidance on AoE storage networks.\nThese changes use familar concepts from Van Jacobson\u0027s \"Congestion\nAvoidance and Control\" paper from \u002788, without adding significant\noverhead.\n\nThis patch depends on an upcoming patch that covers the failover case when\nAoE commands being retransmitted are transferred from one retransmit queue\nto another.  Another upcoming patch increases the timing accuracy.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "667be1e757f5684576d01d7402907a2489b1402f",
      "tree": "61acef58957c89392f1ee44a7df7e94fa985e157",
      "parents": [
        "cd220bf51f94e6b3f7678183b6ea911cefbf7d03"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: provide ATA identify device content to user on request\n\nMake the aoe driver follow expected behavior when the user uses ioctl to\nget the ATA device identify information, allowing access to model, serial\nnumber, etc.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd220bf51f94e6b3f7678183b6ea911cefbf7d03",
      "tree": "6a2670bdafa8400749af0ba22aa38f6546825d74",
      "parents": [
        "a04b41cd2c3ea39115a2d4f264773a5956a3318d"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: update driver-internal version number to 60\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a04b41cd2c3ea39115a2d4f264773a5956a3318d",
      "tree": "f92e74151cfd816644cfd8f5be5606d572123816",
      "parents": [
        "d437962504462f31515344d58cdcaf0b73b389b5"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: whitespace cleanup\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d437962504462f31515344d58cdcaf0b73b389b5",
      "tree": "5eaca3f39e94936af66baea69c1f4cdc1c0ecc0c",
      "parents": [
        "90a2508d01845afbb3118615ce44d689cbb0e943"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:24 2012 -0800"
      },
      "message": "aoe: cleanup: remove unused ata_scnt function\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90a2508d01845afbb3118615ce44d689cbb0e943",
      "tree": "f0ccbdc043fbb192b7a17ca3ffc0667b7ab31111",
      "parents": [
        "aa304fdefa568d63c862df7abe55d39811845c7c"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "aoe: \"payload\" sysfs file exports per-AoE-command data transfer size\n\nThe userland aoetools package includes an \"aoe-stat\" command that can\ndisplay a \"payload size\" column when the aoe driver exports this\ninformation.  Users can quickly see what amount of user data is\ntransferred inside each AoE command on the network, network headers\nexcluded.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa304fdefa568d63c862df7abe55d39811845c7c",
      "tree": "d96b9161f58e913baae3031b6512a534b036d98b",
      "parents": [
        "4ba9aa7f9819bafb304f09dee90bb1fa40627358"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "aoe: support larger I/O requests via aoe_maxsectors module param\n\nThe GPFS filesystem is an example of an aoe user that requires the aoe\ndriver to support I/O request sizes larger than the default.  Most users\nwill not need large I/O request sizes, because they would need to be split\nup into multiple AoE commands anyway.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9aa7f9819bafb304f09dee90bb1fa40627358",
      "tree": "c36e336dacf1bb8be15f9fca48b69641a2ec22fe",
      "parents": [
        "1b8a1636ceea573b1d452a1cccf01c990d8d628a"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "aoe: support the forgetting (flushing) of a user-specified AoE target\n\nUsers sometimes want to cause the aoe driver to forget a particular\npreviously discovered device when it is no longer online.  The aoetools\nprovide an \"aoe-flush\" command that users run to perform this\nadministrative task.  The changes below provide the support needed in the\ndriver.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b8a1636ceea573b1d452a1cccf01c990d8d628a",
      "tree": "6745e38d43bfbe5496a98af96358de3055fa898c",
      "parents": [
        "4e78dd144b865162626f811d1097b6d181ec6a31"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "aoe: update cap on outstanding commands based on config query response\n\nThe ATA over Ethernet config query response contains a \"buffer count\"\nfield reflecting the AoE target\u0027s capacity to buffer incoming AoE\ncommands.\n\nBy taking the current value of this field into accound, we increase\nperformance throughput or avoid network congestion, when the value\nhas increased or decreased, respectively.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e78dd144b865162626f811d1097b6d181ec6a31",
      "tree": "748745c212c7750eff7fef001f128075713c2d5b",
      "parents": [
        "662a889608dfabbb1b4954b172a6872a25dc8f90"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "aoe: print warning regarding a common reason for dropped transmits\n\nDropped transmits are not common, but when they do occur, increasing\nthe transmit queue length often helps.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nCc: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "662a889608dfabbb1b4954b172a6872a25dc8f90",
      "tree": "b6de7178528700592e91af5649f0a34e2b4d9e59",
      "parents": [
        "6e9766317fd51a33a32c65d2b76a6bde3227bbbd"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Mon Dec 17 16:03:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "aoe: describe the behavior of the \"err\" character device\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9228ff90387e276ad67b10c0eb525c9d6a57d5e9",
      "tree": "e7c87b68daba7cf7ca4c342c6b52165bd78fbe16",
      "parents": [
        "9360b53661a2c7754517b2925580055bacc8ec38",
        "d2ec180c23a5a1bfe34d8638b0342a47c00cf70f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 13:39:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 13:39:11 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver update from Jens Axboe:\n \"Now that the core bits are in, here are the driver bits for 3.8.  The\n  branch contains:\n\n   - A huge pile of drbd bits that were dumped from the 3.7 merge\n     window.  Following that, it was both made perfectly clear that\n     there is going to be no more over-the-wall pulls and how the\n     situation on individual pulls can be improved.\n\n   - A few cleanups from Akinobu Mita for drbd and cciss.\n\n   - Queue improvement for loop from Lukas.  This grew into adding a\n     generic interface for waiting/checking an even with a specific\n     lock, allowing this to be pulled out of md and now loop and drbd is\n     also using it.\n\n   - A few fixes for xen back/front block driver from Roger Pau Monne.\n\n   - Partition improvements from Stephen Warren, allowing partiion UUID\n     to be used as an identifier.\"\n\n* \u0027for-3.8/drivers\u0027 of git://git.kernel.dk/linux-block: (609 commits)\n  drbd: update Kconfig to match current dependencies\n  drbd: Fix drbdsetup wait-connect, wait-sync etc... commands\n  drbd: close race between drbd_set_role and drbd_connect\n  drbd: respect no-md-barriers setting also when changed online via disk-options\n  drbd: Remove obsolete check\n  drbd: fixup after wait_even_lock_irq() addition to generic code\n  loop: Limit the number of requests in the bio list\n  wait: add wait_event_lock_irq() interface\n  xen-blkfront: free allocated page\n  xen-blkback: move free persistent grants code\n  block: partition: msdos: provide UUIDs for partitions\n  init: reduce PARTUUID min length to 1 from 36\n  block: store partition_meta_info.uuid as a string\n  cciss: use check_signature()\n  cciss: cleanup bitops usage\n  drbd: use copy_highpage\n  drbd: if the replication link breaks during handshake, keep retrying\n  drbd: check return of kmalloc in receive_uuids\n  drbd: Broadcast sync progress no more often than once per second\n  drbd: don\u0027t try to clear bits once the disk has failed\n  ...\n"
    },
    {
      "commit": "b8f5c6edca34ff441e1ccdec68828e933a1b905b",
      "tree": "4c0c7b5f3d61ce897e0cc7b62d9312c59bb43563",
      "parents": [
        "61c74035626beb25a39b0273ccf7d75510bc36a1"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Nov 01 08:39:26 2012 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Mon Dec 17 12:07:32 2012 -0600"
      },
      "message": "rbd: don\u0027t use ENOTSUPP\n\nENOTSUPP is not a standard errno (it shows up as \"Unknown error 524\"\nin an error message).  This is what was getting produced when the\nthe local rbd code does not implement features required by a\ndiscovered rbd image.\n\nChange the error code returned in this case to ENXIO.\n\nSigned-off-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "2fd82b9e92c2a718ae81fc987b4468ceeee6979b",
      "tree": "e41b1c8522f4f0e63d72b180131e59ee980c9ad5",
      "parents": [
        "685a7555ca69030739ddb57a47f0ea8ea80196a4"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Fri Nov 09 15:05:54 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Mon Dec 17 08:37:29 2012 -0600"
      },
      "message": "rbd: get rid of RBD_MAX_SEG_NAME_LEN\n\nRBD_MAX_SEG_NAME_LEN represents the maximum length of an rbd object\nname (i.e., one of the objects providing storage backing an rbd\nimage).\n\nAnother symbol, MAX_OBJ_NAME_SIZE, is used in the osd client code to\ndefine the maximum length of any object name in an osd request.\n\nRight now they disagree, with RBD_MAX_SEG_NAME_LEN being too big.\n\nThere\u0027s no real benefit at this point to defining the rbd object\nname length limit separate from any other object name, so just\nget rid of RBD_MAX_SEG_NAME_LEN and use MAX_OBJ_NAME_SIZE in its\nplace.\n\nSigned-off-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "42382b709bd1d143b9f0fa93e0a3a1f2f4210707",
      "tree": "2d6a8c6910ab15bffed7ab91d74005e05984f891",
      "parents": [
        "8884d53dd63b1d9315b343564fcbe1ede004a99e"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Fri Nov 16 09:29:16 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Mon Dec 17 08:36:59 2012 -0600"
      },
      "message": "rbd: do not allow remove of mounted-on image\n\nThere is no check in rbd_remove() to see if anybody holds open the\nimage being removed.  That\u0027s not cool.\n\nAdd a simple open count that goes up and down with opens and closes\n(releases) of the device, and don\u0027t allow an rbd image to be removed\nif the count is non-zero.\n\nProtect the updates of the open count value with ctl_mutex to ensure\nthe underlying rbd device doesn\u0027t get removed while concurrently\nbeing opened.\n\nSigned-off-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "d2ec180c23a5a1bfe34d8638b0342a47c00cf70f",
      "tree": "dd32f657c489adbb9e4f42e218a02149b1cd8c1e",
      "parents": [
        "ef86b77957a97315d43ff72c9b83361ba1a07963"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Dec 06 11:11:04 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 06 13:08:29 2012 +0100"
      },
      "message": "drbd: update Kconfig to match current dependencies\n\nWe no longer need the connector.\nBut we need libcrc32c.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ef86b77957a97315d43ff72c9b83361ba1a07963",
      "tree": "3058caac35c58b5ea92453163e00dd3a7cac57c5",
      "parents": [
        "13c76aba7846647f86d479293ae0a0adc1ca840a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 06 10:34:34 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 06 13:04:34 2012 +0100"
      },
      "message": "drbd: Fix drbdsetup wait-connect, wait-sync etc... commands\n\nThis was introduces when moving the code over from the 8.3 codebase\nwith commit 328e0f125bf41f4f33f684db22015f92cb44fe56\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "13c76aba7846647f86d479293ae0a0adc1ca840a",
      "tree": "a729c2b6f77403829c712f118d3cc1ff65d901b7",
      "parents": [
        "691631c0652bc47e6d20b0d981e23a9025fd794e"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Nov 22 17:06:00 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 06 13:00:33 2012 +0100"
      },
      "message": "drbd: close race between drbd_set_role and drbd_connect\n\ndrbd_set_role(, R_PRIMARY, ) does the state change to Primary,\nsome more housekeeping, and possibly generates a new UUID set.\n\nAll of this holding the \"state_mutex\".\n\nThe connection handshake involves sending of various state information,\nincluding the current data generation UUID set, and two connection\nstate changes from C_WF_CONNECTION to C_WF_REPORT_PARAMS further to\na number of different outcomes, resync being one of them.\n\nIf the connection handshake happens between the state change to Primary\nand the generation of the new UUIDs, the resync decision based on the\nold UUID set may be confused, depending on circumstances.\n\nMake sure that, before we do the handshake, any promotion to Primary\nrole will either be complete (including the housekeeping stuff), or can\nsee, and serialize with, the ongoing handshake, based on the\n\"STATE_SENT\" bit, which is set when we start the handshake, and cleared\nonly when we leave C_WF_REPORT_PARAMS again.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "691631c0652bc47e6d20b0d981e23a9025fd794e",
      "tree": "86f1b42988865dc1e43aba9a76b1a421b2f4144c",
      "parents": [
        "298307ed1d2ac4815b0ce9a5f1c9cc643f4a9aca"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Oct 26 00:41:50 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 06 13:00:04 2012 +0100"
      },
      "message": "drbd: respect no-md-barriers setting also when changed online via disk-options\n\nWe need to propagate the configuration into the flag bits,\nor it won\u0027t be effective.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "298307ed1d2ac4815b0ce9a5f1c9cc643f4a9aca",
      "tree": "ec20f76413bec74f5c5aa15631554712c114fce4",
      "parents": [
        "84ad6845fbb1248228d3beab8084e4b5f6f82b1d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 16 12:27:41 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu Dec 06 12:09:55 2012 +0100"
      },
      "message": "drbd: Remove obsolete check\n\nSmatch complained about it this redundanct check.\n\nThe check was introduced in 2006-09-13. On 2007-07-24 the body of the\nfunction was enclosed by get_ldev()/put_ldev() reference counting.\nSince then the check is useless and miss leading.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "84ad6845fbb1248228d3beab8084e4b5f6f82b1d",
      "tree": "43a7e7a4626dcf1957904b49e15c1709e268da44",
      "parents": [
        "2cecb7309897c872b977a60d53e5de0af4265dd6",
        "07c540a0b5f4674538b57ad85bc9306e44fb45dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Dec 01 09:42:41 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Dec 01 09:42:41 2012 +0100"
      },
      "message": "Merge branch \u0027stable/for-jens-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-3.8/drivers\n"
    },
    {
      "commit": "2cecb7309897c872b977a60d53e5de0af4265dd6",
      "tree": "d48284c1edb9ed24d3afa57ba18441d345a5b20c",
      "parents": [
        "7b5a35225b0d4fd779cf79d7624e63d1957f6c4d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 30 21:20:15 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 30 21:20:15 2012 +0100"
      },
      "message": "drbd: fixup after wait_even_lock_irq() addition to generic code\n\nCompiling drbd yields:\n\ndrivers/block/drbd/drbd_state.c: In function ‘_conn_request_state’:\ndrivers/block/drbd/drbd_state.c:1804:5: error: macro \"wait_event_lock_irq\" passed 4 arguments, but takes just 3\ndrivers/block/drbd/drbd_state.c:1801:3: error: ‘wait_event_lock_irq’ undeclared (first use in this function)\ndrivers/block/drbd/drbd_state.c:1801:3: note: each undeclared identifier is reported only once for each function it appears in\ndrivers/block/drbd/drbd_state.c: At top level:\ndrivers/block/drbd/drbd_state.c:1734:1: warning: ‘_conn_rq_cond’ defined but not used [-Wunused-function]\n\nDue to drbd having copied the MD definition for wait_event_lock_irq()\nas well. Kill them.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7b5a35225b0d4fd779cf79d7624e63d1957f6c4d",
      "tree": "5e2324e3b657b8ead9c0cdd58c6ed5d79f8e76f8",
      "parents": [
        "eed8c02e680c04cd737e0a9cef74e68d8eb0cefa"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri Nov 30 11:42:41 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 30 11:48:05 2012 +0100"
      },
      "message": "loop: Limit the number of requests in the bio list\n\nCurrently there is not limitation of number of requests in the loop bio\nlist. This can lead into some nasty situations when the caller spawns\ntons of bio requests taking huge amount of memory. This is even more\nobvious with discard where blkdev_issue_discard() will submit all bios\nfor the range and wait for them to finish afterwards. On really big loop\ndevices and slow backing file system this can lead to OOM situation as\nreported by Dave Chinner.\n\nWith this patch we will wait in loop_make_request() if the number of\nbios in the loop bio list would exceed \u0027nr_congestion_on\u0027.\nWe\u0027ll wake up the process as we process the bios form the list. Some\nthreshold hysteresis is in place to avoid high frequency oscillation.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReported-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "07c540a0b5f4674538b57ad85bc9306e44fb45dd",
      "tree": "d7181faf6d3c84da37be8a7ad7c5f4b30d3ed629",
      "parents": [
        "4d4f270f1880e52d89a33c944ee86f23d6c85541"
      ],
      "author": {
        "name": "Roger Pau Monne",
        "email": "roger.pau@citrix.com",
        "time": "Fri Nov 16 19:26:47 2012 +0100"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Nov 26 14:58:11 2012 -0500"
      },
      "message": "xen-blkfront: free allocated page\n\nFree the page allocated for the persistent grant.\n\nSigned-off-by: Roger Pau Monné \u003croger.pau@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "4d4f270f1880e52d89a33c944ee86f23d6c85541",
      "tree": "40371908023986591d0a3c32338f28f3bdc35255",
      "parents": [
        "cb5bd4d19b46c220b1ac8462a3da01767dd99488"
      ],
      "author": {
        "name": "Roger Pau Monne",
        "email": "roger.pau@citrix.com",
        "time": "Fri Nov 16 19:26:48 2012 +0100"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Nov 26 14:58:11 2012 -0500"
      },
      "message": "xen-blkback: move free persistent grants code\n\nMove the code that frees persistent grants from the red-black tree\nto a function. This will make it easier for other consumers to move\nthis to a common place.\n\nSigned-off-by: Roger Pau Monné \u003croger.pau@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "836413e8c78ecbc55aa31f3cb600f8ee1aa355a2",
      "tree": "23f2725ae9a40af30ace00c532587ada5bc625c9",
      "parents": [
        "11cfb6ff736dc89b0447b8902d6912692303f6af"
      ],
      "author": {
        "name": "Selvan Mani",
        "email": "smani@micron.com",
        "time": "Wed Nov 14 06:16:35 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:55 2012 +0100"
      },
      "message": "mtip32xx: Fix padding issue\n\nHi Jens,\n\nAnother tiny patch.\n\nRemoved __packed before the struct smart_attr and added __packed at end of\nthe structure to fix padding issue.\n\nSigned-off-by: Selvan Mani  \u003csmani@micron.com\u003e\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "11cfb6ff736dc89b0447b8902d6912692303f6af",
      "tree": "88f19564809c6f0e84aedbc020e283df6c176c22",
      "parents": [
        "298d80152c895859bd128552db7a5b228e8a23f7"
      ],
      "author": {
        "name": "Ed Cashin",
        "email": "ecashin@coraid.com",
        "time": "Thu Nov 08 19:17:15 2012 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:55 2012 +0100"
      },
      "message": "aoe: avoid running request handler on plugged queue\n\nCalling the request handler directly on a plugged queue defeats\nthe performance improvements provided by the plugging mechanism.\nUse the __blk_run_queue function instead of calling the request\nhandler directly, so that we don\u0027t interfere with the block\nlayer\u0027s ability to plug the queue.\n\nSigned-off-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "298d80152c895859bd128552db7a5b228e8a23f7",
      "tree": "eb373edf3854f3c21b08aae0cf8e5f25a5553971",
      "parents": [
        "7c5d62388e88729775b10a1748f2810e413f1e51"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Thu Nov 08 17:35:38 2012 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:55 2012 +0100"
      },
      "message": "mtip32xx: fix potential NULL pointer dereference in mtip_timeout_function()\n\nThe dereference to port should be moved below the NULL test.\n\ndpatch engine is used to auto generate this patch.\n(https://github.com/weiyj/dpatch)\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7c5d62388e88729775b10a1748f2810e413f1e51",
      "tree": "4d4d2cf8252a32f75a0c8b672ad921e161fa4cc1",
      "parents": [
        "4b9e884523f63f7bfd6fcbcdfe6f9f9545d98c13"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Nov 08 07:58:53 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:55 2012 +0100"
      },
      "message": "mtip32xx: fix shift larger than type warning\n\nIf we\u0027re building a 32-bit kernel and CONFIG_LBADF isn\u0027t set,\nsector_t is 32-bits wide. The shifts by 32 and 40 are thus\nlarger than we support.\n\nCast the sector offset to a u64 to avoid these warnings.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4b9e884523f63f7bfd6fcbcdfe6f9f9545d98c13",
      "tree": "80c4006a67731c2721223cb69b2943f638a70359",
      "parents": [
        "eda45314922f500f3547d36d317efc05ed823e3e"
      ],
      "author": {
        "name": "Selvan Mani",
        "email": "smani@micron.com",
        "time": "Wed Nov 07 06:03:56 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:55 2012 +0100"
      },
      "message": "mtip32xx: Fix incorrect mask used for erase mode\n\nPrevious commit use value 3 for erasemode mask.\nChanging the mask to correct value to 2\n\nSigned-off-by: Selvan Mani \u003csmani@micron.com\u003e\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "eda45314922f500f3547d36d317efc05ed823e3e",
      "tree": "8486c7d169c4166511cae5b39abe6191016cfeef",
      "parents": [
        "3208795e612406df04a32b46eb5ea5fccfa51d69"
      ],
      "author": {
        "name": "Selvan Mani",
        "email": "smani@micron.com",
        "time": "Wed Nov 07 06:03:53 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:55 2012 +0100"
      },
      "message": "mtip32xx: Fix to make lba address correct in big-endian systems\n\nEarlier lba address was assigned directly to lba_low and lba_low_ex,\nwhich would result in a different number (bytes reversed) in\nbig-endian systems. Now assigning lba address byte-by-byte to fis.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Selvan Mani \u003csmani@micron.com\u003e\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3208795e612406df04a32b46eb5ea5fccfa51d69",
      "tree": "83ad3d3b6c1e0ede845623efdd838a11472f1e91",
      "parents": [
        "a8c32a5c98943d370ea606a2e7dc04717eb92206"
      ],
      "author": {
        "name": "Selvan Mani",
        "email": "smani@micron.com",
        "time": "Wed Nov 07 06:03:37 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:54 2012 +0100"
      },
      "message": "mtip32xx: fix potential crash on SEC_ERASE_UNIT\n\nThe mtip driver lifted this code from elsewhere and then added a special\nhandling check for SEC_ERASE_UNIT. If the caller tries to do a security\nerase but passes no output data for the command then outbuf is not\nallocated and the driver duly explodes.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Selvan Mani \u003csmani@micron.com\u003e\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "eac7cc52c6b410e542af431b2ee93f3d7dbfb6af",
      "tree": "3754bb6774c068e8eab2d8d7cb308f829422cfd4",
      "parents": [
        "3d70f8c617a436c7146ecb81df2265b4626dfe89"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Nov 06 11:47:13 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:32:54 2012 +0100"
      },
      "message": "floppy: destroy floppy workqueue before cleaning up the queue\n\nWe need to first destroy the floppy_wq workqueue before cleaning up\nthe queue. Otherwise we might race with still pending work with the\nworkqueue, but all the block queue already gone. This might lead to\nvarious oopses, such as\n\n CPU 0\n Pid: 6, comm: kworker/u:0 Not tainted 3.7.0-rc4 #1 Bochs Bochs\n RIP: 0010:[\u003cffffffff8134eef5\u003e]  [\u003cffffffff8134eef5\u003e] blk_peek_request+0xd5/0x1c0\n RSP: 0000:ffff88000dc7dd88  EFLAGS: 00010092\n RAX: 0000000000000001 RBX: 0000000000000000 RCX: 0000000000000000\n RDX: ffff88000f602688 RSI: ffffffff81fd95d8 RDI: 6b6b6b6b6b6b6b6b\n RBP: ffff88000dc7dd98 R08: ffffffff81fd95c8 R09: 0000000000000000\n R10: ffffffff81fd9480 R11: 0000000000000001 R12: 6b6b6b6b6b6b6b6b\n R13: ffff88000dc7dfd8 R14: ffff88000dc7dfd8 R15: 0000000000000000\n FS:  0000000000000000(0000) GS:ffffffff81e21000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n CR2: 0000000000000000 CR3: 0000000001e11000 CR4: 00000000000006f0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process kworker/u:0 (pid: 6, threadinfo ffff88000dc7c000, task ffff88000dc5ecc0)\n Stack:\n  0000000000000000 0000000000000000 ffff88000dc7ddb8 ffffffff8134efee\n  ffff88000dc7ddb8 0000000000000000 ffff88000dc7dde8 ffffffff814aef3c\n  ffffffff81e75d80 ffff88000dc0c640 ffff88000fbfb000 ffffffff814aed90\n Call Trace:\n  [\u003cffffffff8134efee\u003e] blk_fetch_request+0xe/0x30\n  [\u003cffffffff814aef3c\u003e] redo_fd_request+0x1ac/0x400\n  [\u003cffffffff814aed90\u003e] ? start_motor+0x130/0x130\n  [\u003cffffffff8106b526\u003e] process_one_work+0x136/0x450\n  [\u003cffffffff8106af65\u003e] ? manage_workers+0x205/0x2e0\n  [\u003cffffffff8106bb6d\u003e] worker_thread+0x14d/0x420\n  [\u003cffffffff8106ba20\u003e] ? rescuer_thread+0x1a0/0x1a0\n  [\u003cffffffff8107075a\u003e] kthread+0xba/0xc0\n  [\u003cffffffff810706a0\u003e] ? __kthread_parkme+0x80/0x80\n  [\u003cffffffff818b553a\u003e] ret_from_fork+0x7a/0xb0\n  [\u003cffffffff810706a0\u003e] ? __kthread_parkme+0x80/0x80\n Code: 0f 84 c0 00 00 00 83 f8 01 0f 85 e2 00 00 00 81 4b 40 00 00 80 00 48 89 df e8 58 f8 ff ff be fb ff ff ff\n fe ff ff \u003c49\u003e 8b 1c 24 49 39 dc 0f 85 2e ff ff ff 41 0f b6 84 24 28 04 00\n RIP  [\u003cffffffff8134eef5\u003e] blk_peek_request+0xd5/0x1c0\n  RSP \u003cffff88000dc7dd88\u003e\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nTested-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d48c152a41c8cd6de832397b4ea6f0429ad86318",
      "tree": "6a79b182e29421568cecce8922cde6e6d066f28a",
      "parents": [
        "1f118bc479173bff44aa591bcfa065e68884f2c5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Nov 08 16:12:23 2012 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:28:34 2012 +0100"
      },
      "message": "cciss: use check_signature()\n\nUse check_signature() to find a signature in the mmio address.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "1f118bc479173bff44aa591bcfa065e68884f2c5",
      "tree": "a7bf03a91bbb82f138581607acaefb2a3f479384",
      "parents": [
        "8d0ff3924bbad9fc53c3cc305d317033b16a5f05"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Nov 08 16:12:22 2012 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Nov 23 14:27:22 2012 +0100"
      },
      "message": "cciss: cleanup bitops usage\n\n- Remove unnecessary correction of bit and address\n- Use BITS_TO_LONGS macro to calculate bitmap size\n- Use bitmap_zero()\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8d0ff3924bbad9fc53c3cc305d317033b16a5f05",
      "tree": "74b23f6385bd889301242a8b601bb4781cd10a5d",
      "parents": [
        "f1d6a328bbe63b528721a25251ad8f5f1e997804",
        "cb5bd4d19b46c220b1ac8462a3da01767dd99488"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Nov 12 09:18:47 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Nov 12 09:18:47 2012 -0700"
      },
      "message": "Merge branch \u0027stable/for-jens-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-3.8/drivers\n"
    },
    {
      "commit": "f1d6a328bbe63b528721a25251ad8f5f1e997804",
      "tree": "fc3a84e75a9c6fbbf749b498c252adb9ca1980c3",
      "parents": [
        "ed635cb0674d6e4303d1a2e27d9e6e80b451a338"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Nov 08 16:12:31 2012 -0800"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:22:26 2012 +0100"
      },
      "message": "drbd: use copy_highpage\n\nUse copy_highpage() to copy from one page to another.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "ed635cb0674d6e4303d1a2e27d9e6e80b451a338",
      "tree": "f540786331a69a1d6d378a2a64a0a79cd2bcdfff",
      "parents": [
        "063eacf88cc1394ece125d106c05cba1ca03aa3d"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Nov 05 11:54:30 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:22:19 2012 +0100"
      },
      "message": "drbd: if the replication link breaks during handshake, keep retrying\n\nThe 8.3.12 commit drbd: Bugfix for the connection behavior fixes a\n\"wasted established connection\", if a former connection attempt failed\nduring its early stages.\n\nHowever it opened a window for a regression, if a connection attempt\nfails during its last stages.  The result was a terminated receiver\nthread, that left behind the supposedly transient \"C_UNCONNECTED\" state.\nAny later requests to change the connection state fail, as they wait for\nthe connection state to \"stabilize\".\n\nFix: short circuit and keep retrying to restablish a new connection,\nif we don\u0027t reach C_WF_REPORT_PARAMS.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "063eacf88cc1394ece125d106c05cba1ca03aa3d",
      "tree": "11e2d734cf848a5f73657f2342a760baa1360a7a",
      "parents": [
        "986836503e49ccf7e84b813715d344964ec93566"
      ],
      "author": {
        "name": "Jing Wang",
        "email": "windsdaemon@gmail.com",
        "time": "Thu Oct 25 15:00:56 2012 +0800"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:22:10 2012 +0100"
      },
      "message": "drbd: check return of kmalloc in receive_uuids\n\nSigned-off-by: Jing Wang \u003cwindsdaemon@gmail.com\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "986836503e49ccf7e84b813715d344964ec93566",
      "tree": "b3bea7428efde5b77096cef80e5b6bfee494cc12",
      "parents": [
        "ccae7868b0c5697508a541c531cf96b361d62c1c",
        "328e0f125bf41f4f33f684db22015f92cb44fe56"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:18:43 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:20:23 2012 +0100"
      },
      "message": "Merge branch \u0027drbd-8.4_ed6\u0027 into for-3.8-drivers-drbd-8.4_ed6\n"
    },
    {
      "commit": "328e0f125bf41f4f33f684db22015f92cb44fe56",
      "tree": "364b7292db9d7072130080589b579e3fdadf23e6",
      "parents": [
        "518a4d53b2985451a08cb4e5b79deacfe151a38a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 19 14:37:47 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:43 2012 +0100"
      },
      "message": "drbd: Broadcast sync progress no more often than once per second\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "518a4d53b2985451a08cb4e5b79deacfe151a38a",
      "tree": "a2bbe91f62459f474417c1485912b1da7beaed10",
      "parents": [
        "fd0017c1243b2b9058525672b9ea13272fb51b30"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 19 14:21:22 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:42 2012 +0100"
      },
      "message": "drbd: don\u0027t try to clear bits once the disk has failed\n\nIf the disk has failed already, there is no point trying to change the\nbitmap. drbd_set_out_of_sync() already had this safeguard,\ntime to add it to drbd_set_in_sync() as well.\n\nThis also prevents some warning messages, like\n FIXME asender in bm_change_bits_to, bitmap locked for \u0027detach\u0027 by worker\nif our disk fails during resync, while there are some resync acks queued up.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fd0017c1243b2b9058525672b9ea13272fb51b30",
      "tree": "529e6eaef73f2ac210e12f9bc4eb8a6178e1894c",
      "parents": [
        "4035e4c2ebeb6ac1acbf4e5dd8a759fcf93ff8da"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 19 14:19:23 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:42 2012 +0100"
      },
      "message": "drbd: fix regression: potential NULL pointer dereference\n\nrecent commit\n    drbd: always write bitmap on detach\nintroduced a bitmap writeout during detach,\nwhich obviously needs some meta data device to write to.\n\nUnfortunately, that same error path may be taken if we fail to attach,\ne.g. due to UUID mismatch, after we changed state to D_ATTACHING,\nbut before the lower level device pointer is even assigned.\n\nWe need to test for presence of mdev-\u003eldev.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4035e4c2ebeb6ac1acbf4e5dd8a759fcf93ff8da",
      "tree": "6b05a01cb88deeec5a0e1159fd7d9db5067d3a09",
      "parents": [
        "42839f65361baa0fa62494c32f1dae570e9dce19"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Oct 01 18:04:12 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:42 2012 +0100"
      },
      "message": "drbd: Fix clearing of MDF_AL_DISABLED\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "42839f65361baa0fa62494c32f1dae570e9dce19",
      "tree": "1ddd9c433dfed793d3cbe45f900f470cd7d781d1",
      "parents": [
        "edc9f5eb7afa3d832f540fcfe10e3e1087e6f527"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Sep 27 15:19:38 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:41 2012 +0100"
      },
      "message": "drbd: log request sector offset and size for IO errors\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "edc9f5eb7afa3d832f540fcfe10e3e1087e6f527",
      "tree": "eba63d771575a42a6aa81bd55a59f7d6253d18ea",
      "parents": [
        "e34b677d09ce375a87acd0360537cbed33881b0c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Sep 27 15:18:21 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:41 2012 +0100"
      },
      "message": "drbd: always write bitmap on detach\n\nIf we detach due to local read-error (which sets a bit in the bitmap),\nstay Primary, and then re-attach (which re-reads the bitmap from disk),\nwe potentially lost the \"out-of-sync\" (or, \"bad block\") information in\nthe bitmap.\n\nAlways (try to) write out the changed bitmap pages before going diskless.\n\nThat way, we don\u0027t lose the bit for the bad block,\nthe next resync will fetch it from the peer, and rewrite\nit locally, which may result in block reallocation in some\nlower layer (or the hardware), and thereby \"heal\" the bad blocks.\n\nIf the bitmap writeout errors out as well, we will (again: try to)\nmark the \"we need a full sync\" bit in our super block,\nif it was a READ error; writes are covered by the activity log already.\n\nIf that superblock does not make it to disk either, we are sorry.\n\nMaybe we just lost an entire disk or controller (or iSCSI connection),\nand there actually are no bad blocks at all, so we don\u0027t need to\nre-fetch from the peer, there is no \"auto-healing\" necessary.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "e34b677d09ce375a87acd0360537cbed33881b0c",
      "tree": "6b8d1a2d6224f095c046bc0792d9288190253e19",
      "parents": [
        "8747d30af97232f9ff4cde78b8d259cc715a9b7a"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu Sep 27 15:07:11 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:40 2012 +0100"
      },
      "message": "drbd: wait for meta data IO completion even with failed disk, unless force-detached\n\nThe intention of force-detach is to be able to deal with a completely\nunresponsive lower level IO stack, which does not even deliver error\ncompletions anymore, but no completion at all.\n\nIn all other cases, we must still wait for the meta data IO completion.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "8747d30af97232f9ff4cde78b8d259cc715a9b7a",
      "tree": "4c983fe736a4bdfc80f7a978011d01932ec85e02",
      "parents": [
        "bc891c9ae3fb2848922e0f0da22fd7de0d58dc1b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Sep 26 14:22:40 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:40 2012 +0100"
      },
      "message": "drbd: a few more GFP_KERNEL -\u003e GFP_NOIO\n\nThis has not yet been observed, but conceivably, when using GFP_KERNEL\nallocations from drbd_md_sync(), drbd_flush_after_epoch() or\nreceive_SyncParam(), we could trigger additional IO to our own device,\nor an other device in a criss-cross setup, and end up in a local\ndeadlock, or potentially a distributed deadlock in a criss-cross setup\ninvolving the peer blocked in a similar way waiting for us to make\nprogress.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bc891c9ae3fb2848922e0f0da22fd7de0d58dc1b",
      "tree": "58353dfe6fb1257533959a56346b5d5a0a15ad4f",
      "parents": [
        "a506c13a4d1ec5e1f2f9bc0123dacb5d123004d3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Sep 26 14:18:51 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:39 2012 +0100"
      },
      "message": "drbd: fix potential deadlock during bitmap (re-)allocation\n\nThe former comment arguing that GFP_KERNEL was good enough was wrong: it\ndid not take resize into account at all, and assumed the only path\nleading here was the normal attach on a still secondary device, so no\ndeadlock would be possible.\n\nBoth resize on a Primary, or attach on a diskless Primary,\ncould potentially deadlock.\n\ndrbd_bm_resize() is called while IO to the respective device is\nsuspended, so we must use GFP_NOIO to avoid potential deadlock.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a506c13a4d1ec5e1f2f9bc0123dacb5d123004d3",
      "tree": "220cf5d8b8cbd88b498b4ae46e5f523cfb9449ab",
      "parents": [
        "1b6dd252e6c631322372c018ed546a108d9869d3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Sep 26 14:16:30 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:39 2012 +0100"
      },
      "message": "drbd: use list_move_tail instead of list_del/list_add_tail\n\nUsing list_move_tail() instead of list_del() + list_add_tail().\n\nspatch with a semantic match is used to found this problem.\n(http://coccinelle.lip6.fr/)\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1b6dd252e6c631322372c018ed546a108d9869d3",
      "tree": "475048ee4f70f46a9a2b01f9350752b72d16ae6a",
      "parents": [
        "a3025a273700fc51dd561c7b2941f3c9db9be90a"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Sep 04 15:16:20 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:39 2012 +0100"
      },
      "message": "drbd: panic on delayed completion of aborted requests\n\n\"aborting\" requests, or force-detaching the disk, is intended for\ncompletely blocked/hung local backing devices which do no longer\ncomplete requests at all, not even do error completions.  In this\nsituation, usually a hard-reset and failover is the only way out.\n\nBy \"aborting\", basically faking a local error-completion,\nwe allow for a more graceful swichover by cleanly migrating services.\nStill the affected node has to be rebooted \"soon\".\n\nBy completing these requests, we allow the upper layers to re-use\nthe associated data pages.\n\nIf later the local backing device \"recovers\", and now DMAs some data\nfrom disk into the original request pages, in the best case it will\njust put random data into unused pages; but typically it will corrupt\nmeanwhile completely unrelated data, causing all sorts of damage.\n\nWhich means delayed successful completion,\nespecially for READ requests,\nis a reason to panic().\n\nWe assume that a delayed *error* completion is OK,\nthough we still will complain noisily about it.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "a3025a273700fc51dd561c7b2941f3c9db9be90a",
      "tree": "e4fc182421eb57b8863c3ba0aa4b6c2fa6e975ef",
      "parents": [
        "1393b59f8c46001c8dbd47078881483cf97813c3"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Sep 03 15:39:01 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:38 2012 +0100"
      },
      "message": "drbd: Fix comparison of is_valid_transition()\u0027s return code\n\nis_valid_transition() might return SS_NOTHING_TO_DO.\n\nThe condition function _req_st_cond() returned SS_NOTHING_TO_DO, which\ncaused the wait_event to abort too early. Therefore drbd_req_state()\ndid not consume the next CL_ST_CHG_SUCCESS or SS_CW_FAILED_BY_PEER\ncausing serve disruption of the state machine logic...\n\nDetaching from a single volue was one way to trigger this bug.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "1393b59f8c46001c8dbd47078881483cf97813c3",
      "tree": "0093ab8ecaab9d125e21c01acb58d7309b161270",
      "parents": [
        "70f17b6bd18dfe33f40db7573baa663b866be6ba"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Sep 03 14:04:23 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:38 2012 +0100"
      },
      "message": "drbd: Remove duplicate code\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "70f17b6bd18dfe33f40db7573baa663b866be6ba",
      "tree": "43e12531930774a6b1814a065441ca0ee1fce7df",
      "parents": [
        "76590cd1fc338fd1c50f7121636db421deb8b881"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Sep 03 14:08:35 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:37 2012 +0100"
      },
      "message": "drbd: differentiate early and later \"postponing\" of requests\n\nWe use the RQ_POSTPONED flag to mark a request for several reasons.\n\nIt may be a conflicting request in a dual-primary setup,\nwhere conflict detection and resolution on the peer decided that\nthis request needs to be re-submitted, it needs to re-enter\ndrbd_make_request() to fix the data divergence caused by these\nconflicting, partially overlapping, quasi-simultaneous requests.\n\nIn this case we need to mark the corresponding area as out-of-sync,\nbefore we call drbd_al_complete_io().\n\nWe also use the RQ_POSTPONED flag to just \"push back\" a request,\nbefore even processing it, if IO is suspended for some reason.\nIn this case, as this request was neither submitted nor sent yet,\nwe must not touch the bitmap.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "76590cd1fc338fd1c50f7121636db421deb8b881",
      "tree": "b73e77a7594fbdf2f4250e2c4700b273e3625899",
      "parents": [
        "19fffd7b0303e8843aa2decfd43fa57c9d511409"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 29 15:23:14 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:37 2012 +0100"
      },
      "message": "drbd: Fix postponed requests\n\nA postponed request might has RQ_IN_ACT_LOG already set, but\nis POSTPONED before it gets something in the RQ_LOCAL_MASK\nset. Up to now this caused a left-over active extent.\n\nFix that by only testing for the RQ_IN_ACT_LOG bit in drbd_req_destroy()\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "19fffd7b0303e8843aa2decfd43fa57c9d511409",
      "tree": "19ac111fafeec46eac2b0e8cee4f41f4327a1129",
      "parents": [
        "d76440181d0e05826f228189b74b4dbf64b68981"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 28 16:48:03 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:11:08 2012 +0100"
      },
      "message": "drbd: Call drbd_md_sync() explicitly after a state change on the connection\n\nWithout this, the meta-data gets updates after 5 seconds by the\nmd_sync_timer. Better to do it immeditaly after a state change.\n\nIf the asender detects a network failure, it may take a bit until\nthe worker processes the according after-conn-state-change work item.\n\n  The worker might be blocked in sending something, i.e. it\n  takes until it gets into its timeout. That is 6 seconds by\n  default which is longer than the 5 seconds of the md_sync_timer.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "d76440181d0e05826f228189b74b4dbf64b68981",
      "tree": "1cd13320a3174aea469984a3a584d4df025a77ec",
      "parents": [
        "4ae98b4db3d0e9336d0b771636b7d053a1460805"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 28 14:39:44 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:24 2012 +0100"
      },
      "message": "drbd: Fix postponed requests\n\n* Postponed requests should not set or clear out-of-sync marks\n* When a request gets postponed we need to drop its reference\n  mdev-\u003elocal_cnt (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": "4ae98b4db3d0e9336d0b771636b7d053a1460805",
      "tree": "00f409c059b6f910911df3a975c2a81e0be7e99e",
      "parents": [
        "797020117761eee21ef284cea90c51c690fca169"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 28 11:46:22 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:24 2012 +0100"
      },
      "message": "drbd: Imporve the error reporting of failed conn state changes\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "797020117761eee21ef284cea90c51c690fca169",
      "tree": "f631b73335e5a2211525a692ac57901d4c48b126",
      "parents": [
        "07fc96197aec46f7ad4f08a4b2a1ea426112e24d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 28 11:33:35 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:23 2012 +0100"
      },
      "message": "drbd: Fix the way the STATE_SENT bit is cleared\n\nWith merging the commit\n\u0027drbd: Delay/reject other state changes while establishing a connection\u0027\nthe condition check for clearing the flag was wrong.\n\nMove the bit clearing to the __drbd_set_state() function\nin order to have it already cleared for the other parts of\nthe function. I.e. clearing the susp_fen in the after_state_ch() function.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "07fc96197aec46f7ad4f08a4b2a1ea426112e24d",
      "tree": "b1cb7a0f46bf938cd994515e91ed814f5f3ef976",
      "parents": [
        "892fdd1aee35803bfa41ccf4df850ddb70f0811c"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 28 11:07:56 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:23 2012 +0100"
      },
      "message": "drbd: Do not check aspects that are not subject to change in _conn_requests_state()\n\nWhen _conn_requests_state() is used to change other parts of the state\nthan the connection, do not check for a valid connection transition.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "892fdd1aee35803bfa41ccf4df850ddb70f0811c",
      "tree": "da4150805ff7aa465af7668b138384407b0b09e7",
      "parents": [
        "88f79ec4ae22a82d7b9a0cd4c9f3ee1def2a382c"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Aug 27 17:20:12 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:22 2012 +0100"
      },
      "message": "drbd: Improve readability of IO resuming after freeze due to no data access\n\nThe previous way of doing the state change was also okay since the\nstate change on the susp flag gets propagated from the mdev\nto the tconn.\n\nFortunately all this goes away in drbd-9.0\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "88f79ec4ae22a82d7b9a0cd4c9f3ee1def2a382c",
      "tree": "387eef2b1f43e8c09514b288fd9570f8cde8e6b0",
      "parents": [
        "b792b655cdf79d4d90b4d46fa37e260ba0296850"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Aug 27 17:16:21 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:22 2012 +0100"
      },
      "message": "drbd: Fix IO resuming after connection was established while executing the fence handler\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "b792b655cdf79d4d90b4d46fa37e260ba0296850",
      "tree": "3880fc3b0a90a1d83ab8e53c31efc10ff856bedc",
      "parents": [
        "bc317a9ecd641b78a4b237cb22b30ecf11443c77"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 22 14:59:06 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:21 2012 +0100"
      },
      "message": "drbd: fix potential list_add corruption\n\nIf the md_sync_timer triggers a second time,\nwhile the work queued during the first time is still pending,\nthis could result in list_add() of an already added item,\nand corrupt the work item list.\n\nThis likely only triggered because of the erroneous\nbatch-dequeueing of work items fixed with\n  drbd: dequeue single work items in wait_for_work()\n\nStill, skip queueing if md_sync_work is already queued.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "bc317a9ecd641b78a4b237cb22b30ecf11443c77",
      "tree": "a7c97ada41d22ff2f7fb7aae8bd025818e79a458",
      "parents": [
        "c02abda2b28734a7e97e15db866507b3cb92b7d0"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 22 11:47:14 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:21 2012 +0100"
      },
      "message": "drbd: dequeue single work items in wait_for_work()\n\nAs long as we still use drbd_queue_work_front(),\nwe must only dequeue the single first item during normal operation.\n\nThe comment in drbd_worker() even says so,\nbut bc8a5a1 drbd: remove struct drbd_tl_epoch objects (barrier works)\nintroduced the batch dequeueing again via list_splice_init() in\nwait_for_work().\n\nChange back to list_move() of the first item, if any.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c02abda2b28734a7e97e15db866507b3cb92b7d0",
      "tree": "c85af57b2f3e9689d4374895c125da37d7ae7fad",
      "parents": [
        "c1fd29a11f433ca8ae37723768016ffe6cdd487b"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Aug 22 16:15:26 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:21 2012 +0100"
      },
      "message": "drbd: mutex_unlock \"... must no be used in interrupt context\"\n\nDocumentation of mutex_unlock says\nwe must not use it in interrupt context.\nSo do not call it while holding the spin_lock_irq,\nbut give up the spinlock temporarily.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "c1fd29a11f433ca8ae37723768016ffe6cdd487b",
      "tree": "d297c9ee730f292a2a789f9bbeceffde075afc26",
      "parents": [
        "0ee98e2eb0c85f27b6f24a15d59fb54f99a93840"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 21 20:34:07 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:20 2012 +0100"
      },
      "message": "drbd: Fix a race condition that can lead to a BUG()\n\nIf the preconditions for a state change change after the wait_event() we\nmight hit the BUG() statement in conn_set_state().\n\nWith holding the spin_lock while evaluating the condition AND until the\nactual state change we ensure the the preconditions can not change anymore.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "0ee98e2eb0c85f27b6f24a15d59fb54f99a93840",
      "tree": "bc3a3a0f737c6c7fa246047d35e9b1c2337bb418",
      "parents": [
        "4eb9b3cba00471a01699cceb0f4b1f0cb8111ee2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Aug 20 14:54:48 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:20 2012 +0100"
      },
      "message": "drbd: temporarily suspend io in drbd_adm_disk_opts\n\ndrbd_adm_disk_opts() does\n\twait_event(mdev-\u003eal_wait, lc_try_lock(mdev-\u003eact_log));\n\tdrbd_al_shrink(mdev);\n\nIf the device is very busy, this can take a very long time to succeed.\nFix this by temporarily suspending IO,\nthen quickly change the settings, and resume.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "4eb9b3cba00471a01699cceb0f4b1f0cb8111ee2",
      "tree": "55ee26423ac7d71efc76d8436622563ea272a549",
      "parents": [
        "08332d73250eec349b055843a503d45a9b5c13b6"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Aug 20 11:05:23 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:19 2012 +0100"
      },
      "message": "drbd: don\u0027t send out P_BARRIER with stale information\n\nWe must only send P_BARRIER for epochs we actually sent P_DATA in.\n\nIf we (re-)establish a connection, we reinitialized the\nsend.current_epoch_nr, but forgot to reset send.current_epoch_writes.\n\nThis could result in a spurious P_BARRIER with stale epoch information,\nand a disconnect/reconnect cycle once the then \"unexpected\"\nP_BARRIER_ACK is received:\n  BAD! BarrierAck #28823 received, expected #28829!\n\nIntroduce re_init_if_first_write() and maybe_send_barrier() helpers,\nand call them appropriately for read/write/set-out-of-sync requests.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "08332d73250eec349b055843a503d45a9b5c13b6",
      "tree": "ec23064ccd2e5f0e21ee883793d0682c5e9a784a",
      "parents": [
        "155522df5b8ac24ee66a903e51d5b3023b2a76f9"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Aug 17 15:09:13 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:19 2012 +0100"
      },
      "message": "drbd: properly call drbd_rs_cancel_all() in drbd_disconnected()\n\ndrbd_disconnected() is supposed to clear the resync lru cache,\nby calling drbd_rs_cancel_all().\n\nWe must do so before we call drbd_flush_workqueue(), as at least the\ncallback w_restart_disk_io() may wait for resync progres, and would\notherwise deadlock.\n\ndrbd_finish_peer_reqs() may again populate that cache, which will\nthen potentially be stale after the next resync handshake and bitmap\nexchange, we have to do it again after that.\n\nA stale resync lru cache causes no harm but ugly messages like this:\n BAD! sector\u003d196608s enr\u003d6 rs_left\u003d-256 rs_failed\u003d0 count\u003d256 cstate\u003dSyncTarget\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "155522df5b8ac24ee66a903e51d5b3023b2a76f9",
      "tree": "65df69345129f3ce142507f7bfa7667ea4bbb2c0",
      "parents": [
        "b66623e33efbbf55717df7bfc49882371118b866"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 08 21:19:09 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:19 2012 +0100"
      },
      "message": "drbd: Remove 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": "b66623e33efbbf55717df7bfc49882371118b866",
      "tree": "3f345827c8fab3b4aa8f2b7cf7bd760c704483af",
      "parents": [
        "39a1aa7f49dc8eae5c8d3a4bf759eb7abeabe6c0"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 08 21:19:09 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:18 2012 +0100"
      },
      "message": "drbd: Avoid NetworkFailure state during disconnect\n\nDisconnecting is a cluster wide state change. In case the peer node agrees\nto the state transition, it sends back the fact on the meta-data connection\nand closes both sockets.\n\nIn case the node node that initiated the state transfer sees the closing\naction on the data-socket, before the P_STATE_CHG_REPLY packet, it was\ngoing into one of the network failure states.\n\nAt least with the fencing option set to something else thatn \"dont-care\",\nthe unclean shutdown of the connection causes a short IO freeze or\na fence operation.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "39a1aa7f49dc8eae5c8d3a4bf759eb7abeabe6c0",
      "tree": "d75405087a78c53b95c99ab5e2e52230a5e8cc5a",
      "parents": [
        "fef45d297e447d710abcf0cd0bdbf8738ff469eb"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Aug 08 21:19:09 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:08:04 2012 +0100"
      },
      "message": "drbd: Protect accesses to the uuid set with a spinlock\n\nThere is at least the worker context, the receiver context, the context of\nreceiving netlink packts.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "fef45d297e447d710abcf0cd0bdbf8738ff469eb",
      "tree": "d4200c3cb2b5168d33566d6f9bf48da36d91f231",
      "parents": [
        "5af2e8ce2b463c2cc8e4a074f9d8f660ae7c1d8f"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 14 11:46:59 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:05:51 2012 +0100"
      },
      "message": "drbd: Write all pages of the bitmap after an online resize\n\nWe need to write the whole bitmap after we moved the meta data\ndue to an online resize operation.\n\nWith the support for one peta byte devices bitmap IO was optimized\nto only write out touched pages. This optimization must be turned\noff when writing the bitmap after an online resize.\n\nThis issue was introduced with drbd-8.3.10.\n\nThe impact of this bug is that after an online resize, the next\nresync could become larger than expected.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "5af2e8ce2b463c2cc8e4a074f9d8f660ae7c1d8f",
      "tree": "17e450ce313e0fa63096c61acf57536f4e40f533",
      "parents": [
        "715306f69d85f7ea21eaef4efe75b8364cfea1d5"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Aug 14 11:28:52 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:05:50 2012 +0100"
      },
      "message": "drbd: Fix completion of requests while the device is suspended\n\nIn various places (E.g. CONNECTION_LOST_WHILE_PENDING) the\nRQ_COMPLETION_SUSP mask is passed in the clear set to mod_rq_state().\n\nThe issue was that it tried to clear the RQ_COMPLETION_SUSP bit\nout of the state mask first, and eventuelly set it afterwards,\nin the drbd_req_put_completion_ref() function.\n\nFixed that by moving the reference getting out of\ndrbd_req_put_completion_ref() into the mod_rq_state(), before the place\nwhere the extra reference might be put.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    },
    {
      "commit": "715306f69d85f7ea21eaef4efe75b8364cfea1d5",
      "tree": "f6abd1f0a94aab0d2e097b72743f7dbe9ef9deaa",
      "parents": [
        "eb12010e9af119c84e6b2214064a98681027e0e3"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Fri Aug 10 17:00:30 2012 +0200"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:05:50 2012 +0100"
      },
      "message": "drbd: Don\u0027t unregister socket state_change callback from within the callback\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n"
    }
  ],
  "next": "eb12010e9af119c84e6b2214064a98681027e0e3"
}
