)]}'
{
  "log": [
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "f4507164e7796b66c371ff9a63154f1c884a2433",
      "tree": "d3ae02b15daf3cde6cd1a11ead7ee7cc97c8d07f",
      "parents": [
        "cf3f89214ef6a33fad60856bc5ffd7bb2fc4709b"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Wed Mar 28 14:42:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "nbd: rename the nbd_device variable from lo to nbd\n\nrename the nbd_device variable from \"lo\" to \"nbd\", since \"lo\" is just a name\ncopied from loop.c.\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.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": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "47b816ff7d520509176154748713e7d66b3ad6ac",
      "tree": "6d14e8bf3a8d41f9d4cdd6ccdec91d3d6b046b05",
      "parents": [
        "2e7580b0e75d771d93e24e681031a165b1d31071",
        "1ce447b90f3e71c81ae59e0062bc305ef267668b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:41:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:41:36 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull a few more things for powerpc by Benjamin Herrenschmidt:\n - Anton\u0027s did some recent improvements to EPOW event reporting on\n   pSeries (power supply failures and such).  The patches are self\n   contained enough and replace really nasty code so I felt it should\n   still go in\n - I did the vio driver registration change Greg requested, I don\u0027t see\n   the point of leaving that til the next merge window\n - The remaining EEH changes I said were still pending to get rid of the\n   EEH references from the generic struct device_node\n - A few more iSeries removal bits\n - A perf bug fix on 970\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:\n  powerpc/perf: Fix instruction address sampling on 970 and Power4\n  powerpc+sparc/vio: Modernize driver registration\n  powerpc: Random little legacy iSeries removal tidy ups\n  powerpc: Remove NO_IRQ_IGNORE\n  powerpc/pseries: Cut down on enthusiastic use of defines in RAS code\n  powerpc/pseries: Clean up ras_error_interrupt code\n  powerpc/pseries: Remove RTAS_POWERMGM_EVENTS\n  powerpc/pseries: Use rtas_get_sensor in RAS code\n  powerpc/pseries: Parse and handle EPOW interrupts\n  powerpc: Make function that parses RTAS error logs global\n  powerpc/eeh: Retrieve PHB from global list\n  powerpc/eeh: Remove eeh information from pci_dn\n  powerpc/eeh: Remove eeh device from OF node\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
      "tree": "191bf87e438a3985ccb7e3c5382fab8d31f94edb",
      "parents": [
        "9a7259d5c8978bbeb5fdcf64b168f8470d8208a6",
        "c666601a935b94cc0f3310339411b6940de751ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:01:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:01:29 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph updates for 3.4-rc1 from Sage Weil:\n \"Alex has been busy.  There are a range of rbd and libceph cleanups,\n  especially surrounding device setup and teardown, and a few critical\n  fixes in that code.  There are more cleanups in the messenger code,\n  virtual xattrs, a fix for CRC calculation/checks, and lots of other\n  miscellaneous stuff.\n\n  There\u0027s a patch from Amon Ott to make inos behave a bit better on\n  32-bit boxes, some decode check fixes from Xi Wang, and network\n  throttling fix from Jim Schutt, and a couple RBD fixes from Josh\n  Durgin.\n\n  No new functionality, just a lot of cleanup and bug fixing.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (65 commits)\n  rbd: move snap_rwsem to the device, rename to header_rwsem\n  ceph: fix three bugs, two in ceph_vxattrcb_file_layout()\n  libceph: isolate kmap() call in write_partial_msg_pages()\n  libceph: rename \"page_shift\" variable to something sensible\n  libceph: get rid of zero_page_address\n  libceph: only call kernel_sendpage() via helper\n  libceph: use kernel_sendpage() for sending zeroes\n  libceph: fix inverted crc option logic\n  libceph: some simple changes\n  libceph: small refactor in write_partial_kvec()\n  libceph: do crc calculations outside loop\n  libceph: separate CRC calculation from byte swapping\n  libceph: use \"do\" in CRC-related Boolean variables\n  ceph: ensure Boolean options support both senses\n  libceph: a few small changes\n  libceph: make ceph_tcp_connect() return int\n  libceph: encapsulate some messenger cleanup code\n  libceph: make ceph_msgr_wq private\n  libceph: encapsulate connection kvec operations\n  libceph: move prepare_write_banner()\n  ...\n"
    },
    {
      "commit": "cb52d8970eee65bf2c47d9a91bd4f58b17f595f4",
      "tree": "43521ba99805f293e09a284901cb5435afeab789",
      "parents": [
        "1d9a47315042606b4217691bcea36cfa6ccbde66"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Mar 26 19:06:30 2012 +0000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Mar 28 11:33:24 2012 +1100"
      },
      "message": "powerpc+sparc/vio: Modernize driver registration\n\nThis makes vio_register_driver() get the module owner \u0026 name at compile\ntime like PCI drivers do, and adds a name pointer directly in struct\nvio_driver to avoid having to explicitly initialize the embedded\nstruct device.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e22057c8599373e5caef0bc42bdb95d2a361ab0d",
      "tree": "04e9f51835f4d5c08aada38597c30de1113c03d9",
      "parents": [
        "496b919b3bdd957d4b1727df79bfa3751bced1c1",
        "df7a3ee29b775edd1c2d75cf0b128b174bd4091e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 12:20:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 12:20:25 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.4-tag-two\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull more xen updates from Konrad Rzeszutek Wilk:\n \"One tiny feature that accidentally got lost in the initial git pull:\n   * Add fast-EOI acking of interrupts (clear a bit instead of\n     hypercall)\n  And bug-fixes:\n   * Fix CPU bring-up code missing a call to notify other subsystems.\n   * Fix reading /sys/hypervisor even if PVonHVM drivers are not loaded.\n   * In Xen ACPI processor driver: remove too verbose WARN messages, fix\n     up the Kconfig dependency to be a module by default, and add\n     dependency on CPU_FREQ.\n   * Disable CPU frequency drivers from loading when booting under Xen\n     (as we want the Xen ACPI processor to be used instead).\n   * Cleanups in tmem code.\"\n\n* tag \u0027stable/for-linus-3.4-tag-two\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen/acpi: Fix Kconfig dependency on CPU_FREQ\n  xen: initialize platform-pci even if xen_emul_unplug\u003dnever\n  xen/smp: Fix bringup bug in AP code.\n  xen/acpi: Remove the WARN\u0027s as they just create noise.\n  xen/tmem: cleanup\n  xen: support pirq_eoi_map\n  xen/acpi-processor: Do not depend on CPU frequency scaling drivers.\n  xen/cpufreq: Disable the cpu frequency scaling drivers from loading.\n  provide disable_cpufreq() function to disable the API.\n"
    },
    {
      "commit": "70834d3070c3f3015ab5c05176d54bd4a0100546",
      "tree": "4dbcea84c4584de05f83aa911164902b3f00265f",
      "parents": [
        "a02d6fd643cbd4c559113b35b31d3b04e4ec60c7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "usermodehelper: use UMH_WAIT_PROC consistently\n\nA few call_usermodehelper() callers use the hardcoded constant instead of\nthe proper UMH_WAIT_PROC, fix them.\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c666601a935b94cc0f3310339411b6940de751ba",
      "tree": "da8afdd9c553dc349f1a1cdd94ab05d4b5dc5449",
      "parents": [
        "3489b42a72a41d477665ab37f196ae9257180abb"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Nov 21 17:11:12 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:52 2012 -0500"
      },
      "message": "rbd: move snap_rwsem to the device, rename to header_rwsem\n\nA new temporary header is allocated each time the header changes, but\nonly the changed properties are copied over. We don\u0027t need a new\nsemaphore for each header update.\n\nThis addresses http://tracker.newdream.net/issues/2174\n\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "32eec68d2f233e8a6ae1cd326022f6862e2b9ce3",
      "tree": "03a1f313541374d091bfa09e6028f18bb8c77c18",
      "parents": [
        "593a9e7b34fa62d703b473ae923a9681556cdf74"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Wed Feb 08 16:11:14 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:50 2012 -0500"
      },
      "message": "rbd: don\u0027t drop the rbd_id too early\n\nCurrently an rbd device\u0027s id is released when it is removed, but it\nis done before the code is run to clean up sysfs-related files (such\nas /sys/bus/rbd/devices/1).\n\nIt\u0027s possible that an rbd is still in use after the rbd_remove()\ncall has been made.  It\u0027s essentially the same as an active inode\nthat stays around after it has been removed--until its final close\noperation.  This means that the id shows up as free for reuse at a\ntime it should not be.\n\nThe effect of this was seen by Jens Rehpoehler, who:\n    - had a filesystem mounted on an rbd device\n    - unmapped that filesystem (without unmounting)\n    - found that the mount still worked properly\n    - but hit a panic when he attempted to re-map a new rbd device\n\nThis re-map attempt found the previously-unmapped id available.\nThe subsequent attempt to reuse it was met with a panic while\nattempting to (re-)install the sysfs entry for the new mapped\ndevice.\n\nFix this by holding off \"putting\" the rbd id, until the rbd_device\nrelease function is called--when the last reference is finally\ndropped.\n\nNote: This fixes: http://tracker.newdream.net/issues/1907\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "593a9e7b34fa62d703b473ae923a9681556cdf74",
      "tree": "966050a350368a6c622e45a3ddd7d4fe5f857d08",
      "parents": [
        "00f1f36ffa29a6b8e0529770bce2a44585ab3af0"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Feb 07 12:03:37 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:50 2012 -0500"
      },
      "message": "rbd: small changes\n\nHere is another set of small code tidy-ups:\n    - Define SECTOR_SHIFT and SECTOR_SIZE, and use these symbolic\n      names throughout.  Tell the blk_queue system our physical\n      block size, in the (unlikely) event we want to use something\n      other than the default.\n    - Delete the definition of struct rbd_info, which is never used.\n    - Move the definition of dev_to_rbd() down in its source file,\n      just above where it gets first used, and change its name to\n      dev_to_rbd_dev().\n    - Replace an open-coded operation in rbd_dev_release() to use\n      dev_to_rbd_dev() instead.\n    - Calculate the segment size for a given rbd_device just once in\n      rbd_init_disk().\n    - Use the \u0027%zd\u0027 conversion specifier in rbd_snap_size_show(),\n      since the value formatted is a size_t.\n    - Switch to the \u0027%llu\u0027 conversion specifier in rbd_snap_id_show().\n      since the value formatted is unsigned.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "00f1f36ffa29a6b8e0529770bce2a44585ab3af0",
      "tree": "573bed76392a12b4568adcf704ec7b77e108be08",
      "parents": [
        "fed4c143ba8f08c8bddfdc7c69738e691a06d565"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Feb 07 12:03:36 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:50 2012 -0500"
      },
      "message": "rbd: do some refactoring\n\nA few blocks of code are rearranged a bit here:\n    - In rbd_header_from_disk():\n\t- Don\u0027t bother computing snap_count until we\u0027re sure the\n\t  on-disk header starts with a good signature.\n\t- Move a few independent lines of code so they are *after* a\n\t  check for a failed memory allocation.\n\t- Get rid of unnecessary local variable \"ret\".\n    - Make a few other changes in rbd_read_header(), similar to the\n      above--just moving things around a bit while preserving the\n      functionality.\n    - In rbd_rq_fn(), just assign rq in the while loop\u0027s controlling\n      expression rather than duplicating it before and at the end of\n      the loop body.  This allows the use of \"continue\" rather than\n      \"goto next\" in a number of spots.\n    - Rearrange the logic in snap_by_name().  End result is the same.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "fed4c143ba8f08c8bddfdc7c69738e691a06d565",
      "tree": "2c4e649eaa7ea7a73fa29d603c019d7df7fa287a",
      "parents": [
        "7ef3214af220515b8fe223ec92ec017d2e5607a7"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Feb 07 12:03:36 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:50 2012 -0500"
      },
      "message": "rbd: fix module sysfs setup/teardown code\n\nOnce rbd_bus_type is registered, it allows an \"add\" operation via\nthe /sys/bus/rbd/add bus attribute, and adding a new rbd device that\nway establishes a connection between the device and rbd_root_dev.\nBut rbd_root_dev is not registered until after the rbd_bus_type\nregistration is complete.  This could (in principle anyway) result\nin an invalid state.\n\nSince rbd_root_dev has no tie to rbd_bus_type we can reorder these\ntwo initializations and never be faced with this scenario.\n\nIn addition, unregister the device in the event the bus registration\nfails at module init time.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7ef3214af220515b8fe223ec92ec017d2e5607a7",
      "tree": "74911dc83a10f824d0e2cbd83896bb32b0fc566b",
      "parents": [
        "5214ecc45cf9b9f1365b189bcb63e441e3865334"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:50 2012 -0500"
      },
      "message": "rbd: don\u0027t allocate mon_addrs buffer in rbd_add()\n\nThe mon_addrs buffer in rbd_add is used to hold a copy of the\nmonitor IP addresses supplied via /sys/bus/rbd/add.  That is\npassed to rbd_get_client(), which never modifies it (nor do\nany of the functions it gets passed to thereafter)--the mon_addr\nparameter to rbd_get_client() is a pointer to constant data, so it\ncan\u0027t be modifed.  Furthermore, rbd_get_client() has the length of\nthe mon_addrs buffer and that is used to ensure nothing goes beyond\nits end.\n\nBased on all this, there is no reason that a buffer needs to\nbe used to hold a copy of the mon_addrs provided via\n/sys/bus/rbd/add.   Instead, the location within that passed-in\nbuffer can be provided, along with the length of the \"token\"\ntherein which represents the monitor IP\u0027s.\n\nA small change to rbd_add_parse_args() allows the address within the\nbuffer to be passed back, and the length is already returned.  This\nnow means that, at least from the perspective of this interface,\nthere is no such thing as a list of monitor addresses that is too\nlong.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "5214ecc45cf9b9f1365b189bcb63e441e3865334",
      "tree": "68e7ca8cb6e3e1698e788d35dcbe16320bdbb3ea",
      "parents": [
        "81a897937827a81107861d50c77b4d04ff8b43a2"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:49 2012 -0500"
      },
      "message": "rbd: have rbd_parse_args() report found mon_addrs size\n\nThe argument parsing routine already computes the size of the\nmon_addrs buffer it extracts from the \"command.\"  Pass it to the\ncaller so it can use it to provide the length to rbd_get_client().\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "81a897937827a81107861d50c77b4d04ff8b43a2",
      "tree": "f639600c9760a9db47e73b9a680bbfd8bba0b85f",
      "parents": [
        "e28fff268e7d40ea7a936478c97ce41b6c22815f"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:49 2012 -0500"
      },
      "message": "rbd: do a few checks at build time\n\nThis is a bit gratuitous, but there are a few things that can be\nverified at build time rather than run time, so do that.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "e28fff268e7d40ea7a936478c97ce41b6c22815f",
      "tree": "bf228f2fa056b5fcbe41c06b07f960cf8a0cc757",
      "parents": [
        "a725f65e52de73defb3c7033c471c48c56ca6cdd"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:49 2012 -0500"
      },
      "message": "rbd: don\u0027t use sscanf() in rbd_add_parse_args()\n\nMake use of a few simple helper routines to parse the arguments\nrather than sscanf().  This will treat both missing and too-long\narguments as invalid input (rather than silently truncating the\ninput in the too-long case).  In time this can also be used by\nrbd_add() to use the passed-in buffer in place, rather than copying\nits contents into new buffers.\n\nIt appears to me that the sscanf() previously used would not\ncorrectly handle a supplied snapshot--the two final \"%s\" conversion\nspecifications were not separated by a space, and I\u0027m not sure\nhow sscanf() handles that situation.  It may not be well-defined.\nSo that may be a bug this change fixes (but I didn\u0027t verify that).\n\nThe sizes of the mon_addrs and options buffers are now passed to\nrbd_add_parse_args(), so they can be supplied to copy_token().\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "a725f65e52de73defb3c7033c471c48c56ca6cdd",
      "tree": "38b1561838f74e4faab94f9828cfc57dc2027e0d",
      "parents": [
        "27cc25943fb359241546e7bb7a3ab1c2f35796a2"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:48 2012 -0500"
      },
      "message": "rbd: encapsulate argument parsing for rbd_add()\n\nMove the code that parses the arguments provided to rbd_add() (which\nare supplied via /sys/bus/rbd/add) into a separate function.\n\nAlso rename the \"mon_dev_name\" variable in rbd_add() to be\n\"mon_addrs\".   The variable represents a list of one or more\ncomma-separated monitor IP addresses, each with an optional port\nnumber.  I think \"mon_addrs\" captures that notion a little better.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "27cc25943fb359241546e7bb7a3ab1c2f35796a2",
      "tree": "b5b957d4732a9fc3cc4b9eff33344eb5faabde2e",
      "parents": [
        "60571c7d556b10db7e555bd4b6765647af5c41e8"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:48 2012 -0500"
      },
      "message": "rbd: simplify error handling in rbd_add()\n\nIf a couple pointers are initialized to NULL then a single\n\"out_nomem\" label can be used for all of the memory allocation\nfailure cases in rbd_add().\n\nAlso, get rid of the \"irc\" local variable there.  There is no\nreal need for \"rc\" to be type ssize_t, and it can be used in\nthe spot \"irc\" was.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "60571c7d556b10db7e555bd4b6765647af5c41e8",
      "tree": "34e5f4f677693791efc489ca9005356cd4477a01",
      "parents": [
        "d720bcb0a8f246eb441ba9d4f341bc16746556c6"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:48 2012 -0500"
      },
      "message": "rbd: reduce memory used for rbd_dev fields\n\nThe length of the string containing the monitor address\nspecification(s) will never exceed the length of the string passed\nin to rbd_add().  The same holds true for the ceph + rbd options\nstring.  So reduce the amount of memory allocated for these to\nthat length rather than the maximum (1024 bytes).\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d720bcb0a8f246eb441ba9d4f341bc16746556c6",
      "tree": "9df53a7ff220547c7150be803c8a3e8cca0664b1",
      "parents": [
        "f0f8cef5a30504eaeba5588a9115b46c824d91a3"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:30 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:48 2012 -0500"
      },
      "message": "rbd: have rbd_get_client() return a rbd_client\n\nSince rbd_get_client() currently returns an error code.  It assigns\nthe rbd_client field of the rbd_device structure it is passed if\nsuccessful.  Instead, have it return the created rbd_client\nstructure and return a pointer-coded error if there is an error.\nThis makes the assignment of the client pointer more obvious at the\ncall site.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f0f8cef5a30504eaeba5588a9115b46c824d91a3",
      "tree": "fa7e9d2a8dfb9e15ab85bf92420527deea0bd3ef",
      "parents": [
        "432b858749631dc011ac919dace4b0705ba8cecf"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:48 2012 -0500"
      },
      "message": "rbd: a few simple changes\n\nHere are a few very simple cleanups:\n    - Add a \"RBD_\" prefix to the two driver name string definitions.\n    - Move the definition of struct rbd_request below struct rbd_req_coll\n      to avoid the need for an empty declaration of the latter.\n    - Move and group the definitions of rbd_root_dev_release() and\n      rbd_root_dev, as well as rbd_bus_type and rbd_bus_attrs[],\n      close to the top of the file.  Arrange the latter so\n      rbd_bus_type.bus_attrs can be initialized statically.\n    - Get rid of an unnecessary local variable in rbd_open().\n    - Rework some hokey logic in rbd_bus_add_dev(), so the value of\n      \"ret\" at the end is either 0 or -ENOENT to avoid the need for\n      the code duplication that was there.\n    - Rename a goto target in rbd_add().\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "432b858749631dc011ac919dace4b0705ba8cecf",
      "tree": "9e16e9ac876b6d0460f40a0df832c0aa1fc8271a",
      "parents": [
        "bc534d86be71aaf8dfac46131420ab1c47387d42"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:48 2012 -0500"
      },
      "message": "rbd: rename \"node_lock\"\n\nThe spinlock used to protect rbd_client_list is named \"node_lock\".\nRename it to \"rbd_client_list_lock\" to make it more obvious what\nit\u0027s for.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bc534d86be71aaf8dfac46131420ab1c47387d42",
      "tree": "196d43864c2c1033b30d4ae03cb946793cf29b19",
      "parents": [
        "d97081b0c7bdb55371994cc6690217bf393eb63e"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: move ctl_mutex lock inside rbd_client_create()\n\nSince rbd_client_create() is only called in one place, move the\nacquisition of the mutex around that call inside that function.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d97081b0c7bdb55371994cc6690217bf393eb63e",
      "tree": "a520fd2d821202175749fc9a0dd9b1b4a1fa2ac8",
      "parents": [
        "e6994d3ddedf1a9f35cb43655bb4b5810e71199a"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: move ctl_mutex lock inside rbd_get_client()\n\nSince rbd_get_client() is only called in one place, move the\nacquisition of the mutex around that call inside that function.\n\nFurthermore, within rbd_get_client(), it appears the mutex only\nneeds to be held while calling rbd_client_create().  (Moving\nthe lock inside that function will wait for the next patch.)\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e6994d3ddedf1a9f35cb43655bb4b5810e71199a",
      "tree": "0e0af19765412596516550b3a95c32ff67be6d47",
      "parents": [
        "d184f6bfde1428ad4a690d49b28afc9ab4d57b35"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: release client list lock sooner\n\nIn rbd_get_client(), if a client is reused, a number of things\nget done while still holding the list lock unnecessarily.\n\nThis just moves a few things that need no lock protection outside\nthe lock.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d184f6bfde1428ad4a690d49b28afc9ab4d57b35",
      "tree": "fd3156df944edc90146143e5cea416d34c8fcd47",
      "parents": [
        "499afd5b8e742792fda6bd7730c738ad83aecf6b"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: restore previous rbd id sequence behavior\n\nIt used to be that selecting a new unique identifier for an added\nrbd device required searching all existing ones to find the highest\nid is used.  A recent change made that unnecessary, but made it\nso that id\u0027s used were monotonically non-decreasing.  It\u0027s a bit\nmore pleasant to have smaller rbd id\u0027s though, and this change\nmakes ids get allocated as they were before--each new id is one more\nthan the maximum currently in use.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "499afd5b8e742792fda6bd7730c738ad83aecf6b",
      "tree": "a3cac0fa73a3251e80d8c6eb2e0eb9addbcc5e22",
      "parents": [
        "e124a82f3c4efc2cc2bae68a2bf30020fb8c4fc2"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 02 08:13:29 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: tie rbd_dev_list changes to rbd_id operations\n\nThe only time entries are added to or removed from the global\nrbd_dev_list is exactly when a \"put\" or \"get\" operation is being\nperformed on a rbd_dev\u0027s id.  So just move the list management code\ninto get/put routines.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e124a82f3c4efc2cc2bae68a2bf30020fb8c4fc2",
      "tree": "9c1b768d2871b181bcc21d89bedf9bf9dbc6d998",
      "parents": [
        "1ddbe94eda58597cb6dd464b455cb62d3f68be7b"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: protect the rbd_dev_list with a spinlock\n\nThe rbd_dev_list is just a simple list of all the current\nrbd_devices.  Using the ctl_mutex as a concurrency guard is\noverkill.  Instead, use a spinlock for that specific purpose.\n\nThis also reduces the window that the ctl_mutex needs to be held in\nrbd_add().\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1ddbe94eda58597cb6dd464b455cb62d3f68be7b",
      "tree": "02a6b829191d218ed861f81b0dcedb8deef53ff4",
      "parents": [
        "b7f23c361b65a0bdcc81acd8d38471b7810df3ff"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:44 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: rework calculation of new rbd id\u0027s\n\nIn order to select a new unique identifier for an added rbd device,\nthe list of all existing ones is searched and a value one greater\nthan the highest id is used.\n\nThe list search can be avoided by using an atomic variable that\nkeeps track of the current highest id.  Using a get/put model for\nid\u0027s we can limit the boundless growth of id numbers a bit by\narranging to reuse the current highest id once it gets released.\nAdd these calls to \"put\" the id when an rbd is getting removed.\n\nNote that this changes the pattern of device id\u0027s used--new values\nwill never be below the highest one seen so far (even if there\nexists an unused lower one).  I assert this is OK because the key\nproperty of an rbd id is its uniqueness, not its magnitude.\n\nRegardless, a follow-on patch will restore the old way of doing\nthings, I just think this commit just makes the incremental change\nto atomics a little easier to understand.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b7f23c361b65a0bdcc81acd8d38471b7810df3ff",
      "tree": "6ff42f4ebe263453ba14d61d6b0cf56c98d22e42",
      "parents": [
        "cc9d734c3d1b39c6a557673469aea26364060226"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:43 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: encapsulate new rbd id selection\n\nMove the loop that finds a new unique rbd id to use into\nits own helper function.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cc9d734c3d1b39c6a557673469aea26364060226",
      "tree": "67cc35424a31e6be289f118732f45e15c9432dad",
      "parents": [
        "1dbb439913f0fc0bc30d36411a4a3b3202c0aab1"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Mon Nov 21 18:19:13 2011 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: use a single value of snap_name to mean no snap\n\nThere\u0027s already a constant for this anyway.\n\nSince rbd_header_set_snap() is only used to set the rbd device\nsnap_name field, just do that within that function rather than\nhaving it take the snap_name as an argument.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n\nv2: Changed interface rbd_header_set_snap() so it explicitly updates\n    the snap_name in the rbd_device.  Also added a BUILD_BUG_ON()\n    to verify the size of the snap_name field is sufficient for\n    SNAP_HEAD_NAME.\n"
    },
    {
      "commit": "1dbb439913f0fc0bc30d36411a4a3b3202c0aab1",
      "tree": "7da9c0818f6ce8cff9068732fed25fd62d05ebd0",
      "parents": [
        "ee57741c5209154b8ef124bcaa2496da1b69a988"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Jan 24 10:08:37 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: do not duplicate ceph_client pointer in rbd_device\n\nThe rbd_device structure maintains a duplicate copy of the\nceph_client pointer maintained in its rbd_client structure.  There\nappears to be no good reason for this, and its presence presents a\nrisk of them getting out of synch or otherwise misused.  So kill it\noff, and use the rbd_client copy only.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ee57741c5209154b8ef124bcaa2496da1b69a988",
      "tree": "248a6e7bf259bb849f885f1ff4a82be74ab4913b",
      "parents": [
        "2107978668de13da484f7abc3f03516494c7fca9"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Jan 24 10:08:36 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: make ceph_parse_options() return a pointer\n\nceph_parse_options() takes the address of a pointer as an argument\nand uses it to return the address of an allocated structure if\nsuccessful.  With this interface is not evident at call sites that\nthe pointer is always initialized.  Change the interface to return\nthe address instead (or a pointer-coded error code) to make the\nvalidity of the returned pointer obvious.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2107978668de13da484f7abc3f03516494c7fca9",
      "tree": "0b3d054845849b221ffed4aad38a3e7449121e79",
      "parents": [
        "18fa8b3feaac772925263b04b1429d80e2dfd779"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Jan 24 10:08:36 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "rbd: a few small cleanups\n\nSome minor cleanups in \"drivers/block/rbd.c:\n    - Use the more meaningful \"RBD_MAX_OBJ_NAME_LEN\" in place if \"96\"\n      in the definition of RBD_MAX_MD_NAME_LEN.\n    - Use DEFINE_SPINLOCK() to define and initialize node_lock.\n    - Drop a needless (char *) cast in parse_rbd_opts_token().\n    - Make a few minor formatting changes.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b9136d207f0c05c96c6b9c980fa7f7fd541a65a8",
      "tree": "c5782f620475131fbd838cec21376c1a2dad7ff5",
      "parents": [
        "106b44388d8f76373149c4ea144f717b6d4d9a6d"
      ],
      "author": {
        "name": "Igor Mammedov",
        "email": "imammedo@redhat.com",
        "time": "Wed Mar 21 15:08:38 2012 +0100"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Thu Mar 22 11:37:11 2012 -0400"
      },
      "message": "xen: initialize platform-pci even if xen_emul_unplug\u003dnever\n\nWhen xen_emul_unplug\u003dnever is specified on kernel command line\nreading files from /sys/hypervisor is broken (returns -EBUSY).\nIt is caused by xen_bus dependency on platform-pci and\nplatform-pci isn\u0027t initialized when xen_emul_unplug\u003dnever is\nspecified.\n\nFix it by allowing platform-pci to ignore xen_emul_unplug\u003dnever,\nand do not intialize xen_[blk|net]front instead.\n\nSigned-off-by: Igor Mammedov \u003cimammedo@redhat.com\u003e\nAcked-by: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "5375871d432ae9fc581014ac117b96aaee3cd0c7",
      "tree": "be98e8255b0f927fb920fb532a598b93fa140dbe",
      "parents": [
        "b57cb7231b2ce52d3dda14a7b417ae125fb2eb97",
        "dfbc2d75c1bd47c3186fa91f1655ea2f3825b0ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:55:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:55:10 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc merge from Benjamin Herrenschmidt:\n \"Here\u0027s the powerpc batch for this merge window.  It is going to be a\n  bit more nasty than usual as in touching things outside of\n  arch/powerpc mostly due to the big iSeriesectomy :-) We finally got\n  rid of the bugger (legacy iSeries support) which was a PITA to\n  maintain and that nobody really used anymore.\n\n  Here are some of the highlights:\n\n   - Legacy iSeries is gone.  Thanks Stephen ! There\u0027s still some bits\n     and pieces remaining if you do a grep -ir series arch/powerpc but\n     they are harmless and will be removed in the next few weeks\n     hopefully.\n\n   - The \u0027fadump\u0027 functionality (Firmware Assisted Dump) replaces the\n     previous (equivalent) \"pHyp assisted dump\"...  it\u0027s a rewrite of a\n     mechanism to get the hypervisor to do crash dumps on pSeries, the\n     new implementation hopefully being much more reliable.  Thanks\n     Mahesh Salgaonkar.\n\n   - The \"EEH\" code (pSeries PCI error handling \u0026 recovery) got a big\n     spring cleaning, motivated by the need to be able to implement a\n     new backend for it on top of some new different type of firwmare.\n\n     The work isn\u0027t complete yet, but a good chunk of the cleanups is\n     there.  Note that this adds a field to struct device_node which is\n     not very nice and which Grant objects to.  I will have a patch soon\n     that moves that to a powerpc private data structure (hopefully\n     before rc1) and we\u0027ll improve things further later on (hopefully\n     getting rid of the need for that pointer completely).  Thanks Gavin\n     Shan.\n\n   - I dug into our exception \u0026 interrupt handling code to improve the\n     way we do lazy interrupt handling (and make it work properly with\n     \"edge\" triggered interrupt sources), and while at it found \u0026 fixed\n     a wagon of issues in those areas, including adding support for page\n     fault retry \u0026 fatal signals on page faults.\n\n   - Your usual random batch of small fixes \u0026 updates, including a bunch\n     of new embedded boards, both Freescale and APM based ones, etc...\"\n\nI fixed up some conflicts with the generalized irq-domain changes from\nGrant Likely, hopefully correctly.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (141 commits)\n  powerpc/ps3: Do not adjust the wrapper load address\n  powerpc: Remove the rest of the legacy iSeries include files\n  powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces\n  init: Remove CONFIG_PPC_ISERIES\n  powerpc: Remove FW_FEATURE ISERIES from arch code\n  tty/hvc_vio: FW_FEATURE_ISERIES is no longer selectable\n  powerpc/spufs: Fix double unlocks\n  powerpc/5200: convert mpc5200 to use of_platform_populate()\n  powerpc/mpc5200: add options to mpc5200_defconfig\n  powerpc/mpc52xx: add a4m072 board support\n  powerpc/mpc5200: update mpc5200_defconfig to fit for charon board\n  Documentation/powerpc/mpc52xx.txt: Checkpatch cleanup\n  powerpc/44x: Add additional device support for APM821xx SoC and Bluestone board\n  powerpc/44x: Add support PCI-E for APM821xx SoC and Bluestone board\n  MAINTAINERS: Update PowerPC 4xx tree\n  powerpc/44x: The bug fixed support for APM821xx SoC and Bluestone board\n  powerpc: document the FSL MPIC message register binding\n  powerpc: add support for MPIC message register API\n  powerpc/fsl: Added aliased MSIIR register address to MSI node in dts\n  powerpc/85xx: mpc8548cds - add 36-bit dts\n  ...\n"
    },
    {
      "commit": "9f3938346a5c1fa504647670edb5fea5756cfb00",
      "tree": "7cf6d24d6b076c8db8571494984924cac03703a2",
      "parents": [
        "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
        "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull kmap_atomic cleanup from Cong Wang.\n\nIt\u0027s been in -next for a long time, and it gets rid of the (no longer\nused) second argument to k[un]map_atomic().\n\nFix up a few trivial conflicts in various drivers, and do an \"evil\nmerge\" to catch some new uses that have come in since Cong\u0027s tree.\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux: (59 commits)\n  feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n  highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n  drbd: remove the second argument of k[un]map_atomic()\n  zcache: remove the second argument of k[un]map_atomic()\n  gma500: remove the second argument of k[un]map_atomic()\n  dm: remove the second argument of k[un]map_atomic()\n  tomoyo: remove the second argument of k[un]map_atomic()\n  sunrpc: remove the second argument of k[un]map_atomic()\n  rds: remove the second argument of k[un]map_atomic()\n  net: remove the second argument of k[un]map_atomic()\n  mm: remove the second argument of k[un]map_atomic()\n  lib: remove the second argument of k[un]map_atomic()\n  power: remove the second argument of k[un]map_atomic()\n  kdb: remove the second argument of k[un]map_atomic()\n  udf: remove the second argument of k[un]map_atomic()\n  ubifs: remove the second argument of k[un]map_atomic()\n  squashfs: remove the second argument of k[un]map_atomic()\n  reiserfs: remove the second argument of k[un]map_atomic()\n  ocfs2: remove the second argument of k[un]map_atomic()\n  ntfs: remove the second argument of k[un]map_atomic()\n  ...\n"
    },
    {
      "commit": "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
      "tree": "7211df5704b743a7667159748c670a9744164482",
      "parents": [
        "d464c92b5234227c1698862a1906827e2e398ae0",
        "f1f996b66cc3908a8f5ffccc2ff41840e92f3b10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"It\u0027s indeed trivial -- mostly documentation updates and a bunch of\n  typo fixes from Masanari.\n\n  There are also several linux/version.h include removals from Jesper.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)\n  kcore: fix spelling in read_kcore() comment\n  constify struct pci_dev * in obvious cases\n  Revert \"char: Fix typo in viotape.c\"\n  init: fix wording error in mm_init comment\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  Revert \"power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c\"\n  writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header\n  writeback: fix typo in the writeback_control comment\n  Documentation: Fix multiple typo in Documentation\n  tpm_tis: fix tis_lock with respect to RCU\n  Revert \"media: Fix typo in mixer_drv.c and hdmi_drv.c\"\n  Doc: Update numastat.txt\n  qla4xxx: Add missing spaces to error messages\n  compiler.h: Fix typo\n  security: struct security_operations kerneldoc fix\n  Documentation: broken URL in libata.tmpl\n  Documentation: broken URL in filesystems.tmpl\n  mtd: simplify return logic in do_map_probe()\n  mm: fix comment typo of truncate_inode_pages_range\n  power: bq27x00: Fix typos in comment\n  ...\n"
    },
    {
      "commit": "ed378a52dabf77b406b447fd3238f83ea24b71fa",
      "tree": "07e1a7ec2d1c08767ee81b9910f5912b80502632",
      "parents": [
        "843ec558f91b8e8fdb6efc908f2c0506407cc750",
        "11207b6fe05438b2e87a26435cd98db3d55e6fa7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:26:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:26:30 2012 -0700"
      },
      "message": "Merge tag \u0027usb-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB merge for 3.4-rc1 from Greg KH:\n \"Here\u0027s the big USB merge for the 3.4-rc1 merge window.\n\n  Lots of gadget driver reworks here, driver updates, xhci changes, some\n  new drivers added, usb-serial core reworking to fix some bugs, and\n  other various minor things.\n\n  There are some patches touching arch code, but they have all been\n  acked by the various arch maintainers.\"\n\n* tag \u0027usb-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (302 commits)\n  net: qmi_wwan: add support for ZTE MF820D\n  USB: option: add ZTE MF820D\n  usb: gadget: f_fs: Remove lock is held before freeing checks\n  USB: option: make interface blacklist work again\n  usb/ub: deprecate \u0026 schedule for removal the \"Low Performance USB Block\" driver\n  USB: ohci-pxa27x: add clk_prepare/clk_unprepare calls\n  USB: use generic platform driver on ath79\n  USB: EHCI: Add a generic platform device driver\n  USB: OHCI: Add a generic platform device driver\n  USB: ftdi_sio: new PID: LUMEL PD12\n  USB: ftdi_sio: add support for FT-X series devices\n  USB: serial: mos7840: Fixed MCS7820 device attach problem\n  usb: Don\u0027t make USB_ARCH_HAS_{XHCI,OHCI,EHCI} depend on USB_SUPPORT.\n  usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH\n  USB: ohci-nxp: Remove i2c_write(), use smbus\n  USB: ohci-nxp: Support for LPC32xx\n  USB: ohci-nxp: Rename symbols from pnx4008 to nxp\n  USB: OHCI-HCD: Rename ohci-pnx4008 to ohci-nxp\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  usb: dwc3: pci: fix another failure path in dwc3_pci_probe()\n  ...\n"
    },
    {
      "commit": "589973a7042f5a91a5b8bf78a32c97ae073e2c72",
      "tree": "1cc3f936ac3eca68dddb054bd1b75dc1a2b77a85",
      "parents": [
        "97d5dd121c3304c65326f1ce9f04f7d0161827bc"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:51:58 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:29 2012 +0800"
      },
      "message": "drbd: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "cfd8005c99c68882e962807d36603791adddfb9f",
      "tree": "49ddae09cf9067a3729bbc58ab65c117cbca93ce",
      "parents": [
        "496cda8e75d90301cb1e6bbebea643c6bac1e6d6"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:18 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:16 2012 +0800"
      },
      "message": "block: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "7396bd9fa1f291423b6e9a262662a447cc3deb86",
      "tree": "439f89f0403ff995c4c41b9c295e82e57129bfe2",
      "parents": [
        "4bf34b8c6b10a154a7fb1fc20818e20a27d4a539"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Thu Mar 15 21:59:36 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Mar 16 13:30:10 2012 -0700"
      },
      "message": "usb/ub: deprecate \u0026 schedule for removal the \"Low Performance USB Block\" driver\n\nDeprecate this driver. All devices which can be handled by this driver\ncan also be handled by the usb-storage driver.\n\nAcked-By: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "ba7a4822b48fbc7afd6b567c18e316a03f46684d",
      "tree": "c9a14c300a21b0db0f1aaccbd295f93420420d37",
      "parents": [
        "aba0eb84c87928992c021d33ef3ea59c931086b9"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Mar 08 15:32:52 2012 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Mar 16 09:28:05 2012 +1100"
      },
      "message": "powerpc: Remove some of the legacy iSeries specific device drivers\n\nThese drivers are specific to the PowerPC legacy iSeries platform and\ntheir Kconfig is specified in arch/powerpc.  Legacy iSeries is being\nremoved, so these drivers can no longer be selected.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "f1cbd03f5eabb75ea8ace23b47d2209f10871c16",
      "tree": "2ac398bd1a50ce135461fae5b5e91ba05831af84",
      "parents": [
        "ff398c45b03d9d64135d928c0146d8c38a70fd3b",
        "ff8c1474cc2f5e11414c71ec4d739c18e6e669c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 14 17:16:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 14 17:16:45 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\nPull block fixes from Jens Axboe:\n \"Been sitting on this for a while, but lets get this out the door.\n  This fixes various important bugs for 3.3 final, along with a few more\n  trivial ones.  Please pull!\"\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: fix ioc leak in put_io_context\n  block, sx8: fix pointer math issue getting fw version\n  Block: use a freezable workqueue for disk-event polling\n  drivers/block/DAC960: fix -Wuninitialized warning\n  drivers/block/DAC960: fix DAC960_V2_IOCTL_Opcode_T -Wenum-compare warning\n  block: fix __blkdev_get and add_disk race condition\n  block: Fix setting bio flags in drivers (sd_dif/floppy)\n  block: Fix NULL pointer dereference in sd_revalidate_disk\n  block: exit_io_context() should call elevator_exit_icq_fn()\n  block: simplify ioc_release_fn()\n  block: replace icq-\u003echanged with icq-\u003eflags\n"
    },
    {
      "commit": "f7a0d426f3e7ec321b8037238b6426566df36edb",
      "tree": "505e7d0264500db94534f1226684f78af7757289",
      "parents": [
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9",
        "b790f5d1260b4c962bd066cd34ae982943c27fe1"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Mar 12 09:13:31 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Mar 12 09:13:31 2012 -0700"
      },
      "message": "Merge 3.3-rc7 into usb-next\n\nThis resolves the conflict with drivers/usb/host/ehci-fsl.h that\nhappened with changes in Linus\u0027s and this branch at the same time.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "9354f1b8e6c55c335d1c4fb10d0ae7a041935240",
      "tree": "98854146031952f226db78a5763b7bf28d310cde",
      "parents": [
        "9ce70c0240d01309b34712f87eda4fbfba3c3764"
      ],
      "author": {
        "name": "Muthu Kumar",
        "email": "muthu.lkml@gmail.com",
        "time": "Mon Mar 05 14:59:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 05 15:49:43 2012 -0800"
      },
      "message": "floppy/scsi: fix setting of BIO flags\n\nFix setting bio flags in drivers (sd_dif/floppy).\n\nSigned-off-by: Muthukumar R \u003cmuthur@gmail.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea5f4db8ece896c2ab9eafa0924148a2596c52e4",
      "tree": "41159bbbc99b8c56c8ea3466785ea657c1842583",
      "parents": [
        "62d3c5439c534b0e6c653fc63e6d8c67be3a57b1"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sat Mar 03 12:09:17 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Mar 03 19:44:39 2012 +0100"
      },
      "message": "block, sx8: fix pointer math issue getting fw version\n\n\"mem\" is type u8.  We need parenthesis here or it screws up the pointer\nmath probably leading to an oops.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: stable@kernel.org\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "cecd353a02fb1405c8a72a324b26b5acf97e7411",
      "tree": "7cc24dc423a88bf4c96170e2ae7fac4946fdb099",
      "parents": [
        "bca505f1097c725708ddc055cf8055e922b0904b"
      ],
      "author": {
        "name": "Danny Kukawka",
        "email": "danny.kukawka@bisect.de",
        "time": "Fri Mar 02 10:48:35 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 02 10:48:35 2012 +0100"
      },
      "message": "drivers/block/DAC960: fix -Wuninitialized warning\n\nSet CommandMailbox with memset before use it. Fix for:\n\ndrivers/block/DAC960.c: In function ‘DAC960_V1_EnableMemoryMailboxInterface’:\narch/x86/include/asm/io.h:61:1: warning: ‘CommandMailbox.Bytes[12]’\n may be used uninitialized in this function [-Wuninitialized]\ndrivers/block/DAC960.c:1175:30: note: ‘CommandMailbox.Bytes[12]’\n was declared here\n\nSigned-off-by: Danny Kukawka \u003cdanny.kukawka@bisect.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "bca505f1097c725708ddc055cf8055e922b0904b",
      "tree": "09c37d59acfa39a6710d870ff48052ca1d42aa20",
      "parents": [
        "9f53d2fe815b4011ff930a7b6db98385d45faa68"
      ],
      "author": {
        "name": "Danny Kukawka",
        "email": "danny.kukawka@bisect.de",
        "time": "Fri Mar 02 10:48:32 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 02 10:48:32 2012 +0100"
      },
      "message": "drivers/block/DAC960: fix DAC960_V2_IOCTL_Opcode_T -Wenum-compare warning\n\nFixed compiler warning:\n\ncomparison between ‘DAC960_V2_IOCTL_Opcode_T’ and ‘enum \u003canonymous\u003e’\n\nRenamed enum, added a new enum for SCSI_10.CommandOpcode in\nDAC960_V2_ProcessCompletedCommand().\n\nSigned-off-by: Danny Kukawka \u003cdanny.kukawka@bisect.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "12ebffd146768556ab7c415d0ff9ab78e3d16b7a",
      "tree": "f25e67d0bd6ff2ef32ef7e84309ab2235dcbd52d",
      "parents": [
        "fe316bf2d5847bc5dd975668671a7b1067603bc7"
      ],
      "author": {
        "name": "Muthukumar R",
        "email": "muthur@gmail.com",
        "time": "Fri Mar 02 10:40:58 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 02 10:40:58 2012 +0100"
      },
      "message": "block: Fix setting bio flags in drivers (sd_dif/floppy)\n\nFix setting bio flags in drivers (sd_dif/floppy).\n\nSigned-off-by: Muthukumar R \u003cmuthur@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7ac4704c099125214a4f0a4bd54ce94d15be2ffb",
      "tree": "5d65763023c4446fe9b81a7c19562c28d22e3d64",
      "parents": [
        "0d8520a1d7f43328bc7085d4244d93c595064157"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Sat Feb 25 18:28:09 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Feb 28 11:05:18 2012 -0800"
      },
      "message": "usb/storage: a couple defines from drivers/usb/storage/transport.h to include/linux/usb/storage.h\n\nThis moves the BOT data structures for CBW and CSW from drivers internal\nheader file to global include able file in include/.\nThe storage gadget is using the same name for CSW but a different for\nCBW so I fix it up properly. The same goes for the ub driver and keucr\ndriver in staging.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "797a796a13df6b84a4791e57306737059b5b2384",
      "tree": "400d13deef98fdf3fc893e9e55f208c5716b8ba9",
      "parents": [
        "27e74da9800289e69ba907777df1e2085231eff7"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Tue Feb 07 11:45:33 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 21 16:47:28 2012 -0800"
      },
      "message": "asm-generic: architecture independent readq/writeq for 32bit environment\n\nThis provides unified readq()/writeq() helper functions for 32-bit\ndrivers.\n\nFor some cases, readq/writeq without atomicity is harmful, and order of\nio access has to be specified explicitly.  So in this patch, new two\nheader files which contain non-atomic readq/writeq are added.\n\n - \u003casm-generic/io-64-nonatomic-lo-hi.h\u003e provides non-atomic readq/\n   writeq with the order of lower address -\u003e higher address\n\n - \u003casm-generic/io-64-nonatomic-hi-lo.h\u003e provides non-atomic readq/\n   writeq with reversed order\n\nThis allows us to remove some readq()s that were added drivers when the\ndefault non-atomic ones were removed in commit dbee8a0affd5 (\"x86:\nremove 32-bit versions of readq()/writeq()\")\n\nThe drivers which need readq/writeq but can do with the non-atomic ones\nmust add the line:\n\n  #include \u003casm-generic/io-64-nonatomic-lo-hi.h\u003e /* or hi-lo.h */\n\nBut this will be nop in 64-bit environments, and no other #ifdefs are\nrequired.  So I believe that this patch can solve the problem of\n 1. driver-specific readq/writeq\n 2. atomicity and order of io access\n\nThis patch is tested with building allyesconfig and allmodconfig as\nARCH\u003dx86 and ARCH\u003di386 on top of tip/master.\n\nCc: Kashyap Desai \u003cKashyap.Desai@lsi.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ravi Anand \u003cravi.anand@qlogic.com\u003e\nCc: Vikas Chaudhary \u003cvikas.chaudhary@qlogic.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@parallels.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0156f4d62f1c6b07ea6ffd32b10100d09e25d83",
      "tree": "d0eeaca09a20119aa87ecf3805bd07a25c639b6e",
      "parents": [
        "24775d652b4dc52cc8dbcbdd20a732e5bdcc416a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Feb 05 20:11:27 2012 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 21 11:48:54 2012 +0100"
      },
      "message": "NVM Express: Remove unneeded include of linux/version.h from nvme.c\n\nThere\u0027s no need for drivers/block/nvme.c to include linux/version.h,\nso remove the include.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "3ec1e88b33a3bdd852ce8e014052acec7a9da8b5",
      "tree": "4270f8f0de4e28f090cba6d6e4047aae939d6463",
      "parents": [
        "8df54d622a120058ee8bec38743c9b8f091c8e58",
        "d8c66c5d59247e25a69428aced0b79d33b9c66d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 11 10:07:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 11 10:07:11 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\nSays Jens:\n\n \"Time to push off some of the pending items.  I really wanted to wait\n  until we had the regression nailed, but alas it\u0027s not quite there yet.\n  But I\u0027m very confident that it\u0027s \"just\" a missing expire on exit, so\n  fix from Tejun should be fairly trivial.  I\u0027m headed out for a week on\n  the slopes.\n\n  - Killing the barrier part of mtip32xx.  It doesn\u0027t really support\n    barriers, and it doesn\u0027t need them (writes are fully ordered).\n\n  - A few fixes from Dan Carpenter, preventing overflows of integer\n    multiplication.\n\n  - A fixup for loop, fixing a previous commit that didn\u0027t quite solve\n    the partial read problem from Dave Young.\n\n  - A bio integer overflow fix from Kent Overstreet.\n\n  - Improvement/fix of the door \"keep locked\" part of the cdrom shared\n    code from Paolo Benzini.\n\n  - A few cfq fixes from Shaohua Li.\n\n  - A fix for bsg sysfs warning when removing a file it did not create\n    from Stanislaw Gruszka.\n\n  - Two fixes for floppy from Vivek, preventing a crash.\n\n  - A few block core fixes from Tejun.  One killing the over-optimized\n    ioc exit path, cleaning that up nicely.  Two others fixing an oops\n    on elevator switch, due to calling into the scheduler merge check\n    code without holding the queue lock.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: fix lockdep warning on io_context release put_io_context()\n  relay: prevent integer overflow in relay_open()\n  loop: zero fill bio instead of return -EIO for partial read\n  bio: don\u0027t overflow in bio_get_nr_vecs()\n  floppy: Fix a crash during rmmod\n  floppy: Cleanup disk-\u003equeue before caling put_disk() if add_disk() was never called\n  cdrom: move shared static to cdrom_device_info\n  bsg: fix sysfs link remove warning\n  block: don\u0027t call elevator callbacks for plug merges\n  block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator functions\n  mtip32xx: removed the irrelevant argument of mtip_hw_submit_io() and the unused member of struct driver_data\n  block: strip out locking optimization in put_io_context()\n  cdrom: use copy_to_user() without the underscores\n  block: fix ioc locking warning\n  block: fix NULL icq_cache reference\n  block,cfq: change code order\n"
    },
    {
      "commit": "306df0716aa285d378cc948fafed53c6ed895fe6",
      "tree": "c32e636516980e9f2708022e314f370a13198ecd",
      "parents": [
        "5abebfdd02450fa1349daacf242e70b3736581e3"
      ],
      "author": {
        "name": "Dave Young",
        "email": "dyoung@redhat.com",
        "time": "Wed Feb 08 22:07:19 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 08 22:07:19 2012 +0100"
      },
      "message": "loop: zero fill bio instead of return -EIO for partial read\n\ncommit 8268f5a741 (\"deny partial write for loop dev fd\") tried to fix the\nloop device partial read information leak problem.  But it changed the\nsemantics of read behavior.  When we read beyond the end of the device we\nshould get 0 bytes, which is normal behavior, we should not just return\n-EIO\n\nInstead of returning -EIO, zero out the bio to avoid information leak in\ncase of partail read.\n\nSigned-off-by: Dave Young \u003cdyoung@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nTested-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Dmitry Monakhov \u003cdmonakhov@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4609dff6b5d11e1ed5ff935e15f9f6022acb312b",
      "tree": "b1ffb94d7247ad6ba70e8d76800907a6450f7ebd",
      "parents": [
        "3f9a5aabd0a9fe0e0cd308506f48963d79169aa7"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Feb 08 20:03:39 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 08 20:03:39 2012 +0100"
      },
      "message": "floppy: Fix a crash during rmmod\n\nfloppy driver does not call add_disk() on all the drives hence we don\u0027t take\ngendisk reference on request queue for these drives. Don\u0027t call put_disk()\nwith disk-\u003equeue set, otherwise we try to put the reference we never took.\n\nReported-and-tested-by: Dirk Gouders \u003cgouders@et.bocholt.fh-gelsenkirchen.de\u003e\nSigned-off-by: Vivek Goyal\u003cvgoyal@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3f9a5aabd0a9fe0e0cd308506f48963d79169aa7",
      "tree": "89dd32775e498dcb50da8cfc5388400c637725c5",
      "parents": [
        "cdccaa9467b982d57b139818d15e1e994feca372"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Feb 08 20:03:38 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 08 20:03:38 2012 +0100"
      },
      "message": "floppy: Cleanup disk-\u003equeue before caling put_disk() if add_disk() was never called\n\nadd_disk() takes gendisk reference on request queue. If driver failed during\ninitialization and never called add_disk() then that extra reference is not\ntaken. That reference is put in put_disk(). floppy driver allocates the\ndisk, allocates queue, sets disk-\u003equeue and then relizes that floppy\ncontroller is not present. It tries to tear down everything and tries to\nput a reference down in put_disk() which was never taken.\n\nIn such error cases cleanup disk-\u003equeue before calling put_disk() so that\nwe never try to put down a reference which was never taken in first place.\n\nReported-and-tested-by: Suresh Jayaraman \u003csjayaraman@suse.com\u003e\nTested-by: Dirk Gouders \u003cgouders@et.bocholt.fh-gelsenkirchen.de\u003e\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4e8670e26135d8fbfd5e084fddc1a8ed9f8eb4cb",
      "tree": "021fb58db4c30af36a8ee47ab0c41a5fe020ab12",
      "parents": [
        "11a3122f6cf2d988a77eb8883d0fc49cd013a6d5"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Tue Feb 07 07:54:31 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Feb 07 07:54:31 2012 +0100"
      },
      "message": "mtip32xx: removed the irrelevant argument of mtip_hw_submit_io() and the unused member of struct driver_data\n\nRemoved the following:\n\t* irrelevant argument \u0027barrier\u0027 of mtip_hw_submit_io()\n\t* unused member \u0027eh_active\u0027 of struct driver_data\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Sam Bradshaw \u003csbradshaw@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "6c073a7ee250118b8be3a2379c96fd7f78382b06",
      "tree": "b398bd9cad821a3543df835e5a0110f270acafb9",
      "parents": [
        "ff05f603c3238010769787f3ba54c48c290ed3e5",
        "d23a4b3fd6ef70b80411b39b8c8bc548a219ce70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 15:47:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 15:47:33 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  rbd: fix safety of rbd_put_client()\n  rbd: fix a memory leak in rbd_get_client()\n  ceph: create a new session lock to avoid lock inversion\n  ceph: fix length validation in parse_reply_info()\n  ceph: initialize client debugfs outside of monc-\u003emutex\n  ceph: change \"ceph.layout\" xattr to be \"ceph.file.layout\"\n"
    },
    {
      "commit": "d23a4b3fd6ef70b80411b39b8c8bc548a219ce70",
      "tree": "f42dbc4c8544acce987e35df5b3002f1def54cff",
      "parents": [
        "97bb59a03dd6767fcc00be09b0c6d9e5294eeea6"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Sun Jan 29 13:57:43 2012 -0600"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 02 12:56:59 2012 -0800"
      },
      "message": "rbd: fix safety of rbd_put_client()\n\nThe rbd_client structure uses a kref to arrange for cleaning up and\nfreeing an instance when its last reference is dropped.  The cleanup\nroutine is rbd_client_release(), and one of the things it does is\ndelete the rbd_client from rbd_client_list.  It acquires node_lock\nto do so, but the way it is done is still not safe.\n\nThe problem is that when attempting to reuse an existing rbd_client,\nthe structure found might already be in the process of getting\ndestroyed and cleaned up.\n\nHere\u0027s the scenario, with \"CLIENT\" representing an existing\nrbd_client that\u0027s involved in the race:\n\n Thread on CPU A                | Thread on CPU B\n ---------------                | ---------------\n rbd_put_client(CLIENT)         | rbd_get_client()\n   kref_put()                   |   (acquires node_lock)\n     kref-\u003erefcount becomes 0   |   __rbd_client_find() returns CLIENT\n     calls rbd_client_release() |   kref_get(\u0026CLIENT-\u003ekref);\n                                |   (releases node_lock)\n       (acquires node_lock)     |\n       deletes CLIENT from list | ...and starts using CLIENT...\n       (releases node_lock)     |\n       and frees CLIENT         | \u003c-- but CLIENT gets freed here\n\nFix this by having rbd_put_client() acquire node_lock.  The result\ncould still be improved, but at least it avoids this problem.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "97bb59a03dd6767fcc00be09b0c6d9e5294eeea6",
      "tree": "f04006e8040913d49fb1841ed93abed6d84308a1",
      "parents": [
        "d8fb02abdc39f92a1066313e2b17047876afa8f9"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Jan 24 10:08:36 2012 -0600"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 02 12:49:27 2012 -0800"
      },
      "message": "rbd: fix a memory leak in rbd_get_client()\n\nIf an existing rbd client is found to be suitable for use in\nrbd_get_client(), the rbd_options structure is not being\nfreed as it should.  Fix that.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "93c3d65b28bab6da520c2add9cb387a0303f8b2d",
      "tree": "d53d83ffe07d4237e1f8b1b6f02fa0362d8dacd2",
      "parents": [
        "9ef9b20bd0eef609f07960a997c13cab8fe15d2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:41:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:41:27 2012 -0800"
      },
      "message": "nvme: fix merge error due to change of \u0027make_request_fn\u0027 fn type\n\nThe type of \u0027make_request_fn\u0027 changed in 5a7bbad27a4 (\"block: remove\nsupport for bio remapping from -\u003emake_request\"), but the merge of the\nnvme driver didn\u0027t take that into account, and as a result the driver\nwould compile with a warning:\n\n  drivers/block/nvme.c: In function \u0027nvme_alloc_ns\u0027:\n  drivers/block/nvme.c:1336:2: warning: passing argument 2 of \u0027blk_queue_make_request\u0027 from incompatible pointer type [enabled by default]\n  include/linux/blkdev.h:830:13: note: expected \u0027void (*)(struct request_queue *, struct bio *)\u0027 but argument is of type \u0027int (*)(struct request_queue *, struct bio *)\u0027\n\nIt\u0027s benign, but the warning is annoying.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org\u003e\nCc: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92b5abbb44e05cdbc4483219f30a435dd871a8ea",
      "tree": "15490d1c7fd415575ec6beec1baa5ce89f747bf9",
      "parents": [
        "ccb19d263fd1c9e34948e2158c53eacbff369344",
        "df3481399042200792822b6243e36a95a557b57e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 12:34:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 12:34:09 2012 -0800"
      },
      "message": "Merge git://git.infradead.org/users/willy/linux-nvme\n\n* git://git.infradead.org/users/willy/linux-nvme: (105 commits)\n  NVMe: Set number of queues correctly\n  NVMe: Version 0.8\n  NVMe: Set queue flags correctly\n  NVMe: Simplify nvme_unmap_user_pages\n  NVMe: Mark the end of the sg list\n  NVMe: Fix DMA mapping for admin commands\n  NVMe: Rename IO_TIMEOUT to NVME_IO_TIMEOUT\n  NVMe: Merge the nvme_bio and nvme_prp data structures\n  NVMe: Change nvme_completion_fn to take a dev\n  NVMe: Change get_nvmeq to take a dev instead of a namespace\n  NVMe: Simplify completion handling\n  NVMe: Update Identify Controller data structure\n  NVMe: Implement doorbell stride capability\n  NVMe: Version 0.7\n  NVMe: Don\u0027t probe namespace 0\n  Fix calculation of number of pages in a PRP List\n  NVMe: Create nvme_identify and nvme_get_features functions\n  NVMe: Fix memory leak in nvme_dev_add()\n  NVMe: Fix calls to dma_unmap_sg\n  NVMe: Correct sg list setup in nvme_map_user_pages\n  ...\n"
    },
    {
      "commit": "16008d641670571ff4cd750b416c7caf2d89f467",
      "tree": "6dc32821bd4576106cee50d52a90a8106a9d481f",
      "parents": [
        "b3c9dd182ed3bdcdaf0e42625a35924b0497afdc",
        "85a0f7b220777cd3c232fd2f079db5c4a874c4ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:48:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:48:41 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3/drivers\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.3/drivers\u0027 of git://git.kernel.dk/linux-block:\n  mtip32xx: do rebuild monitoring asynchronously\n  xen-blkfront: Use kcalloc instead of kzalloc to allocate array\n  mtip32xx: uninitialized variable in mtip_quiesce_io()\n  mtip32xx: updates based on feedback\n  xen-blkback: convert hole punching to discard request on loop devices\n  xen/blkback: Move processing of BLKIF_OP_DISCARD from dispatch_rw_block_io\n  xen/blk[front|back]: Enhance discard support with secure erasing support.\n  xen/blk[front|back]: Squash blkif_request_rw and blkif_request_discard together\n  mtip32xx: update to new -\u003emake_request() API\n  mtip32xx: add module.h include to avoid conflict with moduleh tree\n  mtip32xx: mark a few more items static\n  mtip32xx: ensure that all local functions are static\n  mtip32xx: cleanup compat ioctl handling\n  mtip32xx: fix warnings/errors on 32-bit compiles\n  block: Add driver for Micron RealSSD pcie flash cards\n"
    },
    {
      "commit": "b3c9dd182ed3bdcdaf0e42625a35924b0497afdc",
      "tree": "ad48ad4d923fee147c736318d0fad35b3755f4f5",
      "parents": [
        "83c2f912b43c3a7babbb6cb7ae2a5276c1ed2a3e",
        "5d381efb3d1f1ef10535a31ca0dd9b22fe1e1922"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:24:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:24:45 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.3/core\u0027 of git://git.kernel.dk/linux-block: (37 commits)\n  Revert \"block: recursive merge requests\"\n  block: Stop using macro stubs for the bio data integrity calls\n  blockdev: convert some macros to static inlines\n  fs: remove unneeded plug in mpage_readpages()\n  block: Add BLKROTATIONAL ioctl\n  block: Introduce blk_set_stacking_limits function\n  block: remove WARN_ON_ONCE() in exit_io_context()\n  block: an exiting task should be allowed to create io_context\n  block: ioc_cgroup_changed() needs to be exported\n  block: recursive merge requests\n  block, cfq: fix empty queue crash caused by request merge\n  block, cfq: move icq creation and rq-\u003eelv.icq association to block core\n  block, cfq: restructure io_cq creation path for io_context interface cleanup\n  block, cfq: move io_cq exit/release to blk-ioc.c\n  block, cfq: move icq cache management to block core\n  block, cfq: move io_cq lookup to blk-ioc.c\n  block, cfq: move cfqd-\u003eicq_list to request_queue and add request-\u003eelv.icq\n  block, cfq: reorganize cfq_io_context into generic and cfq specific parts\n  block: remove elevator_queue-\u003eops\n  block: reorder elevator switch sequence\n  ...\n\nFix up conflicts in:\n - block/blk-cgroup.c\n\tSwitch from can_attach_task to can_attach\n - block/cfq-iosched.c\n\tconflict with now removed cic index changes (we now use q-\u003eid instead)\n"
    },
    {
      "commit": "85a0f7b220777cd3c232fd2f079db5c4a874c4ee",
      "tree": "5d238aaf0f5a49fd2fa815528de86fa4170964b0",
      "parents": [
        "f748040bb875a0d94c3ceef180ab704bdf43079f",
        "62ee8c13e26cffe6483630f59932c3e936dfb586"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Jan 15 10:39:35 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Jan 15 10:39:35 2012 +0100"
      },
      "message": "Merge branch \u0027for-3.3/mtip32xx\u0027 into for-3.3/drivers\n"
    },
    {
      "commit": "577ebb374c78314ac4617242f509e2f5e7156649",
      "tree": "690ae95d67bb8f9fd66bc0daebc90a46904420ac",
      "parents": [
        "81d48f0aee544885c39ef6e1ffb1175f276e6adf"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Jan 12 16:01:27 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 15:07:24 2012 -0800"
      },
      "message": "block: add and use scsi_blk_cmd_ioctl\n\nIntroduce a wrapper around scsi_cmd_ioctl that takes a block device.\n\nThe function will then be enhanced to detect partition block devices\nand, in that case, subject the ioctls to whitelisting.\n\nCc: linux-scsi@vger.kernel.org\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: James Bottomley \u003cJBottomley@parallels.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a80939b3e6af4b0dc93bf88ec02fd7e90a16f1b",
      "tree": "a112335f2b2b2a51e90531c6c67e8a3b54dcf0ef",
      "parents": [
        "0b48d42235caf627121f440b57d376f48a9af8b6",
        "72db395ffadb1d33233fd123c2bf87ba0198c6c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:32:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:32:16 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://github.com/rustyrussell/linux\n\nAutogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999  BFCB D920 0E6C D1AD B8F1\n\n* tag \u0027for-linus\u0027 of git://github.com/rustyrussell/linux:\n  module_param: check that bool parameters really are bool.\n  intelfbdrv.c: bailearly is an int module_param\n  paride/pcd: fix bool verbose module parameter.\n  module_param: make bool parameters really bool (drivers \u0026 misc)\n  module_param: make bool parameters really bool (arch)\n  module_param: make bool parameters really bool (core code)\n  kernel/async: remove redundant declaration.\n  printk: fix unnecessary module_param_name.\n  lirc_parallel: fix module parameter description.\n  module_param: avoid bool abuse, add bint for special cases.\n  module_param: check type correctness for module_param_array\n  modpost: use linker section to generate table.\n  modpost: use a table rather than a giant if/else statement.\n  modules: sysfs - export: taint, coresize, initsize\n  kernel/params: replace DEBUGP with pr_debug\n  module: replace DEBUGP with pr_debug\n  module: struct module_ref should contains long fields\n  module: Fix performance regression on modules with large symbol tables\n  module: Add comments describing how the \"strmap\" logic works\n\nFix up conflicts in scripts/mod/file2alias.c due to the new linker-\ngenerated table approach to adding __mod_*_device_table entries.  The\nARM sa11x0 mcp bus needed to be converted to that too.\n"
    },
    {
      "commit": "1a52bb0b686844021597d190e562ab55d1210104",
      "tree": "7edf13509869a6a7f1f488a679f15ff6c3057c54",
      "parents": [
        "8638094e956a47dbb9a25166705a91e9a0981d52",
        "83eb26af0db71f2dfe551405c55d982288fa6178"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:29:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:29:21 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: ensure prealloc_blob is in place when removing xattr\n  rbd: initialize snap_rwsem in rbd_add()\n  ceph: enable/disable dentry complete flags via mount option\n  vfs: export symbol d_find_any_alias()\n  ceph: always initialize the dentry in open_root_dentry()\n  libceph: remove useless return value for osd_client __send_request()\n  ceph: avoid iput() while holding spinlock in ceph_dir_fsync\n  ceph: avoid useless dget/dput in encode_fh\n  ceph: dereference pointer after checking for NULL\n  crush: fix force for non-root TAKE\n  ceph: remove unnecessary d_fsdata conditional checks\n  ceph: Use kmemdup rather than duplicating its implementation\n\nFix up conflicts in fs/ceph/super.c (d_alloc_root() failure handling vs\nalways initialize the dentry in open_root_dentry)\n"
    },
    {
      "commit": "1b9fbafb3ad3fd02db42e3dd48b4fb7631753ca9",
      "tree": "5380241debd3a95155c4d1c415bbff726ef97563",
      "parents": [
        "90ab5ee94171b3e28de6bb42ee30b527014e0be7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:26 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:26 2012 +1030"
      },
      "message": "paride/pcd: fix bool verbose module parameter.\n\nDan Carpenter points out that it\u0027s an int, not a bool:\n\npcd.c:427:\t\t\t\tif (verbose \u003e 1)\npcd.c:433:\t\t\t\tif (verbose \u003e 1)\npcd.c:437:\t\t\t\tif (verbose \u003c 2)\npcd.c:506:#define DBMSG(msg)\t((verbose\u003e1)?(msg):NULL)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\n"
    },
    {
      "commit": "90ab5ee94171b3e28de6bb42ee30b527014e0be7",
      "tree": "fcf89889f6e881f2b231d3d20287c08174ce4b54",
      "parents": [
        "476bc0015bf09dad39d36a8b19f76f0c181d1ec9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "message": "module_param: make bool parameters really bool (drivers \u0026 misc)\n\nmodule_param(bool) used to counter-intuitively take an int.  In\nfddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy\ntrick.\n\nIt\u0027s time to remove the int/unsigned int option.  For this version\nit\u0027ll simply give a warning, but it\u0027ll break next kernel version.\n\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0e805a1d857799352e51e8697c0b1a30aec16913",
      "tree": "bc6ad83e25af597f40b03170026c3e5d331c2814",
      "parents": [
        "a40dc6cc2e121abcbd1b22583ef5447763df510c"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Wed Jan 11 19:42:15 2012 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 12 11:00:50 2012 -0800"
      },
      "message": "rbd: initialize snap_rwsem in rbd_add()\n\nNew rbd device structures get initialized in rbd_add().  Many of\nthe fields rely on being initially zero-filled.  However we lockdep\nwas noticing that the rw_semaphore embedded in the header field\nwas not getting properly initialized.  Fix that.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f8fb5bc23a50a5398aa31a4e8c6dbbef53d2dec6",
      "tree": "a8f466179ba3afdce265607703ed280231e04e3c",
      "parents": [
        "6abd6e5a4404056e28be04958a57d0286883161a"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:30 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:45 2012 +1030"
      },
      "message": "virtio: blk: Add freeze, restore handlers to support S4\n\nDelete the vq and flush any pending requests from the block queue on the\nfreeze callback to prepare for hibernation.\n\nRe-create the vq in the restore callback to resume normal function.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "6abd6e5a4404056e28be04958a57d0286883161a",
      "tree": "3a862f66577272bfc3103827b515e9564197b24c",
      "parents": [
        "c743d09dbd018dd6345519fb3264b16bdaa41746"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:29 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:45 2012 +1030"
      },
      "message": "virtio: blk: Move vq initialization to separate function\n\nThe probe and PM restore functions will share this code.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4678d6f970c2f7c0cbfefc0cc666432d153b321b",
      "tree": "6757c596f991c36b38e4d6bb29df4ad0f49c330d",
      "parents": [
        "e93300b1afc7cd4fe1e741ceaf06714d060e88b8"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Jan 12 15:44:44 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:44 2012 +1030"
      },
      "message": "virtio_blk: fix config handler race\n\nFix a theoretical race related to config work\nhandler: a config interrupt might happen\nafter we flush config work but before we\nreset the device. It will then cause the\nconfig work to run during or after reset.\n\nTwo problems with this:\n- if this runs after device is gone we will get use after free\n- access of config while reset is in progress is racy\n(as layout is changing).\n\nAs a solution\n1. flush after reset when we know there will be no more interrupts\n2. add a flag to disable config access before reset\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f96fde41f7f9af6cf20f6a1919f5d9670f84d574",
      "tree": "14b8a0343b255989ac8ba0ea34e18dca419723df",
      "parents": [
        "5dfc17628d57f9e62043ed0cba03a6e3eb019a78"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: rename virtqueue_add_buf_gfp to virtqueue_add_buf\n\nRemove wrapper functions. This makes the allocation type explicit in\nall callers; I used GPF_KERNEL where it seemed obvious, left it at\nGFP_ATOMIC otherwise.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "df3481399042200792822b6243e36a95a557b57e",
      "tree": "0d59f0f5dedb37abb0c988889976c0616a8a90e5",
      "parents": [
        "366e8217e5ec6ce9f73aec19c46d983110fb4a98"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 11 07:29:56 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 11 09:22:24 2012 -0500"
      },
      "message": "NVMe: Set number of queues correctly\n\nThe number of submission \u0026 completion queues should be set by calling\nSet Features, not Get Features.\n\nReported-by: Kwok Kong \u003cKwok.Kong@idt.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "4690dfa8cd66c37fbe99bb8cd5baa86102110776",
      "tree": "063d1f68298cab19d29a4aa689d755266ae85a7d",
      "parents": [
        "c2e08e7ce5ab25a781197a71c5241742e8c9fdfe",
        "f3aef2510e2bb28cdbf32e5f3b8f04f03336ac81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:37:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:37:49 2012 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.monstr.eu/linux-2.6-microblaze\n\n* \u0027next\u0027 of git://git.monstr.eu/linux-2.6-microblaze:\n  microblaze: Wire-up new system calls\n  microblaze: Remove NO_IRQ from architecture\n  input: xilinx_ps2: Don\u0027t use NO_IRQ\n  block: xsysace: Don\u0027t use NO_IRQ\n  microblaze: Trivial asm fix\n  microblaze: Fix debug message in module\n  microblaze: Remove eprintk macro\n  microblaze: Send CR before LF for early console\n  microblaze: Change NO_IRQ to 0\n  microblaze: Use irq_of_parse_and_map for timer\n  microblaze: intc: Change variable name\n  microblaze: Use of_find_compatible_node for timer and intc\n  microblaze: Add __cmpdi2\n  microblaze: Synchronize __pa __va macros\n"
    },
    {
      "commit": "366e8217e5ec6ce9f73aec19c46d983110fb4a98",
      "tree": "18d3f0923eedf510062a95a332b1735ae14dcde3",
      "parents": [
        "4eeb9215a0d5c9494ca8b20158cc8ee82618840c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 16:30:15 2012 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 16:30:15 2012 -0500"
      },
      "message": "NVMe: Version 0.8\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "4eeb9215a0d5c9494ca8b20158cc8ee82618840c",
      "tree": "e78031c97d64d7545454f729f14e4885fa5f5f5c",
      "parents": [
        "1c2ad9faaf662b4a525348775deca3ac8e6c35a0"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:35:08 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 16:29:23 2012 -0500"
      },
      "message": "NVMe: Set queue flags correctly\n\nQUEUE_FLAG_* are flags (other than QUEUE_FLAG_DEFAULT), so they cannot\nbe ORed together.  Set the queue flags using queue_flag_set_unlocked().\n\nReported-by: Donald Wood \u003cdonald.e.wood@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "1c2ad9faaf662b4a525348775deca3ac8e6c35a0",
      "tree": "3b378e4edca145b682cd4952c105ff9e31b3d465",
      "parents": [
        "fe304c43c6d63e29ed4fc46a874d7a74313788c5"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Jan 06 13:52:56 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:54:22 2012 -0500"
      },
      "message": "NVMe: Simplify nvme_unmap_user_pages\n\nBy using the iod-\u003enents field (the same way other I/O paths do), we can\navoid recalculating the number of sg entries at unmap time, and make\nnvme_unmap_user_pages() easier to call.\n\nAlso, use the \u0027write\u0027 parameter instead of assuming DMA_FROM_DEVICE.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "fe304c43c6d63e29ed4fc46a874d7a74313788c5",
      "tree": "dbc3cc55c09bdcff5b503915d86049b20c9911e7",
      "parents": [
        "497421880acecd0281d3182d534f3d28c927caec"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Jan 06 13:49:25 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:54:14 2012 -0500"
      },
      "message": "NVMe: Mark the end of the sg list\n\nFor user I/O and admin commands, we were forgetting to mark the end of\nthe SG list.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "497421880acecd0281d3182d534f3d28c927caec",
      "tree": "06efff97926506f1797e551b5a35506b28636188",
      "parents": [
        "ff976d724a74e4522e9ca2de1fb37ac4520f454f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Jan 06 13:42:45 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:54:05 2012 -0500"
      },
      "message": "NVMe: Fix DMA mapping for admin commands\n\nWe were always mapping as DMA_FROM_DEVICE then unmapping with\nDMA_TO_DEVICE which was clearly not correct.  Follow the same pattern as\nnvme_submit_io() and key off the bottom bit of the opcode to determine\nwhether this is a read or a write.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ff976d724a74e4522e9ca2de1fb37ac4520f454f",
      "tree": "6118b8c484f217fada77f6da2f5d6b2e34ef9ed0",
      "parents": [
        "eca18b2394a9387feeaf14cd884ddddd7a809d19"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 13:53:01 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:53:54 2012 -0500"
      },
      "message": "NVMe: Rename IO_TIMEOUT to NVME_IO_TIMEOUT\n\nIO_TIMEOUT is a little too generic and might be used by other parts of\nthe kernel in the future.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "eca18b2394a9387feeaf14cd884ddddd7a809d19",
      "tree": "b20244dcfbe2fa1e86ca782c4f879a3174da25d1",
      "parents": [
        "5c1281a3bf5655ec1b90db495da3a2b77826ba88"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 13:34:52 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:51:20 2012 -0500"
      },
      "message": "NVMe: Merge the nvme_bio and nvme_prp data structures\n\nThe new merged data structure is called nvme_iod.  This improves performance\nfor mid-sized I/Os (in the 16k range) since we save a memory allocation.\nIt is also a slightly simpler interface to use.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "5c1281a3bf5655ec1b90db495da3a2b77826ba88",
      "tree": "6b8b76416b61c356cd9e6cccc825739e473cb69d",
      "parents": [
        "040a93b52a9eee8177ebaf2ba0ee0f9f518d1bf8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 11:54:53 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:51:00 2012 -0500"
      },
      "message": "NVMe: Change nvme_completion_fn to take a dev\n\nThe queue is only needed for some rare occasions, and it\u0027s more consistent\nto pass the device around.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "040a93b52a9eee8177ebaf2ba0ee0f9f518d1bf8",
      "tree": "be1f319048580f40c2634bca46e2840d721a32f4",
      "parents": [
        "c2f5b65020869215814df03c3941dac9436f99fb"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 11:04:12 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:49:18 2012 -0500"
      },
      "message": "NVMe: Change get_nvmeq to take a dev instead of a namespace\n\nUpcoming patches require calling get_nvmeq when we don\u0027t have a namespace.\nSome callers already have the device in a local variable anyway.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "c2f5b65020869215814df03c3941dac9436f99fb",
      "tree": "61e4da8b569ec8f747243358429f1052c49f837b",
      "parents": [
        "010e646ba2fdfc558048a97da746381c35836280"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sat Oct 15 07:33:46 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:47:46 2012 -0500"
      },
      "message": "NVMe: Simplify completion handling\n\nInstead of encoding the handler type in the bottom two bits of the\nper-completion context pointer, store the handler function as well\nas the context pointer.  This gives us more flexibility and the code\nis clearer.  It comes at the cost of an extra 8k of memory per queue,\nbut this feels like a reasonable price to pay.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "90160371b3a3e67ef78d68210a94dd30664a703d",
      "tree": "2841ea811be129133cf9b83d9c3badd96e7ffab4",
      "parents": [
        "ae5cfc0546ca2698b9dcddf72accbd70e57590a0",
        "6c254de16a1d14c1ac931d3aa08dc88ac9fc582b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:09:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:09:59 2012 -0800"
      },
      "message": "Merge branch \u0027stable/for-linus-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/for-linus-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (37 commits)\n  xen/pciback: Expand the warning message to include domain id.\n  xen/pciback: Fix \"device has been assigned to X domain!\" warning\n  xen/pciback: Move the PCI_DEV_FLAGS_ASSIGNED ops to the \"[un|]bind\"\n  xen/xenbus: don\u0027t reimplement kvasprintf via a fixed size buffer\n  xenbus: maximum buffer size is XENSTORE_PAYLOAD_MAX\n  xen/xenbus: Reject replies with payload \u003e XENSTORE_PAYLOAD_MAX.\n  Xen: consolidate and simplify struct xenbus_driver instantiation\n  xen-gntalloc: introduce missing kfree\n  xen/xenbus: Fix compile error - missing header for xen_initial_domain()\n  xen/netback: Enable netback on HVM guests\n  xen/grant-table: Support mappings required by blkback\n  xenbus: Use grant-table wrapper functions\n  xenbus: Support HVM backends\n  xen/xenbus-frontend: Fix compile error with randconfig\n  xen/xenbus-frontend: Make error message more clear\n  xen/privcmd: Remove unused support for arch specific privcmp mmap\n  xen: Add xenbus_backend device\n  xen: Add xenbus device driver\n  xen: Add privcmd device driver\n  xen/gntalloc: fix reference counts on multi-page mappings\n  ...\n"
    },
    {
      "commit": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "972b2c719990f91eb3b2310d44ef8a2d38955a14",
      "tree": "b25a250ec5bec4b7b6355d214642d8b57c5cab32",
      "parents": [
        "02550d61f49266930e674286379d3601006b2893",
        "c3aa077648e147783a7a53b409578234647db853"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)\n  reiserfs: Properly display mount options in /proc/mounts\n  vfs: prevent remount read-only if pending removes\n  vfs: count unlinked inodes\n  vfs: protect remounting superblock read-only\n  vfs: keep list of mounts for each superblock\n  vfs: switch -\u003eshow_options() to struct dentry *\n  vfs: switch -\u003eshow_path() to struct dentry *\n  vfs: switch -\u003eshow_devname() to struct dentry *\n  vfs: switch -\u003eshow_stats to struct dentry *\n  switch security_path_chmod() to struct path *\n  vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n  vfs: trim includes a bit\n  switch mnt_namespace -\u003eroot to struct mount\n  vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n  vfs: opencode mntget() mnt_set_mountpoint()\n  vfs: spread struct mount - remaining argument of next_mnt()\n  vfs: move fsnotify junk to struct mount\n  vfs: move mnt_devname\n  vfs: move mnt_list to struct mount\n  vfs: switch pnode.h macros to struct mount *\n  ...\n"
    },
    {
      "commit": "ece2ccb668046610189d88d6aaf05aeb09c988a1",
      "tree": "a0349945f7537de2aca420b47ced23b6294f8b65",
      "parents": [
        "d10577a8d86a0c735488d66d32289a6d66bcfa20",
        "a218d0fdc5f9004164ff151d274487f6799907d0",
        "ff01bb4832651c6d25ac509a06a10fcbd75c461c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:15:54 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:15:54 2012 -0500"
      },
      "message": "Merge branches \u0027vfsmount-guts\u0027, \u0027umode_t\u0027 and \u0027partitions\u0027 into Z\n"
    },
    {
      "commit": "356b95424cfb456e14a59eaa579422ce014c424b",
      "tree": "c0478479041f82ccd7a95157dddf2fd2d59ad8c5",
      "parents": [
        "770e1b035dcb6ec3f8ee69dda0815dd1e220a683",
        "3bd9e50b4297b0d85bb86a8f2ade941c0f9c21fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 18:28:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 18:28:12 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (21 commits)\n  m68k/mac: Make CONFIG_HEARTBEAT unavailable on Mac\n  m68k/serial: Remove references to obsolete serial config options\n  m68k/net: Remove obsolete IRQ_FLG_* users\n  m68k: Don\u0027t comment out syscalls used by glibc\n  m68k/atari: Move declaration of atari_SCC_reset_done to header file\n  m68k/serial: Remove references to obsolete CONFIG_SERIAL167\n  m68k/hp300: Export hp300_ledstate\n  m68k: Initconst section fixes\n  m68k/mac: cleanup macro case\n  mac_scsi: fix mac_scsi on some powerbooks\n  m68k/mac: fix powerbook 150 adb_type\n  m68k/mac: fix baboon irq disable and shutdown\n  m68k/mac: oss irq fixes\n  m68k/mac: fix nubus slot irq disable and shutdown\n  m68k/mac: enable via_alt_mapping on performa 580\n  m68k/mac: cleanup forward declarations\n  m68k/mac: cleanup mac_irq_pending\n  m68k/mac: cleanup mac_clear_irq\n  m68k/mac: early console\n  m68k/mvme16x: Add support for EARLY_PRINTK\n  ...\n\nFix up trivial conflict in arch/m68k/Kconfig.debug due to new\nEARLY_PRINTK config option addition clashing with movement of the\nBOOTPARAM options.\n"
    },
    {
      "commit": "ba2d5affded07dcdd7b076dfeb4f2eefdf79a997",
      "tree": "f94f1274f332680fdbd9ed07f7f6d9ca9a7aec19",
      "parents": [
        "5dbeaad3eac6691d57af064c0a60d03751878303"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Tue Dec 20 11:09:14 2011 +0100"
      },
      "committer": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Thu Jan 05 08:34:29 2012 +0100"
      },
      "message": "block: xsysace: Don\u0027t use NO_IRQ\n\nDrivers shouldn\u0027t use NO_IRQ. Microblaze and PPC\ndefine NO_IRQ as 0 and this reference will be removed\nin near future.\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nReviewed-by: Ryan Mallon \u003crmallon@gmail.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCC: Rob Herring \u003crob.herring@calxeda.com\u003e\n"
    },
    {
      "commit": "73db144b58a32fc39733db6a7e1fe582072ad26a",
      "tree": "f03edee848be5aa085c30d493c02a5ee1b8fc3da",
      "parents": [
        "2e16341438c9eca15a2e0bb2ad8555bbdf24b86d"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Dec 22 09:08:13 2011 +0000"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Wed Jan 04 17:01:17 2012 -0500"
      },
      "message": "Xen: consolidate and simplify struct xenbus_driver instantiation\n\nThe \u0027name\u0027, \u0027owner\u0027, and \u0027mod_name\u0027 members are redundant with the\nidentically named fields in the \u0027driver\u0027 sub-structure. Rather than\nswitching each instance to specify these fields explicitly, introduce\na macro to simplify this.\n\nEliminate further redundancy by allowing the drvname argument to\nDEFINE_XENBUS_DRIVER() to be blank (in which case the first entry from\nthe ID table will be used for .driver.name).\n\nAlso eliminate the questionable xenbus_register_{back,front}end()\nwrappers - their sole remaining purpose was the checking of the\n\u0027owner\u0027 field, proper setting of which shouldn\u0027t be an issue anymore\nwhen the macro gets used.\n\nv2: Restore DRV_NAME for the driver name in xen-pciback.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "62ee8c13e26cffe6483630f59932c3e936dfb586",
      "tree": "7f92cc63e2413b19466255133f1198319dd4ae4f",
      "parents": [
        "3e54a3d1b83220d748f1a27c8999634be7a83949"
      ],
      "author": {
        "name": "Asai Thambi S P",
        "email": "asamymuthupa@micron.com",
        "time": "Wed Jan 04 22:01:32 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Jan 04 22:01:32 2012 +0100"
      },
      "message": "mtip32xx: do rebuild monitoring asynchronously\n\nEarlier, rebuild monitoring was done in the context of probe. Now the service\nthread takes the responsibility of rebuild monitoring, and probe returns good\nstatus.\n\nSigned-off-by: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nSigned-off-by: Sam Bradshaw \u003csbradshaw@micron.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "2c9ede55ecec58099b72e4bb8eab719f32f72c31",
      "tree": "8498a8c940fea97931b469fc73eb1a5022a2b28c",
      "parents": [
        "7d54fa6472609f2b0f2ea27e51ec2cf1fb27bd57"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 20:24:48 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:55 2012 -0500"
      },
      "message": "switch device_get_devnode() and -\u003edevnode() to umode_t *\n\nboth callers of device_get_devnode() are only interested in lower 16bits\nand nobody tries to return anything wider than 16bit anyway.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ff01bb4832651c6d25ac509a06a10fcbd75c461c",
      "tree": "bbfdebd317db97d346df78293566f36e883b1be9",
      "parents": [
        "94ea4158f1733e3b10cef067d535f504866e0c41"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 16 02:31:11 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:07 2012 -0500"
      },
      "message": "fs: move code out of buffer.c\n\nMove invalidate_bdev, block_sync_page into fs/block_dev.c.  Export\nkill_bdev as well, so brd doesn\u0027t have to open code it.  Reduce\nbuffer_head.h requirement accordingly.\n\nRemoved a rather large comment from invalidate_bdev, as it looked a bit\nobsolete to bother moving.  The small comment replacing it says enough.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "f748040bb875a0d94c3ceef180ab704bdf43079f"
}
