)]}'
{
  "log": [
    {
      "commit": "6d94d4081048756df78444a07201156f4930fe48",
      "tree": "7bfecedff2b04284ab45764d0ce6ec183a6594b3",
      "parents": [
        "92ba4fe4b53b4fa5ac71ec4d80572348fca85796"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Mon May 24 14:33:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:07 2010 -0700"
      },
      "message": "lis3: interrupt handlers for 8bit wakeup and click events\n\nContent for the 8bit device threaded interrupt handlers.  Depending on the\ninterrupt line and chip configuration, either click or wakeup / freefall\nhandler is called.  In case of click, BTN_ event is sent via input device.\n In case of wakeup or freefall, input device ABS_ events are updated\nimmediatelly.\n\nIt is still possible to configure interrupt line 1 for fast freefall\ndetection and use the second line either for click or threshold based\ninterrupts.  Or both lines can be used for click / threshold interrupts.\n\nPolled input device can be set to stopped state and still get coordinate\nupdates via input device using interrupt based method.  Polled mode and\ninterrupt mode can also be used parallel.\n\nBTN_ events are remapped based on existing axis remapping information.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nCc: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92ba4fe4b53b4fa5ac71ec4d80572348fca85796",
      "tree": "c18630d8aac05eacd7320bee91a40d101d72cf5c",
      "parents": [
        "342c5f128140d54961c435d1702eadcaba97a37a"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Mon May 24 14:33:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:06 2010 -0700"
      },
      "message": "lis3: add skeletons for interrupt handlers\n\nOriginal lis3 driver didn\u0027t provide interrupt handler(s) for click or\nthreshold event handling.  This patch adds threaded handlers for one or\ntwo interrupt lines for 8 bit device.  Actual content for interrupt\nhandling is provided in the separate patch.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nTested-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "342c5f128140d54961c435d1702eadcaba97a37a",
      "tree": "884b712d67b3319c9d8d747d5dd0cd5e0234f842",
      "parents": [
        "ecc437aeee65afeea2e1bed963ccf6c384c555ea"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Mon May 24 14:33:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:06 2010 -0700"
      },
      "message": "lis3: introduce platform data for second ff / wu unit\n\n8 bit device has two wakeup / free fall units.  It was not possible to\nconfigure the second unit.  This patch introduces configuration entry to\nthe platform data and also corresponding changes to the 8 bit setup\nfunction.\n\nHigh pass filters were enabled by default.  Patch introduces configuration\noption for high pass filter cut off frequency and also possibility to\ndisable or enable the filter via platform data.  Since the control is a\nnew one and default state was filter enabled, new option is used to\ndisable the filter.  This way old platform data is still compatible with\nthe change.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nTested-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "903788892ea0fc7fcaf7e8e5fac9a77379fc215b",
      "tree": "6945c6e623bf6fec7cdcd895a881c4d5bf405fa6",
      "parents": [
        "db0fd97c270f1e80321f7ae55234643ca0978c54"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "ext-andriy.shevchenko@nokia.com",
        "time": "Mon May 24 14:33:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:05 2010 -0700"
      },
      "message": "lib: introduce common method to convert hex digits\n\nhex_to_bin() is a little method which converts hex digit to its actual\nvalue.  There are plenty of places where such functionality is needed.\n\n[akpm@linux-foundation.org: use tolower(), saving 3 bytes, test the more common case first - it\u0027s quicker]\n[akpm@linux-foundation.org: relocate tolower to make it even faster! (Joe)]\nSigned-off-by: Andy Shevchenko \u003cext-andriy.shevchenko@nokia.com\u003e\nCc: Tilman Schmidt \u003ctilman@imap.cc\u003e\nCc: Duncan Sands \u003cduncan.sands@free.fr\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: \"Richard Russon (FlatCap)\" \u003cldm@flatcap.org\u003e\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b2f68b5383ea107295d7f1483256866e2daa1e3",
      "tree": "ab643941ab96fce48117479d321adfa3d9510d23",
      "parents": [
        "ea46c8f774f295c45fac48101d54be347d3d453b"
      ],
      "author": {
        "name": "Florian Ragwitz",
        "email": "rafl@debian.org",
        "time": "Mon May 24 14:33:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:05 2010 -0700"
      },
      "message": "DYNAMIC_DEBUG: fix documentation errors\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Florian Ragwitz \u003crafl@debian.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f40c396a9ab04eae526990e2b2cef875b424ed4e",
      "tree": "92b87fb6feb9470f9aa3cacc9344f7907ab2489c",
      "parents": [
        "d8521fcc5e0ad3e79bbc4231bb20a6cdc2b50164"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Mon May 24 14:33:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:03 2010 -0700"
      },
      "message": "ratelimit: add ratelimit_state_init()\n\nFor now, all users of ratelimit_state allocates it statically, so\nDEFINE_RATELIMIT_STATE() is enough.  But, I want to use ratelimit_state\nfor fs, i.e.  per super_block to suppress too many error reports.\n\nSo, this adds ratelimit_state_init() to initialize ratelimite_state\nwhich is dynamically allocated, instead of opencoding.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8521fcc5e0ad3e79bbc4231bb20a6cdc2b50164",
      "tree": "7469b407cb8a87d26733cea33a1570c2433e014b",
      "parents": [
        "fa1f68db6ca7ebb6fc4487ac215bffba06c01c28"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Mon May 24 14:33:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:03 2010 -0700"
      },
      "message": "printk_ratelimited(): fix uninitialized spinlock\n\nratelimit_state initialization of printk_ratelimited() seems broken.  This\nfixes it by using DEFINE_RATELIMIT_STATE() to initialize spinlock\nproperly.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc62f2f19edf46c9bdbd1a54725b56b18c43e94f",
      "tree": "1742d181c4c44825df436982cb2f9ea4c386a5f3",
      "parents": [
        "4c99000ac47cbd097e62f1b5cafad745622cedc3"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 24 14:33:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:03 2010 -0700"
      },
      "message": "kernel.h: add pr_warn for symmetry to dev_warn, netdev_warn\n\nThe current logging macros are\npr_\u003clevel\u003e, dev_\u003clevel\u003e, netdev_\u003clevel\u003e, and netif_\u003clevel\u003e.\npr_ uses warning, the other use warn.\n\nStandardize these logging macros a bit more by adding pr_warn and\npr_warn_ratelimited.\n\nRight now, there are:\n\n$ for level in emerg alert crit err warn warning notice info ; do \\\n    for prefix in pr dev netdev netif ; do \\\n      echo -n \"${prefix}_${level}:\t`git grep -w \"${prefix}_${level}\" | wc -l`\t\" ; \\\n    done ; \\\n    echo ; \\\n  done\npr_emerg: \t45\tdev_emerg: \t4\tnetdev_emerg: \t1\tnetif_emerg: \t4\npr_alert: \t24\tdev_alert: \t36\tnetdev_alert: \t1\tnetif_alert: \t6\npr_crit: \t24\tdev_crit: \t22\tnetdev_crit: \t1\tnetif_crit: \t4\npr_err:  \t2013\tdev_err: \t8467\tnetdev_err: \t267\tnetif_err: \t240\npr_warn: \t0\tdev_warn: \t1818\tnetdev_warn: \t126\tnetif_warn: \t23\npr_warning: \t773\tdev_warning: \t0\tnetdev_warning:\t0\tnetif_warning: \t0\npr_notice: \t148\tdev_notice: \t111\tnetdev_notice: \t9\tnetif_notice: \t3\npr_info: \t1717\tdev_info: \t3007\tnetdev_info: \t101\tnetif_info: \t85\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3b77c8caef1750ebeea1054e39e358550ea9f55",
      "tree": "9026ca0b3453226434a4ca8878832a4910b48664",
      "parents": [
        "e47103b1af5df52fa69e18b14d3012472f78817d"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon May 24 14:33:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "endian: #define __BYTE_ORDER\n\nLinux does not define __BYTE_ORDER in its endian header files which makes\nsome header files bend backwards to get at the current endian.  Lets\n#define __BYTE_ORDER in big_endian.h/litte_endian.h to make it easier for\nheader files that are used in user space too.\n\nIn userspace the convention is that\n\n  1. _both_ __LITTLE_ENDIAN and __BIG_ENDIAN are defined,\n  2. you have to test for e.g. __BYTE_ORDER \u003d\u003d __BIG_ENDIAN.\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e47103b1af5df52fa69e18b14d3012472f78817d",
      "tree": "6652e56e361415a85ab5a7b888492e5ceef0cd94",
      "parents": [
        "1f85f87d4f81d1e5a2d502d48316a1bdc5acac0b"
      ],
      "author": {
        "name": "Jani Nikula",
        "email": "ext-jani.1.nikula@nokia.com",
        "time": "Mon May 24 14:33:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "err.h: add __must_check to error pointer handlers\n\nAdd __must_check to error pointer handlers to have the compiler warn about\nmistakes like:\n\n\tif (err)\n\t\tERR_PTR(err);\n\nIt found two bugs:\n\nMar 12 Nikula Jani [PATCH] enclosure: fix error path - actually return ERR_PTR() on error\nMar 12 Nikula Jani [PATCH] sunrpc: fix error path - actually return ERR_PTR() on error\n\nSigned-off-by: Jani Nikula \u003cext-jani.1.nikula@nokia.com\u003e\nCc: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6f6b596a5a73e63e5e930c414375c0c389199ab",
      "tree": "900d4b3a6d198edc2045511b5b8d6001755bcfbf",
      "parents": [
        "4eaf3f64397c3db3c5785eee508270d62a9fabd9"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Mon May 24 14:32:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mm: make lowmem_page_address() use PFN_PHYS() for improved portability\n\nThis ensures that platforms with lowmem PAs above 32 bits work correctly\nby avoiding truncating the PA during a left shift.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Barry Song \u003c21cnbao@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4eaf3f64397c3db3c5785eee508270d62a9fabd9",
      "tree": "bfd986a7e974876755ea6fe0de394199c68e2e36",
      "parents": [
        "1f522509c77a5dea8dc384b735314f03908a6415"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mem-hotplug: fix potential race while building zonelist for new populated zone\n\nAdd global mutex zonelists_mutex to fix the possible race:\n\n     CPU0                                  CPU1                    CPU2\n(1) zone-\u003epresent_pages +\u003d online_pages;\n(2)                                       build_all_zonelists();\n(3)                                                               alloc_page();\n(4)                                                               free_page();\n(5) build_all_zonelists();\n(6)   __build_all_zonelists();\n(7)     zone-\u003epageset \u003d alloc_percpu();\n\nIn step (3,4), zone-\u003epageset still points to boot_pageset, so bad\nthings may happen if 2+ nodes are in this state. Even if only 1 node\nis accessing the boot_pageset, (3) may still consume too much memory\nto fail the memory allocations in step (7).\n\nBesides, atomic operation ensures alloc_percpu() in step (7) will never fail\nsince there is a new fresh memory block added in step(6).\n\n[haicheng.li@linux.intel.com: hold zonelists_mutex when build_all_zonelists]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f522509c77a5dea8dc384b735314f03908a6415",
      "tree": "4b848527b90877a8a64c46e8e2d76723405c319d",
      "parents": [
        "319774e25fa4b7641bdc3b0a464dd84e62103347"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mem-hotplug: avoid multiple zones sharing same boot strapping boot_pageset\n\nFor each new populated zone of hotadded node, need to update its pagesets\nwith dynamically allocated per_cpu_pageset struct for all possible CPUs:\n\n    1) Detach zone-\u003epageset from the shared boot_pageset\n       at end of __build_all_zonelists().\n\n    2) Use mutex to protect zone-\u003epageset when it\u0027s still\n       shared in onlined_pages()\n\nOtherwises, multiple zones of different nodes would share same boot strapping\nboot_pageset for same CPU, which will finally cause below kernel panic:\n\n  ------------[ cut here ]------------\n  kernel BUG at mm/page_alloc.c:1239!\n  invalid opcode: 0000 [#1] SMP\n  ...\n  Call Trace:\n   [\u003cffffffff811300c1\u003e] __alloc_pages_nodemask+0x131/0x7b0\n   [\u003cffffffff81162e67\u003e] alloc_pages_current+0x87/0xd0\n   [\u003cffffffff81128407\u003e] __page_cache_alloc+0x67/0x70\n   [\u003cffffffff811325f0\u003e] __do_page_cache_readahead+0x120/0x260\n   [\u003cffffffff81132751\u003e] ra_submit+0x21/0x30\n   [\u003cffffffff811329c6\u003e] ondemand_readahead+0x166/0x2c0\n   [\u003cffffffff81132ba0\u003e] page_cache_async_readahead+0x80/0xa0\n   [\u003cffffffff8112a0e4\u003e] generic_file_aio_read+0x364/0x670\n   [\u003cffffffff81266cfa\u003e] nfs_file_read+0xca/0x130\n   [\u003cffffffff8117b20a\u003e] do_sync_read+0xfa/0x140\n   [\u003cffffffff8117bf75\u003e] vfs_read+0xb5/0x1a0\n   [\u003cffffffff8117c151\u003e] sys_read+0x51/0x80\n   [\u003cffffffff8103c032\u003e] system_call_fastpath+0x16/0x1b\n  RIP  [\u003cffffffff8112ff13\u003e] get_page_from_freelist+0x883/0x900\n   RSP \u003cffff88000d1e78a8\u003e\n  ---[ end trace 4bda28328b9990db ]\n\n[akpm@linux-foundation.org: merge fix]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0faa56389c793cda7f967117415717bbab24fe4e",
      "tree": "b0d5f12579a4448adff2b6e462488f3cc6d75326",
      "parents": [
        "ff3d58c22b6827039983911d3460cf0c1657f8cc"
      ],
      "author": {
        "name": "Marcelo Roberto Jimenez",
        "email": "mroberto@cpti.cetuc.puc-rio.br",
        "time": "Mon May 24 14:32:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mm: fix NR_SECTION_ROOTS \u003d\u003d 0 when using using sparsemem extreme.\n\nGot this while compiling for ARM/SA1100:\n\nmm/sparse.c: In function \u0027__section_nr\u0027:\nmm/sparse.c:135: warning: \u0027root\u0027 is used uninitialized in this function\n\nThis patch follows Russell King\u0027s suggestion for a new calculation for\nNR_SECTION_ROOTS.  Thanks also to Sergei Shtylyov for pointing out the\nexistence of the macro DIV_ROUND_UP.\n\nAtsushi Nemoto observed:\n: This fix doesn\u0027t just silence the warning - it fixes a real problem.\n:\n: Without this fix, mem_section[] might have 0 size so mem_section[0]\n: will share other variable area.  For example, I got:\n:\n: c030c700 b __warned.16478\n: c030c700 B mem_section\n: c030c701 b __warned.16483\n:\n: This might cause very strange behavior.  Your patch actually fixes it.\n\nSigned-off-by: Marcelo Roberto Jimenez \u003cmroberto@cpti.cetuc.puc-rio.br\u003e\nCc: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Sergei Shtylyov \u003csshtylyov@mvista.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3d58c22b6827039983911d3460cf0c1657f8cc",
      "tree": "bed2f2f98760425976a45858326de80aa5e7760b",
      "parents": [
        "fd23855e38d2a7275a786238459c070b4e9f7975"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon May 24 14:32:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "highmem: remove unneeded #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT for debug_kmap_atomic()\n\nIn f4112de6b679d84bd9b9681c7504be7bdfb7c7d5 (\"mm: introduce\ndebug_kmap_atomic\") I said that debug_kmap_atomic() needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nIt was wrong.  (I thought irqs_disabled() is only available when the\narchitecture has CONFIG_TRACE_IRQFLAGS_SUPPORT)\n\nRemove the #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT check to enable\nkmap_atomic() debugging for the architectures which do not have\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd23855e38d2a7275a786238459c070b4e9f7975",
      "tree": "e390a91f70a428b2a70bb1fa95fcb53dd662908a",
      "parents": [
        "263ff5d8e82e577202d2b8393585b0e2436b7ffc"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfmooney@gmail.com",
        "time": "Mon May 24 14:32:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "include/linux/gfp.h: fix coding style\n\nAdd parenthesis in a define.  This doesn\u0027t change functionality.\n\ncheckpatch errors:\n1) white space fixes\n2) add spaces after comas\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nCc: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "263ff5d8e82e577202d2b8393585b0e2436b7ffc",
      "tree": "d8a1c1e7f854ae09bef85a280b365d7bb2340583",
      "parents": [
        "cf23422b9d76215316855253da491d4c9f294372"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfmooney@gmail.com",
        "time": "Mon May 24 14:32:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "include/linux/gfp.h: spelling fixes\n\nFix minor spelling errors in a few comments; no code changes.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nCc: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf23422b9d76215316855253da491d4c9f294372",
      "tree": "5663d2519d83d830d24dffdf2571d58d3e55d3f6",
      "parents": [
        "8b25c6d2231b978ccce9c401e771932bde79aa9f"
      ],
      "author": {
        "name": "minskey guo",
        "email": "chaohong_guo@linux.intel.com",
        "time": "Mon May 24 14:32:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "cpu/mem hotplug: enable CPUs online before local memory online\n\nEnable users to online CPUs even if the CPUs belongs to a numa node which\ndoesn\u0027t have onlined local memory.\n\nThe zonlists(pg_data_t.node_zonelists[]) of a numa node are created either\nin system boot/init period, or at the time of local memory online.  For a\nnuma node without onlined local memory, its zonelists are not initialized\nat present.  As a result, any memory allocation operations executed by\nCPUs within this node will fail.  In fact, an out-of-memory error is\ntriggered when attempt to online CPUs before memory comes to online.\n\nThis patch tries to create zonelists for such numa nodes, so that the\nmemory allocation for this node can be fallback\u0027ed to other nodes.\n\n[akpm@linux-foundation.org: remove unneeded export]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: minskey guo\u003cchaohong.guo@intel.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b25c6d2231b978ccce9c401e771932bde79aa9f",
      "tree": "13845799e14e49465de1529680df7def59dcfeb8",
      "parents": [
        "0aeb2339e54e40d0788a7017ecaeac7f5271e262"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "vmscan: remove isolate_pages callback scan control\n\nFor now, we have global isolation vs.  memory control group isolation, do\nnot allow the reclaim entry function to set an arbitrary page isolation\ncallback, we do not need that flexibility.\n\nAnd since we already pass around the group descriptor for the memory\ncontrol group isolation case, just use it to decide which one of the two\nisolator functions to use.\n\nThe decisions can be merged into nearby branches, so no extra cost there.\nIn fact, we save the indirect calls.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f92e2586b43a2402e116055d4edda704f911b5b",
      "tree": "6a765ebeba951c02a7878bcea52a4769ad2e45c2",
      "parents": [
        "5e7719058079a1423ccce56148b0aaa56b2df821"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "mm: compaction: defer compaction using an exponential backoff when compaction fails\n\nThe fragmentation index may indicate that a failure is due to external\nfragmentation but after a compaction run completes, it is still possible\nfor an allocation to fail.  There are two obvious reasons as to why\n\n  o Page migration cannot move all pages so fragmentation remains\n  o A suitable page may exist but watermarks are not met\n\nIn the event of compaction followed by an allocation failure, this patch\ndefers further compaction in the zone (1 \u003c\u003c compact_defer_shift) times.\nIf the next compaction attempt also fails, compact_defer_shift is\nincreased up to a maximum of 6.  If compaction succeeds, the defer\ncounters are reset again.\n\nThe zone that is deferred is the first zone in the zonelist - i.e.  the\npreferred zone.  To defer compaction in the other zones, the information\nwould need to be stored in the zonelist or implemented similar to the\nzonelist_cache.  This would impact the fast-paths and is not justified at\nthis time.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e7719058079a1423ccce56148b0aaa56b2df821",
      "tree": "3666cb3d5540dcaa3d8e7df8c293a0ad603a181c",
      "parents": [
        "56de7263fcf3eb10c8dcdf8d59a9cec831795f3f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add a tunable that decides when memory should be compacted and when it should be reclaimed\n\nThe kernel applies some heuristics when deciding if memory should be\ncompacted or reclaimed to satisfy a high-order allocation.  One of these\nis based on the fragmentation.  If the index is below 500, memory will not\nbe compacted.  This choice is arbitrary and not based on data.  To help\noptimise the system and set a sensible default for this value, this patch\nadds a sysctl extfrag_threshold.  The kernel will only compact memory if\nthe fragmentation index is above the extfrag_threshold.\n\n[randy.dunlap@oracle.com: Fix build errors when proc fs is not configured]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56de7263fcf3eb10c8dcdf8d59a9cec831795f3f",
      "tree": "164637c0b678e20adfdcec4129563d9234faf405",
      "parents": [
        "ed4a6d7f0676db50b5023cc01f6cda82a2f2a307"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: direct compact when a high-order allocation fails\n\nOrdinarily when a high-order allocation fails, direct reclaim is entered\nto free pages to satisfy the allocation.  With this patch, it is\ndetermined if an allocation failed due to external fragmentation instead\nof low memory and if so, the calling process will compact until a suitable\npage is freed.  Compaction by moving pages in memory is considerably\ncheaper than paging out to disk and works where there are locked pages or\nno swap.  If compaction fails to free a page of a suitable size, then\nreclaim will still occur.\n\nDirect compaction returns as soon as possible.  As each block is\ncompacted, it is checked if a suitable page has been freed and if so, it\nreturns.\n\n[akpm@linux-foundation.org: Fix build errors]\n[aarcange@redhat.com: fix count_vm_event preempt in memory compaction direct reclaim]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed4a6d7f0676db50b5023cc01f6cda82a2f2a307",
      "tree": "6496343ba964e105cf30f8703714471f22edc806",
      "parents": [
        "76ab0f530e4a01d4dc20cdc1d5e87753c579dc18"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add /sys trigger for per-node memory compaction\n\nAdd a per-node sysfs file called compact.  When the file is written to,\neach zone in that node is compacted.  The intention that this would be\nused by something like a job scheduler in a batch system before a job\nstarts so that the job can allocate the maximum number of hugepages\nwithout significant start-up cost.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76ab0f530e4a01d4dc20cdc1d5e87753c579dc18",
      "tree": "8e1566df85e02f67876685c36d217fec4845f79f",
      "parents": [
        "748446bb6b5a9390b546af38ec899c868a9dbcf0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add /proc trigger for memory compaction\n\nAdd a proc file /proc/sys/vm/compact_memory.  When an arbitrary value is\nwritten to the file, all zones are compacted.  The expected user of such a\ntrigger is a job scheduler that prepares the system before the target\napplication runs.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "748446bb6b5a9390b546af38ec899c868a9dbcf0",
      "tree": "4c27d0805a5e094b39ff938ad60dd270b953a79f",
      "parents": [
        "c175a0ce7584e5b498fff8cbdb9aa7912aa9fbba"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: memory compaction core\n\nThis patch is the core of a mechanism which compacts memory in a zone by\nrelocating movable pages towards the end of the zone.\n\nA single compaction run involves a migration scanner and a free scanner.\nBoth scanners operate on pageblock-sized areas in the zone.  The migration\nscanner starts at the bottom of the zone and searches for all movable\npages within each area, isolating them onto a private list called\nmigratelist.  The free scanner starts at the top of the zone and searches\nfor suitable areas and consumes the free pages within making them\navailable for the migration scanner.  The pages isolated for migration are\nthen migrated to the newly isolated free pages.\n\n[aarcange@redhat.com: Fix unsafe optimisation]\n[mel@csn.ul.ie: do not schedule work on other CPUs for compaction]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c175a0ce7584e5b498fff8cbdb9aa7912aa9fbba",
      "tree": "dd924daef4a9e0ac9729c5b61c30b8e3cc96f971",
      "parents": [
        "f1a5ab1210579e2d3ac8c0c227645823af5aafb0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: move definition for LRU isolation modes to a header\n\nCurrently, vmscan.c defines the isolation modes for __isolate_lru_page().\nMemory compaction needs access to these modes for isolating pages for\nmigration.  This patch exports them.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8bef8ff6ea15fa4c67433cab0f5f3484574ef7c",
      "tree": "3ea9c122e02f523379d4560ee2134124d097895c",
      "parents": [
        "e9e96b39f932a065e14f5d5bab0797ae261d03b5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks\n\nPage migration requires rmap to be able to find all ptes mapping a page\nat all times, otherwise the migration entry can be instantiated, but it\nis possible to leave one behind if the second rmap_walk fails to find\nthe page.  If this page is later faulted, migration_entry_to_page() will\ncall BUG because the page is locked indicating the page was migrated by\nthe migration PTE not cleaned up. For example\n\n  kernel BUG at include/linux/swapops.h:105!\n  invalid opcode: 0000 [#1] PREEMPT SMP\n  ...\n  Call Trace:\n   [\u003cffffffff810e951a\u003e] handle_mm_fault+0x3f8/0x76a\n   [\u003cffffffff8130c7a2\u003e] do_page_fault+0x44a/0x46e\n   [\u003cffffffff813099b5\u003e] page_fault+0x25/0x30\n   [\u003cffffffff8114de33\u003e] load_elf_binary+0x152a/0x192b\n   [\u003cffffffff8111329b\u003e] search_binary_handler+0x173/0x313\n   [\u003cffffffff81114896\u003e] do_execve+0x219/0x30a\n   [\u003cffffffff8100a5c6\u003e] sys_execve+0x43/0x5e\n   [\u003cffffffff8100320a\u003e] stub_execve+0x6a/0xc0\n  RIP  [\u003cffffffff811094ff\u003e] migration_entry_wait+0xc1/0x129\n\nThere is a race between shift_arg_pages and migration that triggers this\nbug.  A temporary stack is setup during exec and later moved.  If\nmigration moves a page in the temporary stack and the VMA is then removed\nbefore migration completes, the migration PTE may not be found leading to\na BUG when the stack is faulted.\n\nThis patch causes pages within the temporary stack during exec to be\nskipped by migration.  It does this by marking the VMA covering the\ntemporary stack with an otherwise impossible combination of VMA flags.\nThese flags are cleared when the temporary stack is moved to its final\nlocation.\n\n[kamezawa.hiroyu@jp.fujitsu.com: idea for having migration skip temporary stacks]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f60c214fd3a360461f3286c6908084f7f8b1950",
      "tree": "dba48cf988a22a40796187c7274f7903a288f7f4",
      "parents": [
        "3f6c82728f4e31a97c3a1b32abccb512fed0b573"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mm: migration: share the anon_vma ref counts between KSM and page migration\n\nFor clarity of review, KSM and page migration have separate refcounts on\nthe anon_vma.  While clear, this is a waste of memory.  This patch gets\nKSM and page migration to share their toys in a spirit of harmony.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f6c82728f4e31a97c3a1b32abccb512fed0b573",
      "tree": "4b577e789a5daef91e40d10bc71c8134b3874ae8",
      "parents": [
        "e325c90ffc13b698fa2814102e05275b21c26bec"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mm: migration: take a reference to the anon_vma before migrating\n\nThis patchset is a memory compaction mechanism that reduces external\nfragmentation memory by moving GFP_MOVABLE pages to a fewer number of\npageblocks.  The term \"compaction\" was chosen as there are is a number of\nmechanisms that are not mutually exclusive that can be used to defragment\nmemory.  For example, lumpy reclaim is a form of defragmentation as was\nslub \"defragmentation\" (really a form of targeted reclaim).  Hence, this\nis called \"compaction\" to distinguish it from other forms of\ndefragmentation.\n\nIn this implementation, a full compaction run involves two scanners\noperating within a zone - a migration and a free scanner.  The migration\nscanner starts at the beginning of a zone and finds all movable pages\nwithin one pageblock_nr_pages-sized area and isolates them on a\nmigratepages list.  The free scanner begins at the end of the zone and\nsearches on a per-area basis for enough free pages to migrate all the\npages on the migratepages list.  As each area is respectively migrated or\nexhausted of free pages, the scanners are advanced one area.  A compaction\nrun completes within a zone when the two scanners meet.\n\nThis method is a bit primitive but is easy to understand and greater\nsophistication would require maintenance of counters on a per-pageblock\nbasis.  This would have a big impact on allocator fast-paths to improve\ncompaction which is a poor trade-off.\n\nIt also does not try relocate virtually contiguous pages to be physically\ncontiguous.  However, assuming transparent hugepages were in use, a\nhypothetical khugepaged might reuse compaction code to isolate free pages,\nsplit them and relocate userspace pages for promotion.\n\nMemory compaction can be triggered in one of three ways.  It may be\ntriggered explicitly by writing any value to /proc/sys/vm/compact_memory\nand compacting all of memory.  It can be triggered on a per-node basis by\nwriting any value to /sys/devices/system/node/nodeN/compact where N is the\nnode ID to be compacted.  When a process fails to allocate a high-order\npage, it may compact memory in an attempt to satisfy the allocation\ninstead of entering direct reclaim.  Explicit compaction does not finish\nuntil the two scanners meet and direct compaction ends if a suitable page\nbecomes available that would meet watermarks.\n\nThe series is in 14 patches.  The first three are not \"core\" to the series\nbut are important pre-requisites.\n\nPatch 1 reference counts anon_vma for rmap_walk_anon(). Without this\n\tpatch, it\u0027s possible to use anon_vma after free if the caller is\n\tnot holding a VMA or mmap_sem for the pages in question. While\n\tthere should be no existing user that causes this problem,\n\tit\u0027s a requirement for memory compaction to be stable. The patch\n\tis at the start of the series for bisection reasons.\nPatch 2 merges the KSM and migrate counts. It could be merged with patch 1\n\tbut would be slightly harder to review.\nPatch 3 skips over unmapped anon pages during migration as there are no\n\tguarantees about the anon_vma existing. There is a window between\n\twhen a page was isolated and migration started during which anon_vma\n\tcould disappear.\nPatch 4 notes that PageSwapCache pages can still be migrated even if they\n\tare unmapped.\nPatch 5 allows CONFIG_MIGRATION to be set without CONFIG_NUMA\nPatch 6 exports a \"unusable free space index\" via debugfs. It\u0027s\n\ta measure of external fragmentation that takes the size of the\n\tallocation request into account. It can also be calculated from\n\tuserspace so can be dropped if requested\nPatch 7 exports a \"fragmentation index\" which only has meaning when an\n\tallocation request fails. It determines if an allocation failure\n\twould be due to a lack of memory or external fragmentation.\nPatch 8 moves the definition for LRU isolation modes for use by compaction\nPatch 9 is the compaction mechanism although it\u0027s unreachable at this point\nPatch 10 adds a means of compacting all of memory with a proc trgger\nPatch 11 adds a means of compacting a specific node with a sysfs trigger\nPatch 12 adds \"direct compaction\" before \"direct reclaim\" if it is\n\tdetermined there is a good chance of success.\nPatch 13 adds a sysctl that allows tuning of the threshold at which the\n\tkernel will compact or direct reclaim\nPatch 14 temporarily disables compaction if an allocation failure occurs\n\tafter compaction.\n\nTesting of compaction was in three stages.  For the test, debugging,\npreempt, the sleep watchdog and lockdep were all enabled but nothing nasty\npopped out.  min_free_kbytes was tuned as recommended by hugeadm to help\nfragmentation avoidance and high-order allocations.  It was tested on X86,\nX86-64 and PPC64.\n\nThs first test represents one of the easiest cases that can be faced for\nlumpy reclaim or memory compaction.\n\n1. Machine freshly booted and configured for hugepage usage with\n\ta) hugeadm --create-global-mounts\n\tb) hugeadm --pool-pages-max DEFAULT:8G\n\tc) hugeadm --set-recommended-min_free_kbytes\n\td) hugeadm --set-recommended-shmmax\n\n\tThe min_free_kbytes here is important. Anti-fragmentation works best\n\twhen pageblocks don\u0027t mix. hugeadm knows how to calculate a value that\n\twill significantly reduce the worst of external-fragmentation-related\n\tevents as reported by the mm_page_alloc_extfrag tracepoint.\n\n2. Load up memory\n\ta) Start updatedb\n\tb) Create in parallel a X files of pagesize*128 in size. Wait\n\t   until files are created. By parallel, I mean that 4096 instances\n\t   of dd were launched, one after the other using \u0026. The crude\n\t   objective being to mix filesystem metadata allocations with\n\t   the buffer cache.\n\tc) Delete every second file so that pageblocks are likely to\n\t   have holes\n\td) kill updatedb if it\u0027s still running\n\n\tAt this point, the system is quiet, memory is full but it\u0027s full with\n\tclean filesystem metadata and clean buffer cache that is unmapped.\n\tThis is readily migrated or discarded so you\u0027d expect lumpy reclaim\n\tto have no significant advantage over compaction but this is at\n\tthe POC stage.\n\n3. In increments, attempt to allocate 5% of memory as hugepages.\n\t   Measure how long it took, how successful it was, how many\n\t   direct reclaims took place and how how many compactions. Note\n\t   the compaction figures might not fully add up as compactions\n\t   can take place for orders other than the hugepage size\n\nX86\t\t\t\tvanilla\t\tcompaction\nFinal page count                    913                916 (attempted 1002)\npages reclaimed                   68296               9791\n\nX86-64\t\t\t\tvanilla\t\tcompaction\nFinal page count:                   901                902 (attempted 1002)\nTotal pages reclaimed:           112599              53234\n\nPPC64\t\t\t\tvanilla\t\tcompaction\nFinal page count:                    93                 94 (attempted 110)\nTotal pages reclaimed:           103216              61838\n\nThere was not a dramatic improvement in success rates but it wouldn\u0027t be\nexpected in this case either.  What was important is that fewer pages were\nreclaimed in all cases reducing the amount of IO required to satisfy a\nhuge page allocation.\n\nThe second tests were all performance related - kernbench, netperf, iozone\nand sysbench.  None showed anything too remarkable.\n\nThe last test was a high-order allocation stress test.  Many kernel\ncompiles are started to fill memory with a pressured mix of unmovable and\nmovable allocations.  During this, an attempt is made to allocate 90% of\nmemory as huge pages - one at a time with small delays between attempts to\navoid flooding the IO queue.\n\n                                             vanilla   compaction\nPercentage of request allocated X86               98           99\nPercentage of request allocated X86-64            95           98\nPercentage of request allocated PPC64             55           70\n\nThis patch:\n\nrmap_walk_anon() does not use page_lock_anon_vma() for looking up and\nlocking an anon_vma and it does not appear to have sufficient locking to\nensure the anon_vma does not disappear from under it.\n\nThis patch copies an approach used by KSM to take a reference on the\nanon_vma while pages are being migrated.  This should prevent rmap_walk()\nrunning into nasty surprises later because anon_vma has been freed.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0ff7453bb5c7c98e0885fb94279f2571946f280",
      "tree": "8bb2b169a5145f0496575dbd2f48bb4b1c83f819",
      "parents": [
        "708c1bbc9d0c3e57f40501794d9b0eed29d10fce"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "cpuset,mm: fix no node to alloc memory when changing cpuset\u0027s mems\n\nBefore applying this patch, cpuset updates task-\u003emems_allowed and\nmempolicy by setting all new bits in the nodemask first, and clearing all\nold unallowed bits later.  But in the way, the allocator may find that\nthere is no node to alloc memory.\n\nThe reason is that cpuset rebinds the task\u0027s mempolicy, it cleans the\nnodes which the allocater can alloc pages on, for example:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nThis patch fixes this problem by expanding the nodes range first(set newly\nallowed bits) and shrink it lazily(clear newly disallowed bits).  So we\nuse a variable to tell the write-side task that read-side task is reading\nnodemask, and the write-side task clears newly disallowed nodes after\nread-side task ends the current memory allocation.\n\n[akpm@linux-foundation.org: fix spello]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "708c1bbc9d0c3e57f40501794d9b0eed29d10fce",
      "tree": "4b19caf68c420b32abdf05af3d413b1320f04fbe",
      "parents": [
        "971ada0f6659488c3f36aed4c6f7670ff5ce4368"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: restructure rebinding-mempolicy functions\n\nNick Piggin reported that the allocator may see an empty nodemask when\nchanging cpuset\u0027s mems[1].  It happens only on the kernel that do not do\natomic nodemask_t stores.  (MAX_NUMNODES \u003e BITS_PER_LONG)\n\nBut I found that there is also a problem on the kernel that can do atomic\nnodemask_t stores.  The problem is that the allocator can\u0027t find a node to\nalloc page when changing cpuset\u0027s mems though there is a lot of free\nmemory.  The reason is like this:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nI can use the attached program reproduce it by the following step:\n\n# mkdir /dev/cpuset\n# mount -t cpuset cpuset /dev/cpuset\n# mkdir /dev/cpuset/1\n# echo `cat /dev/cpuset/cpus` \u003e /dev/cpuset/1/cpus\n# echo `cat /dev/cpuset/mems` \u003e /dev/cpuset/1/mems\n# echo $$ \u003e /dev/cpuset/1/tasks\n# numactl --membind\u003d`cat /dev/cpuset/mems` ./cpuset_mem_hog \u003cnr_tasks\u003e \u0026\n   \u003cnr_tasks\u003e \u003d max(nr_cpus - 1, 1)\n# killall -s SIGUSR1 cpuset_mem_hog\n# ./change_mems.sh\n\nseveral hours later, oom will happen though there is a lot of free memory.\n\nThis patchset fixes this problem by expanding the nodes range first(set\nnewly allowed bits) and shrink it lazily(clear newly disallowed bits).  So\nwe use a variable to tell the write-side task that read-side task is\nreading nodemask, and the write-side task clears newly disallowed nodes\nafter read-side task ends the current memory allocation.\n\nThis patch:\n\nIn order to fix no node to alloc memory, when we want to update mempolicy\nand mems_allowed, we expand the set of nodes first (set all the newly\nnodes) and shrink the set of nodes lazily(clean disallowed nodes), But the\nmempolicy\u0027s rebind functions may breaks the expanding.\n\nSo we restructure the mempolicy\u0027s rebind functions and split the rebind\nwork to two steps, just like the update of cpuset\u0027s mems: The 1st step:\nexpand the set of the mempolicy\u0027s nodes.  The 2nd step: shrink the set of\nthe mempolicy\u0027s nodes.  It is used when there is no real lock to protect\nthe mempolicy in the read-side.  Otherwise we can do rebind work at once.\n\nIn order to implement it, we define\n\n\tenum mpol_rebind_step {\n\t\tMPOL_REBIND_ONCE,\n\t\tMPOL_REBIND_STEP1,\n\t\tMPOL_REBIND_STEP2,\n\t\tMPOL_REBIND_NSTEP,\n\t};\n\nIf the mempolicy needn\u0027t be updated by two steps, we can pass\nMPOL_REBIND_ONCE to the rebind functions.  Or we can pass\nMPOL_REBIND_STEP1 to do the first step of the rebind work and pass\nMPOL_REBIND_STEP2 to do the second step work.\n\nBesides that, it maybe long time between these two step and we have to\nrelease the lock that protects mempolicy and mems_allowed.  If we hold the\nlock once again, we must check whether the current mempolicy is under the\nrebinding (the first step has been done) or not, because the task may\nalloc a new mempolicy when we don\u0027t hold the lock.  So we defined the\nfollowing flag to identify it:\n\n#define MPOL_F_REBINDING (1 \u003c\u003c 2)\n\nThe new functions will be used in the next patch.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e13861d822f8f443ca0c020ea8fc2dc01039cd63",
      "tree": "0e1ccaa6a2d682f7636b9d5ef5d4c73a28074988",
      "parents": [
        "4b50dc26a0a25a9d1998d206e1f7d849aa78063f"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon May 24 14:31:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mm: remove return value of putback_lru_pages()\n\nputback_lru_page() never can fail.  So it doesn\u0027t matter count of \"the\nnumber of pages put back\".\n\nIn addition, users of this functions don\u0027t use return value.\n\nLet\u0027s remove unnecessary code.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9d6c157385e4efa61cb8293e425c9d8beba70d3",
      "tree": "fca2452b46328c9005b8a4043a22b7b1b4d47d0c",
      "parents": [
        "1f0a738868cbfe20ae53a00b7c302c04ef7ab8fc"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon May 24 14:31:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "tmpfs: insert tmpfs cache pages to inactive list at first\n\nShaohua Li reported parallel file copy on tmpfs can lead to OOM killer.\nThis is regression of caused by commit 9ff473b9a7 (\"vmscan: evict\nstreaming IO first\").  Wow, It is 2 years old patch!\n\nCurrently, tmpfs file cache is inserted active list at first.  This means\nthat the insertion doesn\u0027t only increase numbers of pages in anon LRU, but\nit also reduces anon scanning ratio.  Therefore, vmscan will get totally\nconfused.  It scans almost only file LRU even though the system has plenty\nunused tmpfs pages.\n\nHistorically, lru_cache_add_active_anon() was used for two reasons.\n1) Intend to priotize shmem page rather than regular file cache.\n2) Intend to avoid reclaim priority inversion of used once pages.\n\nBut we\u0027ve lost both motivation because (1) Now we have separate anon and\nfile LRU list.  then, to insert active list doesn\u0027t help such priotize.\n(2) In past, one pte access bit will cause page activation.  then to\ninsert inactive list with pte access bit mean higher priority than to\ninsert active list.  Its priority inversion may lead to uninteded lru\nchun.  but it was already solved by commit 645747462 (vmscan: detect\nmapped file pages used only once).  (Thanks Hannes, you are great!)\n\nThus, now we can use lru_cache_add_anon() instead.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e125f7b9cbfce4101191b8076d606c517a73066",
      "tree": "ded140947b146cc7177519cd23cf81912de32687",
      "parents": [
        "064e297c324fff9b62226aae5dc468ebb272433c",
        "a9ddabc52ce3757a4331d6c1e8bf4065333cc51b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:05:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:05:29 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:\n  cmd640: fix kernel oops in test_irq() method\n  pdc202xx_old: ignore \"FIFO empty\" bit in test_irq() method\n  pdc202xx_old: wire test_irq() method for PDC2026x\n  IDE: pass IRQ flags to the IDE core\n  ide: fix comment typo in ide.h\n"
    },
    {
      "commit": "f13771187b9423b824f32518319f6da85d819003",
      "tree": "c431cf16c286065a302d5f3fb43fc1abac7e4047",
      "parents": [
        "15953654cc312429740fd58fb37a5a3d63a54376",
        "9f37af654fda88a8dcca74c785f6c20e52758866"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  uml: Pushdown the bkl from harddog_kern ioctl\n  sunrpc: Pushdown the bkl from sunrpc cache ioctl\n  sunrpc: Pushdown the bkl from ioctl\n  autofs4: Pushdown the bkl from ioctl\n  uml: Convert to unlocked_ioctls to remove implicit BKL\n  ncpfs: BKL ioctl pushdown\n  coda: Clean-up whitespace problems in pioctl.c\n  coda: BKL ioctl pushdown\n  drivers: Push down BKL into various drivers\n  isdn: Push down BKL into ioctl functions\n  scsi: Push down BKL into ioctl functions\n  dvb: Push down BKL into ioctl functions\n  smbfs: Push down BKL into ioctl function\n  coda/psdev: Remove BKL from ioctl function\n  um/mmapper: Remove BKL usage\n  sn_hwperf: Kill BKL usage\n  hfsplus: Push down BKL into ioctl function\n"
    },
    {
      "commit": "15953654cc312429740fd58fb37a5a3d63a54376",
      "tree": "bbb6bf8d4ea943545e29ce896848182c4f206298",
      "parents": [
        "c3ed9ea4ab460080dea9449c709be9316c670c72",
        "24af3202459d9a25643009b1ab8ab5ff04d94b49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:00:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:00:13 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/battery-2.6\n\n* git://git.infradead.org/battery-2.6:\n  ds2760_battery: Document ABI change\n  ds2760_battery: Make charge_now and charge_full writeable\n  power_supply: Add support for writeable properties\n  power_supply: Use attribute groups\n  power_supply: Add test_power driver\n  tosa_battery: Fix build error due to direct driver_data usage\n  wm97xx_battery: Quieten sparse warning (bat_set_pdata not declared)\n  ds2782_battery: Get rid of magic numbers in driver_data\n  ds2782_battery: Add support for ds2786 battery gas gauge\n  pda_power: Add function callbacks for suspend and resume\n  wm831x_power: Use genirq\n  Driver for Zipit Z2 battery chip\n  ds2782_battery: Fix clientdata on removal\n"
    },
    {
      "commit": "0fed2b5cb4c04336b26b0cbf6f9a8c07081f79a6",
      "tree": "a9be0f082d3c2f53eb2d5f9de9ad900c31236b34",
      "parents": [
        "0163916f1db7f345963dad1af78b7628c759c6ee",
        "41ec7ebee14189a0424176279c227168960c28ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:58:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:58:28 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (25 commits)\n  sh: fix up sh7785lcr_32bit_defconfig.\n  arch/sh/lib/strlen.S: Checkpatch cleanup\n  sh: fix up sh7786 dmaengine build.\n  sh: guard cookie consistency across termination in the DMA driver\n  sh: prevent the DMA driver from unloading, while in use\n  sh: fix Oops in the serial SCI driver\n  sh: allow platforms to specify SD-card supported voltages\n  mmc: let MFD\u0027s provide supported Vdd card voltages to tmio_mmc\n  sh: disable SD-card write-protection detection on kfr2r09\n  mfd: pass platform flags down to the tmio_mmc driver\n  tmio: add a platform flag to disable card write-protection detection\n  sh: Add SDHI DMA support to migor\n  sh: Add SDHI DMA support to kfr2r09\n  sh: Add SDHI DMA support to ms7724se\n  sh: Add SDHI DMA support to ecovec\n  mmc: add DMA support to tmio_mmc driver, when used on SuperH\n  sh: prepare the SDHI MFD driver to pass DMA configuration to tmio_mmc.c\n  mmc: prepare tmio_mmc for passing of DMA configuration from the MFD cell\n  sh: add DMA slave definitions to sh7724\n  sh: add DMA slaves for two SDHI controllers to sh7722\n  ...\n"
    },
    {
      "commit": "62a11ae3405b6da2535d28e5facc2de5af4a7e62",
      "tree": "6b68f0e74fe08c0e87488ec0653d59c653e46745",
      "parents": [
        "cedfb2db7b2d6b2c780999536aa1e2650fadee36",
        "cf9b59e9d3e008591d1f54830f570982bb307a0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:38 2010 -0700"
      },
      "message": "Merge branch \u0027next-devicetree\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-devicetree\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of: change of_match_device to work with struct device\n  of: Remove duplicate fields from of_platform_driver\n  drivercore: Add of_match_table to the common device drivers\n  arch/microblaze: Move dma_mask from of_device into pdev_archdata\n  arch/powerpc: Move dma_mask from of_device into pdev_archdata\n  of: eliminate of_device-\u003enode and dev_archdata-\u003e{of,prom}_node\n  of: Always use \u0027struct device.of_node\u0027 to get device node pointer.\n  i2c/of: Allow device node to be passed via i2c_board_info\n  driver-core: Add device node pointer to struct device\n  of: protect contents of of_platform.h and of_device.h\n  of/flattree: Make unflatten_device_tree() safe to call from any arch\n  of/flattree: make of_fdt.h safe to unconditionally include.\n"
    },
    {
      "commit": "bb0fe533514c1d480c6c16f8bad070270a73a96c",
      "tree": "34de95399380a4043d16cf77466cabae343daf3b",
      "parents": [
        "a2b14dc9615c215a8cf4f2041f6c0c3fff5fc486"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed May 19 18:37:36 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat May 22 17:05:22 2010 +0900"
      },
      "message": "sh: allow platforms to specify SD-card supported voltages\n\nBoards can have different supplied voltages on different SD card slots. This\ninformation has to be passed down to the SD/MMC driver.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Ian Molton \u003cian@mnementh.co.uk\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "a2b14dc9615c215a8cf4f2041f6c0c3fff5fc486",
      "tree": "b4958eebca382ca616622e3abf148853e4f84f5e",
      "parents": [
        "8f4b3036d1b9bdb6f5fa0b920e0163d64a990327"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed May 19 18:37:25 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat May 22 17:05:21 2010 +0900"
      },
      "message": "mmc: let MFD\u0027s provide supported Vdd card voltages to tmio_mmc\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Ian Molton \u003cian@mnementh.co.uk\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "f87c20a9db43f6f731270eeef616e1bcc266c2d4",
      "tree": "a8409e44117a95cc24c86af5cb3ca1e173edbd9b",
      "parents": [
        "ac8fb3e8627d5494f3d2221925a82be4c1778b0e"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed May 19 18:36:08 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat May 22 17:05:21 2010 +0900"
      },
      "message": "mfd: pass platform flags down to the tmio_mmc driver\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Ian Molton \u003cian@mnementh.co.uk\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "ac8fb3e8627d5494f3d2221925a82be4c1778b0e",
      "tree": "5e2e62928e4eeb67aac2363b613ec087546912d6",
      "parents": [
        "65a1b0347a329422e939e14daae6dad9a29e9cf2"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed May 19 18:36:02 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat May 22 17:05:21 2010 +0900"
      },
      "message": "tmio: add a platform flag to disable card write-protection detection\n\nWrite-protection status is not always available, e.g., micro-SD cards do not\nhave a write-protection switch at all. This patch adds a flag to let platforms\nforce tmio_mmc to consider the card writable.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Ian Molton \u003cian@mnementh.co.uk\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "bb4f6b0cd7524ad7d56709723eaf8a7bf5a87b57",
      "tree": "df58d2c4c1f01f9bf5aa19e6a6d329b872b1f72a",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050",
        "ec49fdbd354cb133340e25ff84d88284bb17e99a",
        "e92dd4fd1aa1cd081dac03973b33c972637d5b7a",
        "5c5e3b33b7cb959a401f823707bee006caadd76e",
        "8f9f8d9e8080a2ff46caa7decef47810d093d252",
        "6b65aaf3027c4e02b42aaefd900aa79136a30681"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat May 22 10:57:52 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat May 22 10:57:52 2010 +0300"
      },
      "message": "Merge branches \u0027slab/align\u0027, \u0027slab/cleanups\u0027, \u0027slab/fixes\u0027, \u0027slab/memhotadd\u0027 and \u0027slub/fixes\u0027 into slab-for-linus\n"
    },
    {
      "commit": "056676dabd9f4c69a6adcad208e9aa2ca7241400",
      "tree": "0113922d7128d285e052cd08156f283365ec86df",
      "parents": [
        "42a4533976d922ff3272fad17dd52fe3682899dd"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed May 19 18:34:16 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat May 22 16:51:18 2010 +0900"
      },
      "message": "sh: prepare the SDHI MFD driver to pass DMA configuration to tmio_mmc.c\n\nPass DMA slave IDs from platform down to the tmio_mmc driver, to be used\nfor dmaengine configuration.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "42a4533976d922ff3272fad17dd52fe3682899dd",
      "tree": "2c420853dd7e0194542edf9101cbf7e9f7e47904",
      "parents": [
        "d62b8a985b74ac741233396b847562dacc45a5c1"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed May 19 18:34:11 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat May 22 16:51:18 2010 +0900"
      },
      "message": "mmc: prepare tmio_mmc for passing of DMA configuration from the MFD cell\n\nAfter this patch, if the \"dma\" pointer in struct tmio_mmc_data is not NULL, it\npoints to a struct, containing two tokens, that have to be passed to the\ndmaengine driver for channel configuration.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "cf9b59e9d3e008591d1f54830f570982bb307a0d",
      "tree": "113478ce8fd8c832ba726ffdf59b82cb46356476",
      "parents": [
        "44504b2bebf8b5823c59484e73096a7d6574471d",
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat May 22 00:36:56 2010 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat May 22 00:36:56 2010 -0600"
      },
      "message": "Merge remote branch \u0027origin\u0027 into secretlab/next-devicetree\n\nMerging in current state of Linus\u0027 tree to deal with merge conflicts and\nbuild failures in vio.c after merge.\n\nConflicts:\n\tdrivers/i2c/busses/i2c-cpm.c\n\tdrivers/i2c/busses/i2c-mpc.c\n\tdrivers/net/gianfar.c\n\nAlso fixed up one line in arch/powerpc/kernel/vio.c to use the\ncorrect node pointer.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "44504b2bebf8b5823c59484e73096a7d6574471d",
      "tree": "c4d901f026b499f6f0f5c64f4ecbdee297f5db1e",
      "parents": [
        "4018294b53d1dae026880e45f174c1cc63b5d435"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Apr 13 16:13:22 2010 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat May 22 00:10:41 2010 -0600"
      },
      "message": "of: change of_match_device to work with struct device\n\nThe of_node pointer is now stored directly in struct device, so\nof_match_device() should work with any device, not just struct of_device.\n\nThis patch changes the interface to of_match_device() to accept a\nstruct device instead of struct of_device.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "4018294b53d1dae026880e45f174c1cc63b5d435",
      "tree": "6db3538eaf91b653381720a6d92f4f15634a93d0",
      "parents": [
        "597b9d1e44e9ba69f2454a5318bbe7a6d5e6930a"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Apr 13 16:13:02 2010 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat May 22 00:10:40 2010 -0600"
      },
      "message": "of: Remove duplicate fields from of_platform_driver\n\n.name, .match_table and .owner are duplicated in both of_platform_driver\nand device_driver.  This patch is a removes the extra copies from struct\nof_platform_driver and converts all users to the device_driver members.\n\nThis patch is a pretty mechanical change.  The usage model doesn\u0027t change\nand if any drivers have been missed, or if anything has been fixed up\nincorrectly, then it will fail with a compile time error, and the fixup\nwill be trivial.  This patch looks big and scary because it touches so\nmany files, but it should be pretty safe.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Sean MacLennan \u003csmaclennan@pikatech.com\u003e\n\n"
    },
    {
      "commit": "597b9d1e44e9ba69f2454a5318bbe7a6d5e6930a",
      "tree": "373f1f1387143b0ea8811ca6e2a6812f0a86d933",
      "parents": [
        "173b3a7a059a6998a6c0733710818c473cc0de4c"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Apr 13 16:13:01 2010 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat May 22 00:10:40 2010 -0600"
      },
      "message": "drivercore: Add of_match_table to the common device drivers\n\nOF-style matching can be available to any device, on any type of bus.\nThis patch allows any driver to provide an OF match table when CONFIG_OF\nis enabled so that drivers can be bound against devices described in\nthe device tree.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2faa4cf76e7d229016240b79b50a43d81f458323",
      "tree": "587b7ccc902ef1f6946e57a6ccdbb4fa7e16bf41",
      "parents": [
        "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri May 21 20:16:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 20:29:10 2010 -0700"
      },
      "message": "linux/elfcore.h: hide kernel functions\n\nThe declarations for elf_core_extra_phdrs() et al got added on the\nwrong side of #ifdef __KERNEL__ in linux/elfcore.h so they leak into\nthe user header copy and we get a warning at build time about it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d",
      "tree": "c0d82cbd11daaf579b74121c6641d58947091094",
      "parents": [
        "6109e2ce2600e2db26cd0424bb9c6ed019723288",
        "82f3952c02add60b15eea9151d4d99b6b82066c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)\n  fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n  get rid of home-grown mutex in cris eeprom.c\n  switch ecryptfs_write() to struct inode *, kill on-stack fake files\n  switch ecryptfs_get_locked_page() to struct inode *\n  simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n  AFS: Don\u0027t put struct file on the stack\n  Ban ecryptfs over ecryptfs\n  logfs: replace inode uid,gid,mode initialization with helper function\n  ufs: replace inode uid,gid,mode initialization with helper function\n  udf: replace inode uid,gid,mode init with helper\n  ubifs: replace inode uid,gid,mode initialization with helper function\n  sysv: replace inode uid,gid,mode initialization with helper function\n  reiserfs: replace inode uid,gid,mode initialization with helper function\n  ramfs: replace inode uid,gid,mode initialization with helper function\n  omfs: replace inode uid,gid,mode initialization with helper function\n  bfs: replace inode uid,gid,mode initialization with helper function\n  ocfs2: replace inode uid,gid,mode initialization with helper function\n  nilfs2: replace inode uid,gid,mode initialization with helper function\n  minix: replace inode uid,gid,mode init with helper\n  ext4: replace inode uid,gid,mode init with helper\n  ...\n\nTrivial conflict in fs/fs-writeback.c (mark bitfields unsigned)\n"
    },
    {
      "commit": "6109e2ce2600e2db26cd0424bb9c6ed019723288",
      "tree": "54b5d347bf12e0a987edfb52f287399f748a9a38",
      "parents": [
        "0961d6581c870850342ad6ea25263763433d666f",
        "ac81860ea073daed50246af54db706c6e491f240"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 18:58:52 2010 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (36 commits)\n  PCI: hotplug: pciehp: Removed check for hotplug of display devices\n  PCI: read memory ranges out of Broadcom CNB20LE host bridge\n  PCI: Allow manual resource allocation for PCI hotplug bridges\n  x86/PCI: make ACPI MCFG reserved error messages ACPI specific\n  PCI hotplug: Use kmemdup\n  PM/PCI: Update PCI power management documentation\n  PCI: output FW warning in pci_read/write_vpd\n  PCI: fix typos pci_device_dis/enable to pci_dis/enable_device in comments\n  PCI quirks: disable msi on AMD rs4xx internal gfx bridges\n  PCI: Disable MSI for MCP55 on P5N32-E SLI\n  x86/PCI: irq and pci_ids patch for additional Intel Cougar Point DeviceIDs\n  PCI: aerdrv: trivial cleanup for aerdrv_core.c\n  PCI: aerdrv: trivial cleanup for aerdrv.c\n  PCI: aerdrv: introduce default_downstream_reset_link\n  PCI: aerdrv: rework find_aer_service\n  PCI: aerdrv: remove is_downstream\n  PCI: aerdrv: remove magical ROOT_ERR_STATUS_MASKS\n  PCI: aerdrv: redefine PCI_ERR_ROOT_*_SRC\n  PCI: aerdrv: rework do_recovery\n  PCI: aerdrv: rework get_e_source()\n  ...\n"
    },
    {
      "commit": "0961d6581c870850342ad6ea25263763433d666f",
      "tree": "371c61fd7f621397907983031003e784a040402e",
      "parents": [
        "1756ac3d3c41341297ea25b818b7fce505bb2a9a",
        "fd0c8894893cba722bdea12de25b49f980795d06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:25:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:25:01 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/iommu-2.6\n\n* git://git.infradead.org/iommu-2.6:\n  intel-iommu: Set a more specific taint flag for invalid BIOS DMAR tables\n  intel-iommu: Combine the BIOS DMAR table warning messages\n  panic: Add taint flag TAINT_FIRMWARE_WORKAROUND (\u0027I\u0027)\n  panic: Allow warnings to set different taint flags\n  intel-iommu: intel_iommu_map_range failed at very end of address space\n  intel-iommu: errors with smaller iommu widths\n  intel-iommu: Fix boot inside 64bit virtualbox with io-apic disabled\n  intel-iommu: use physfn to search drhd for VF\n  intel-iommu: Print out iommu seq_id\n  intel-iommu: Don\u0027t complain that ACPI_DMAR_SCOPE_TYPE_IOAPIC is not supported\n  intel-iommu: Avoid global flushes with caching mode.\n  intel-iommu: Use correct domain ID when caching mode is enabled\n  intel-iommu mistakenly uses offset_pfn when caching mode is enabled\n  intel-iommu: use for_each_set_bit()\n  intel-iommu: Fix section mismatch dmar_ir_support() uses dmar_tbl.\n"
    },
    {
      "commit": "1756ac3d3c41341297ea25b818b7fce505bb2a9a",
      "tree": "96382220afbb82fd5c576c4c08b3c3e13282851f",
      "parents": [
        "98edb6ca4174f17a64890a02f44c211c8b44fb3c",
        "0643e4c6e4fd67778fa886a89e6ec2320e0ff4d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:22:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:22:52 2010 -0700"
      },
      "message": "Merge branch \u0027virtio\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027virtio\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (27 commits)\n  drivers/char: Eliminate use after free\n  virtio: console: Accept console size along with resize control message\n  virtio: console: Store each console\u0027s size in the console structure\n  virtio: console: Resize console port 0 on config intr only if multiport is off\n  virtio: console: Add support for nonblocking write()s\n  virtio: console: Rename wait_is_over() to will_read_block()\n  virtio: console: Don\u0027t always create a port 0 if using multiport\n  virtio: console: Use a control message to add ports\n  virtio: console: Move code around for future patches\n  virtio: console: Remove config work handler\n  virtio: console: Don\u0027t call hvc_remove() on unplugging console ports\n  virtio: console: Return -EPIPE to hvc_console if we lost the connection\n  virtio: console: Let host know of port or device add failures\n  virtio: console: Add a __send_control_msg() that can send messages without a valid port\n  virtio: Revert \"virtio: disable multiport console support.\"\n  virtio: add_buf_gfp\n  trans_virtio: use virtqueue_xxx wrappers\n  virtio-rng: use virtqueue_xxx wrappers\n  virtio_ring: remove a level of indirection\n  virtio_net: use virtqueue_xxx wrappers\n  ...\n\nFix up conflicts in drivers/net/virtio_net.c due to new virtqueue_xxx\nwrappers changes conflicting with some other cleanups.\n"
    },
    {
      "commit": "98edb6ca4174f17a64890a02f44c211c8b44fb3c",
      "tree": "033bc5f7da410046d28dd1cefcd2d63cda33d25b",
      "parents": [
        "a8251096b427283c47e7d8f9568be6b388dd68ec",
        "8fbf065d625617bbbf6b72d5f78f84ad13c8b547"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:16:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:16:21 2010 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.35\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.35\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (269 commits)\n  KVM: x86: Add missing locking to arch specific vcpu ioctls\n  KVM: PPC: Add missing vcpu_load()/vcpu_put() in vcpu ioctls\n  KVM: MMU: Segregate shadow pages with different cr0.wp\n  KVM: x86: Check LMA bit before set_efer\n  KVM: Don\u0027t allow lmsw to clear cr0.pe\n  KVM: Add cpuid.txt file\n  KVM: x86: Tell the guest we\u0027ll warn it about tsc stability\n  x86, paravirt: don\u0027t compute pvclock adjustments if we trust the tsc\n  x86: KVM guest: Try using new kvm clock msrs\n  KVM: x86: export paravirtual cpuid flags in KVM_GET_SUPPORTED_CPUID\n  KVM: x86: add new KVMCLOCK cpuid feature\n  KVM: x86: change msr numbers for kvmclock\n  x86, paravirt: Add a global synchronization point for pvclock\n  x86, paravirt: Enable pvclock flags in vcpu_time_info structure\n  KVM: x86: Inject #GP with the right rip on efer writes\n  KVM: SVM: Don\u0027t allow nested guest to VMMCALL into host\n  KVM: x86: Fix exception reinjection forced to true\n  KVM: Fix wallclock version writing race\n  KVM: MMU: Don\u0027t read pdptrs with mmu spinlock held in mmu_alloc_roots\n  KVM: VMX: enable VMXON check with SMX enabled (Intel TXT)\n  ...\n"
    },
    {
      "commit": "a8251096b427283c47e7d8f9568be6b388dd68ec",
      "tree": "edc9747e30b4b4413aa99acfbd3104d81b1c303b",
      "parents": [
        "27a3353a4525afe984f3b793681869d636136b69",
        "480b02df3aa9f07d1c7df0cd8be7a5ca73893455"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "message": "Merge branch \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: drop the lock while waiting for module to complete initialization.\n  MODULE_DEVICE_TABLE(isapnp, ...) does nothing\n  hisax_fcpcipnp: fix broken isapnp device table.\n  isapnp: move definitions to mod_devicetable.h so file2alias can reach them.\n"
    },
    {
      "commit": "6f68fbaafbaa033205cd131d3e1f3c4b914e9b78",
      "tree": "56b434496064ed170f94381e3ec4c6c340b71376",
      "parents": [
        "6e4513972a5ad28517477d21f301a02ac7a0df76",
        "0b28330e39bbe0ffee4c56b09fc415fcec595ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:05:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:05:46 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:\n  DMAENGINE: extend the control command to include an arg\n  async_tx: trim dma_async_tx_descriptor in \u0027no channel switch\u0027 case\n  DMAENGINE: DMA40 fix for allocation of logical channel 0\n  DMAENGINE: DMA40 support paused channel status\n  dmaengine: mpc512x: Use resource_size\n  DMA ENGINE: Do not reset \u0027private\u0027 of channel\n  ioat: Remove duplicated devm_kzalloc() calls for ioatdma_device\n  ioat3: disable cacheline-unaligned transfers for raid operations\n  ioat2,3: convert to producer/consumer locking\n  ioat: convert to circ_buf\n  DMAENGINE: Support for ST-Ericssons DMA40 block v3\n  async_tx: use of kzalloc/kfree requires the include of slab.h\n  dmaengine: provide helper for setting txstate\n  DMAENGINE: generic channel status v2\n  DMAENGINE: generic slave control v2\n  dma: timb-dma: Update comment and fix compiler warning\n  dma: Add timb-dma\n  DMAENGINE: COH 901 318 fix bytesleft\n  DMAENGINE: COH 901 318 rename confusing vars\n"
    },
    {
      "commit": "454abafe9d8beb3fe7da06131b3d81d6d352a959",
      "tree": "4be9c50d76aecd2c43959550814fb4337d27c6d9",
      "parents": [
        "6a9e652c88fad648ea088ac07dbc671a9813f75e"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:18 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "ramfs: replace inode uid,gid,mode initialization with helper function\n\n- seems what ramfs_get_inode is only locally, make it static.\n[AV: the hell it is; it\u0027s used by shmem, so shmem needed conversion too\nand no, that function can\u0027t be made static]\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1bd120d13e586ea1c424048fd2c8420a442852a",
      "tree": "fdac342d7ab0fbaaeb1dd7d61a86b457a6938672",
      "parents": [
        "52957fe1c709d5ca3732456d73f4e4d95492c72c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:29:14 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: Add inode uid,gid,mode init helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51ee049e771c14a29aaee8ecd6cbbe14db088f3a",
      "tree": "594c6676eb50a59ce82625ee09fee73fd700a5ed",
      "parents": [
        "cc9106247de92549e50abb0ba12d6b2fdbf0be55"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Tue Apr 27 14:23:57 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: add lockdep annotation to s_vfs_rename_key for ecryptfs\n\n \u003e  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n \u003e  [ INFO: possible recursive locking detected ]\n \u003e  2.6.31-2-generic #14~rbd3\n \u003e  ---------------------------------------------\n \u003e  firefox-3.5/4162 is trying to acquire lock:\n \u003e   (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e\n \u003e  but task is already holding lock:\n \u003e   (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e\n \u003e  other info that might help us debug this:\n \u003e  3 locks held by firefox-3.5/4162:\n \u003e   #0:  (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e   #1:  (\u0026sb-\u003es_type-\u003ei_mutex_key#11/1){+.+.+.}, at: [\u003cffffffff81139d5a\u003e] lock_rename+0x6a/0xf0\n \u003e   #2:  (\u0026sb-\u003es_type-\u003ei_mutex_key#11/2){+.+.+.}, at: [\u003cffffffff81139d6f\u003e] lock_rename+0x7f/0xf0\n \u003e\n \u003e  stack backtrace:\n \u003e  Pid: 4162, comm: firefox-3.5 Tainted: G         C 2.6.31-2-generic #14~rbd3\n \u003e  Call Trace:\n \u003e   [\u003cffffffff8108ae74\u003e] print_deadlock_bug+0xf4/0x100\n \u003e   [\u003cffffffff8108ce26\u003e] validate_chain+0x4c6/0x750\n \u003e   [\u003cffffffff8108d2e7\u003e] __lock_acquire+0x237/0x430\n \u003e   [\u003cffffffff8108d585\u003e] lock_acquire+0xa5/0x150\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff815526ad\u003e] __mutex_lock_common+0x4d/0x3d0\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff8120eaf9\u003e] ? ecryptfs_rename+0x99/0x170\n \u003e   [\u003cffffffff81552b36\u003e] mutex_lock_nested+0x46/0x60\n \u003e   [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff8120eb2a\u003e] ecryptfs_rename+0xca/0x170\n \u003e   [\u003cffffffff81139a9e\u003e] vfs_rename_dir+0x13e/0x160\n \u003e   [\u003cffffffff8113ac7e\u003e] vfs_rename+0xee/0x290\n \u003e   [\u003cffffffff8113c212\u003e] ? __lookup_hash+0x102/0x160\n \u003e   [\u003cffffffff8113d512\u003e] sys_renameat+0x252/0x280\n \u003e   [\u003cffffffff81133eb4\u003e] ? cp_new_stat+0xe4/0x100\n \u003e   [\u003cffffffff8101316a\u003e] ? sysret_check+0x2e/0x69\n \u003e   [\u003cffffffff8108c34d\u003e] ? trace_hardirqs_on_caller+0x14d/0x190\n \u003e   [\u003cffffffff8113d55b\u003e] sys_rename+0x1b/0x20\n \u003e   [\u003cffffffff81013132\u003e] system_call_fastpath+0x16/0x1b\n\nThe trace above is totally reproducible by doing a cross-directory\nrename on an ecryptfs directory.\n\nThe issue seems to be that sys_renameat() does lock_rename() then calls\ninto the filesystem; if the filesystem is ecryptfs, then\necryptfs_rename() again does lock_rename() on the lower filesystem, and\nlockdep can\u0027t tell that the two s_vfs_rename_mutexes are different.  It\nseems an annotation like the following is sufficient to fix this (it\ndoes get rid of the lockdep trace in my simple tests); however I would\nlike to make sure I\u0027m not misunderstanding the locking, hence the CC\nlist...\n\nSigned-off-by: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8018ab057480974e7f26a387bf4ce040e9a5f6f1",
      "tree": "98298180bf60797a028eca4f24234dc67d38a9d4",
      "parents": [
        "e970a573ce30a3976234dcfb67906c164b0df9ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:25 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "sanitize vfs_fsync calling conventions\n\nNow that the last user passing a NULL file pointer is gone we can remove\nthe redundant dentry argument and associated hacks inside vfs_fsynmc_range.\n\nThe next step will be removig the dentry argument from -\u003efsync, but given\nthe luck with the last round of method prototype changes I\u0027d rather\ndefer this until after the main merge window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94d09a98cdb163be12fb5c76841fa295f0bee22a",
      "tree": "32f8e25bd707de3fe5fd34d49329d9510d7d0af2",
      "parents": [
        "11e27528076e7dee63f1db78bffbef6310f076f4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:19 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "reiserfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bb4354538eb7b92f32cfedbad68c7be266c0b467",
      "tree": "5ecc43dabf5a0ecb511c74411272eba70415cdaf",
      "parents": [
        "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:14 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "fs: xattr_handler table should be const\n\nThe entries in xattr handler table should be immutable (ie const)\nlike other operation tables.\n\nLater patches convert common filesystems. Uncoverted filesystems\nwill still work, but will generate a compiler warning.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2",
      "tree": "635369c866fcb384223618c878e0b4c317790634",
      "parents": [
        "e1e46bf1866317d4f86f66bf18d3f07317d9f9ee"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 23 10:34:56 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "Introduce freeze_super and thaw_super for the fsfreeze ioctl\n\nCurrently the way we do freezing is by passing sb\u003es_bdev to freeze_bdev and then\nletting it do all the work.  But freezing is more of an fs thing, and doesn\u0027t\nreally have much to do with the bdev at all, all the work gets done with the\nsuper.  In btrfs we do not populate s_bdev, since we can have multiple bdev\u0027s\nfor one fs and setting s_bdev makes removing devices from a pool kind of tricky.\nThis means that freezing a btrfs filesystem fails, which causes us to corrupt\nwith things like tux-on-ice which use the fsfreeze mechanism.  So instead of\npopulating sb-\u003es_bdev with a random bdev in our pool, I\u0027ve broken the actual fs\nfreezing stuff into freeze_super and thaw_super.  These just take the\nsuper_block that we\u0027re freezing and does the appropriate work.  It\u0027s basically\njust copy and pasted from freeze_bdev.  I\u0027ve then converted freeze_bdev over to\nuse the new super helpers.  I\u0027ve tested this with ext4 and btrfs and verified\neverything continues to work the same as before.\n\nThe only new gotcha is multiple calls to the fsfreeze ioctl will return EBUSY if\nthe fs is already frozen.  I thought this was a better solution than adding a\nfreeze counter to the super_block, but if everybody hates this idea I\u0027m open to\nsuggestions.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "01a05b337a5b647909e1d6670f57e7202318a5fb",
      "tree": "7877f08db14877d06346c8e1ef52aa17f2483e93",
      "parents": [
        "35cf7ba0b46dc3582a01c3860b14bff122662aa3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:06:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "new helper: iterate_supers()\n\n... and switch the simple \"loop over superblocks and do something\"\nloops to it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "35cf7ba0b46dc3582a01c3860b14bff122662aa3",
      "tree": "2b38e9333600f468f0c8371c657c02e3aa8ec43b",
      "parents": [
        "79893c17b45dec0d3c25bc22d28d9f319b14f573"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 21:13:53 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "Bury __put_super_and_need_restart()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8edd64bd6089e21f47dcdebb14b598b713213ddc",
      "tree": "c356a358c7b823433728869ff430ad205c4b8a5d",
      "parents": [
        "551de6f34dfeefbeeadb32909c387d393114ecc8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 19:56:42 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "get rid of restarts in sync_filesystems()\n\nAt the same time we can kill s_need_restart and local mutex in there.\n__put_super() made public for a while; will be gone later.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b20bd1a5e78af267dc4b6e1ffed48d5d776302c5",
      "tree": "d50982ee42500712d9add489435d4455580b9cac",
      "parents": [
        "389b8be6ef419397e4f176652927ebad6ebb4b77"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 08:53:19 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "get rid of S_BIAS\n\nuse atomic_inc_not_zero(\u0026sb-\u003es_active) instead of playing games with\nchecking -\u003es_count \u003e S_BIAS\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79d7e39ee1d4b423206f6cfd2cd2eed6253d95fe",
      "tree": "72cda49fac91729b68edbec086dd5f36178448d5",
      "parents": [
        "3981f2e2a04df4b95129ddbb8bb869ef1d57bea9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 19:24:23 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "sb_entry() has been killed a couple of years ago and resurrected on mismerge\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d79df0b1eda0099a22cbcece01ce5e7d222450de",
      "tree": "eb9c938fa5faf285fb091d7446508a32229ceea4",
      "parents": [
        "6e80e8ed5eb92d0112674aabe82951266a6a1051",
        "c8d1a126924fcbc1d61ceb830226e0c7afdcc841"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:26:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:26:46 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (577 commits)\n  Staging: ramzswap: Handler for swap slot free callback\n  swap: Add swap slot free callback to block_device_operations\n  swap: Add flag to identify block swap devices\n  Staging: vt6655: use ETH_FRAME_LEN macro instead of custom one\n  Staging: vt6655: use ETH_DATA_LEN macro instead of custom one\n  Staging: vt6655: use ETH_FCS_LEN macro instead of custom one\n  Staging: vt6656: use ETH_HLEN macro instead of custom one\n  Staging: comedi: quatech_daqp_cs.c Replace eos semaphore with a completion.\n  Staging: dt3155v4l: remove private memory allocator\n  Staging: crystalhd: Remove typedefs from driver\n  Staging: winbond: Fix for pointer name format issue in mds.c\n  Staging: vt6656: removed custom UCHAR/USHORT/UINT/ULONG/ULONGLONG typedefs\n  Staging: vt6656: removed custom CHAR/SHORT/INT/LONG typedefs\n  Staging: comedi: Altered the way printk is used in 8255.c\n  staging: iio: adis16350 and similar IMU driver\n  Staging: iio: max1363 Fix two bugs in single_channel_from_ring\n  Staging: iio: adis16220 extract bin_attribute structures from state\n  Staging: iio: adis16220 vibration sensor driver\n  Staging: comedi: Kconfig dependancy fixes\n  Staging: comedi: fix up build error from last Kconfig changes\n  ...\n"
    },
    {
      "commit": "6e80e8ed5eb92d0112674aabe82951266a6a1051",
      "tree": "4913d191cd088f355b92109af5ffa7d75e15ae4a",
      "parents": [
        "6969a434737dd82f7343e3fcd529bc320508d9fc",
        "ee9a3607fb03e804ddf624544105f4e34260c380"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:25:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:25:33 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.35\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.35\u0027 of git://git.kernel.dk/linux-2.6-block: (86 commits)\n  pipe: set lower and upper limit on max pages in the pipe page array\n  pipe: add support for shrinking and growing pipes\n  drbd: This is now equivalent to drbd release 8.3.8rc1\n  drbd: Do not free p_uuid early, this is done in the exit code of the receiver\n  drbd: Null pointer deref fix to the large \"multi bio rewrite\"\n  drbd: Fix: Do not detach, if a bio with a barrier fails\n  drbd: Ensure to not trigger late-new-UUID creation multiple times\n  drbd: Do not Oops when C_STANDALONE when uuid gets generated\n  writeback: fix mixed up arguments to bdi_start_writeback()\n  writeback: fix problem with !CONFIG_BLOCK compilation\n  block: improve automatic native capacity unlocking\n  block: use struct parsed_partitions *state universally in partition check code\n  block,ide: simplify bdops-\u003eset_capacity() to -\u003eunlock_native_capacity()\n  block: restart partition scan after resizing a device\n  buffer: make invalidate_bdev() drain all percpu LRU add caches\n  block: remove all rcu head initializations\n  writeback: fixups for !dirty_writeback_centisecs\n  writeback: bdi_writeback_task() must set task state before calling schedule()\n  writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync\n  drivers/block/drbd: Use kzalloc\n  ...\n"
    },
    {
      "commit": "2a8ba8f032160552a3beffab8aae9019ff477504",
      "tree": "b50f70a3c8f7c2e179e1587d33ea3542d68525f9",
      "parents": [
        "ec2a7587e0a91d5c1afe23a0a73edfce06c5e4e0",
        "e954bc91bdd4bb08b8325478c5004b24a23a3522"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 14:46:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 14:46:51 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (46 commits)\n  random: simplify fips mode\n  crypto: authenc - Fix cryptlen calculation\n  crypto: talitos - add support for sha224\n  crypto: talitos - add hash algorithms\n  crypto: talitos - second prepare step for adding ahash algorithms\n  crypto: talitos - prepare for adding ahash algorithms\n  crypto: n2 - Add Niagara2 crypto driver\n  crypto: skcipher - Add ablkcipher_walk interfaces\n  crypto: testmgr - Add testing for async hashing and update/final\n  crypto: tcrypt - Add speed tests for async hashing\n  crypto: scatterwalk - Fix scatterwalk_done() test\n  crypto: hifn_795x - Rename ablkcipher_walk to hifn_cipher_walk\n  padata: Use get_online_cpus/put_online_cpus in padata_free\n  padata: Add some code comments\n  padata: Flush the padata queues actively\n  padata: Use a timer to handle remaining objects in the reorder queues\n  crypto: shash - Remove usage of CRYPTO_MINALIGN\n  crypto: mv_cesa - Use resource_size\n  crypto: omap - OMAP macros corrected\n  padata: Use get_online_cpus/put_online_cpus\n  ...\n\nFix up conflicts in arch/arm/mach-omap2/devices.c\n"
    },
    {
      "commit": "ec2a7587e0a91d5c1afe23a0a73edfce06c5e4e0",
      "tree": "fff1da958ffca4d0b17b58ac5bbe22fa486ca106",
      "parents": [
        "da7806f9b0579a1150f01ade3b562e543ddcbf2c",
        "da6df07794d92cd159e28e2cb1947d8b33913e2f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 14:40:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 14:40:30 2010 -0700"
      },
      "message": "Merge branch \u0027msm-video\u0027 of git://codeaurora.org/quic/kernel/dwalker/linux-msm\n\n* \u0027msm-video\u0027 of git://codeaurora.org/quic/kernel/dwalker/linux-msm:\n  drivers: video: msm: add include msm_mdp.h\n  drivers: video: msm: default to no\n"
    },
    {
      "commit": "c8d1a126924fcbc1d61ceb830226e0c7afdcc841",
      "tree": "d3f3c850481c33b7f433175e83a189f958b1b868",
      "parents": [
        "d7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6",
        "107c161b7ddeeb7da43509cc6b29211885ccd9af"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 12:48:55 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 12:48:55 2010 -0700"
      },
      "message": "Merge staging-next tree into Linus\u0027s latest version\n\nConflicts:\n\tdrivers/staging/arlan/arlan-main.c\n\tdrivers/staging/comedi/drivers/cb_das16_cs.c\n\tdrivers/staging/cx25821/cx25821-alsa.c\n\tdrivers/staging/dt3155/dt3155_drv.c\n\tdrivers/staging/hv/hv.c\n\tdrivers/staging/netwave/netwave_cs.c\n\tdrivers/staging/wavelan/wavelan.c\n\tdrivers/staging/wavelan/wavelan_cs.c\n\tdrivers/staging/wlags49_h2/wl_cs.c\n\nThis required a bit of hand merging due to the conflicts\nthat happened in the later .34-rc releases, as well as\nsome staging driver changing coming in through other trees\n(v4l and pcmcia).\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b492e95be0ae672922f4734acf3f5d35c30be948",
      "tree": "a8a1e7f035903796e6b8f626add8d269bf989a35",
      "parents": [
        "35f3d14dbbc58447c61e38a162ea10add6b31dc7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 19 21:03:16 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:52 2010 +0200"
      },
      "message": "pipe: set lower and upper limit on max pages in the pipe page array\n\nWe need at least two to guarantee proper POSIX behaviour, so\nnever allow a smaller limit than that.\n\nAlso expose a /proc/sys/fs/pipe-max-pages sysctl file that allows\nroot to define a sane upper limit. Make it default to 16 times the\ndefault size, which is 16 pages.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35f3d14dbbc58447c61e38a162ea10add6b31dc7",
      "tree": "3e03cd540b7dcdac82195c4e76862c0ce6daaaf0",
      "parents": [
        "3d42b3612891baecf709d93f28655a6882a65d41"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 20 10:43:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:40 2010 +0200"
      },
      "message": "pipe: add support for shrinking and growing pipes\n\nThis patch adds F_GETPIPE_SZ and F_SETPIPE_SZ fcntl() actions for\ngrowing and shrinking the size of a pipe and adjusts pipe.c and splice.c\n(and relay and network splice) usage to work with these larger (or smaller)\npipes.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3d42b3612891baecf709d93f28655a6882a65d41",
      "tree": "2110b2846d73d7a3e470a6b813a63fa5e5295526",
      "parents": [
        "4e23a59ed1c5f12e14f7899855f8379b3d42e578"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu May 20 12:14:54 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:01 2010 +0200"
      },
      "message": "drbd: This is now equivalent to drbd release 8.3.8rc1\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "79c4581262e225a7c96d88b632b05ab3b5e9a52c",
      "tree": "8ef030c74ab7e0d0df27cf86195f915efd2832f7",
      "parents": [
        "59534f7298c5e28aaa64e6ed550e247f64ee72ae",
        "99ec28f183daa450faa7bdad6f932364ae325648"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:17:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:17:05 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (92 commits)\n  powerpc: Remove unused \u0027protect4gb\u0027 boot parameter\n  powerpc: Build-in e1000e for pseries \u0026 ppc64_defconfig\n  powerpc/pseries: Make request_ras_irqs() available to other pseries code\n  powerpc/numa: Use ibm,architecture-vec-5 to detect form 1 affinity\n  powerpc/numa: Set a smaller value for RECLAIM_DISTANCE to enable zone reclaim\n  powerpc: Use smt_snooze_delay\u003d-1 to always busy loop\n  powerpc: Remove check of ibm,smt-snooze-delay OF property\n  powerpc/kdump: Fix race in kdump shutdown\n  powerpc/kexec: Fix race in kexec shutdown\n  powerpc/kexec: Speedup kexec hash PTE tear down\n  powerpc/pseries: Add hcall to read 4 ptes at a time in real mode\n  powerpc: Use more accurate limit for first segment memory allocations\n  powerpc/kdump: Use chip-\u003eshutdown to disable IRQs\n  powerpc/kdump: CPUs assume the context of the oopsing CPU\n  powerpc/crashdump: Do not fail on NULL pointer dereferencing\n  powerpc/eeh: Fix oops when probing in early boot\n  powerpc/pci: Check devices status property when scanning OF tree\n  powerpc/vio: Switch VIO Bus PM to use generic helpers\n  powerpc: Avoid bad relocations in iSeries code\n  powerpc: Use common cpu_die (fixes SMP+SUSPEND build)\n  ...\n"
    },
    {
      "commit": "59534f7298c5e28aaa64e6ed550e247f64ee72ae",
      "tree": "b9fef7756abf897d9e1b10950cdf10bf6dfe5cb7",
      "parents": [
        "ac3ee84c604502240122c47b52f0542ec8774f15",
        "b486787ee4797d6e42a9bd3a6f079385ad0f4472"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:14:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:14:52 2010 -0700"
      },
      "message": "Merge branch \u0027drm-for-2.6.35\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-for-2.6.35\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (207 commits)\n  drm/radeon/kms/pm/r600: select the mid clock mode for single head low profile\n  drm/radeon: fix power supply kconfig interaction.\n  drm/radeon/kms: record object that have been list reserved\n  drm/radeon: AGP memory is only I/O if the aperture can be mapped by the CPU.\n  drm/radeon/kms: don\u0027t default display priority to high on rs4xx\n  drm/edid: fix typo in 1600x1200@75 mode\n  drm/nouveau: fix i2c-related init table handlers\n  drm/nouveau: support init table i2c device identifier 0x81\n  drm/nouveau: ensure we\u0027ve parsed i2c table entry for INIT_*I2C* handlers\n  drm/nouveau: display error message for any failed init table opcode\n  drm/nouveau: fix init table handlers to return proper error codes\n  drm/nv50: support fractional feedback divider on newer chips\n  drm/nv50: fix monitor detection on certain chipsets\n  drm/nv50: store full dcb i2c entry from vbios\n  drm/nv50: fix suspend/resume with DP outputs\n  drm/nv50: output calculated crtc pll when debugging on\n  drm/nouveau: dump pll limits entries when debugging is on\n  drm/nouveau: bios parser fixes for eDP boards\n  drm/nouveau: fix a nouveau_bo dereference after it\u0027s been destroyed\n  drm/nv40: remove some completed ctxprog TODOs\n  ...\n"
    },
    {
      "commit": "ac3ee84c604502240122c47b52f0542ec8774f15",
      "tree": "fa74b50e310af6cef3298a052514b2d42b260d6b",
      "parents": [
        "90b9a32d8f441369b2f97a765d2d957b531eb653",
        "4fe1da4ebc18c4c42fa56c228447f68033fce5f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:10:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:10:41 2010 -0700"
      },
      "message": "Merge branch \u0027dbg-early-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027dbg-early-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  echi-dbgp: Add kernel debugger support for the usb debug port\n  earlyprintk,vga,kdb: Fix \\b and \\r for earlyprintk\u003dvga with kdb\n  kgdboc: Add ekgdboc for early use of the kernel debugger\n  x86,early dr regs,kgdb: Allow kernel debugger early dr register access\n  x86,kgdb: Implement early hardware breakpoint debugging\n  x86, kgdb, init: Add early and late debug states\n  x86, kgdb: early trap init for early debug\n"
    },
    {
      "commit": "90b9a32d8f441369b2f97a765d2d957b531eb653",
      "tree": "3146d251a983ba12226e75c121613de6f051af8b",
      "parents": [
        "8b108c609adefd98577c35f0a41497a610041a6c",
        "4402c153cb9c549cd21d6007ef0dfac50c8d148d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "message": "Merge branch \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: (25 commits)\n  kdb,debug_core: Allow the debug core to receive a panic notification\n  MAINTAINERS: update kgdb, kdb, and debug_core info\n  debug_core,kdb: Allow the debug core to process a recursive debug entry\n  printk,kdb: capture printk() when in kdb shell\n  kgdboc,kdb: Allow kdb to work on a non open console port\n  kgdb: Add the ability to schedule a breakpoint via a tasklet\n  mips,kgdb: kdb low level trap catch and stack trace\n  powerpc,kgdb: Introduce low level trap catching\n  x86,kgdb: Add low level debug hook\n  kgdb: remove post_primary_code references\n  kgdb,docs: Update the kgdb docs to include kdb\n  kgdboc,keyboard: Keyboard driver for kdb with kgdb\n  kgdb: gdb \"monitor\" -\u003e kdb passthrough\n  sparc,sunzilog: Add console polling support for sunzilog serial driver\n  sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code\n  kgdb,8250,pl011: Return immediately from console poll\n  kgdb: core changes to support kdb\n  kdb: core for kgdb back end (2 of 2)\n  kdb: core for kgdb back end (1 of 2)\n  kgdb,blackfin: Add in kgdb_arch_set_pc for blackfin\n  ...\n"
    },
    {
      "commit": "c2c4986eddaa7dc3d036cb2bfa5c8c5f1f2492a0",
      "tree": "4787499c06028f73c770daadae772c9af7c3499c",
      "parents": [
        "b403a98e260f3a8c7c33f58a07c7ae549852170f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 20 09:18:47 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 20:01:03 2010 +0200"
      },
      "message": "writeback: fix problem with !CONFIG_BLOCK compilation\n\nWhen CONFIG_BLOCK isn\u0027t enabled:\n\nmm/page-writeback.c: In function \u0027laptop_mode_timer_fn\u0027:\nmm/page-writeback.c:708: error: dereferencing pointer to incomplete type\nmm/page-writeback.c:709: error: dereferencing pointer to incomplete type\n\nFix this by essentially eliminating the laptop sync handlers when\nCONFIG_BLOCK isn\u0027t set, as most are only used from the block layer code.\nThe exception is laptop_sync_completion() which is used from sys_sync(),\nmake that an empty declaration in that case.\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c3e33e043f5e9c583aa59d5591a614b2a8243d3a",
      "tree": "fe8fef91dafb670fad1f433ae48514472b8d23e5",
      "parents": [
        "56bca01738733709bef076e2e97bbd01e5659f24"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat May 15 20:09:29 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 20:01:02 2010 +0200"
      },
      "message": "block,ide: simplify bdops-\u003eset_capacity() to -\u003eunlock_native_capacity()\n\nbdops-\u003eset_capacity() is unnecessarily generic.  All that\u0027s required\nis a simple one way notification to lower level driver telling it to\ntry to unlock native capacity.  There\u0027s no reason to pass in target\ncapacity or return the new capacity.  The former is always the\ninherent native capacity and the latter can be handled via the usual\ndevice resize / revalidation path.  In fact, the current API is always\nused that way.\n\nReplace -\u003eset_capacity() with -\u003eunlock_native_capacity() which take\nonly @disk and doesn\u0027t return anything.  IDE which is the only current\nuser of the API is converted accordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6423104b6a1e6f0c18be60e8c33f02d263331d5e",
      "tree": "e22957400e9679bf82b62e03d6bd831181053945",
      "parents": [
        "f9eadbbd424c083b8005c7b738f644611b9ef489"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 20:00:35 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 20:00:35 2010 +0200"
      },
      "message": "writeback: fixups for !dirty_writeback_centisecs\n\nCommit 69b62d01 fixed up most of the places where we would enter\nbusy schedule() spins when disabling the periodic background\nwriteback. This fixes up the sb timer so that it doesn\u0027t get\nhammered on with the delay disabled, and ensures that it gets\nrearmed if needed when /proc/sys/vm/dirty_writeback_centisecs\ngets modified.\n\nbdi_forker_task() also needs to check for !dirty_writeback_centisecs\nand use schedule() appropriately, fix that up too.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8b108c609adefd98577c35f0a41497a610041a6c",
      "tree": "f1552fdc5bf0ebcc484a88f01cd3864113adf25c",
      "parents": [
        "7ce1418f95e918cfc5ad36e3ec3431145c768cd0",
        "73d5e8f77e88a4d3a154dfdbb4ed2cf461b7bf21"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:51:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:51:03 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (59 commits)\n  HID: fix up \u0027EMBEDDED\u0027 mess in Kconfig\n  HID: roccat: cleanup preprocessor macros\n  HID: roccat: refactor special event handling\n  HID: roccat: fix special button support\n  HID: roccat: Correctly mark init and exit functions\n  HID: hidraw: Use Interrupt Endpoint for OUT Transfers if Available\n  HID: hid-samsung: remove redundant key mappings\n  HID: add omitted hid-zydacron.c file\n  HID: hid-samsung: add support for Creative Desktop Wireless 6000\n  HID: picolcd: Eliminate use after free\n  HID: Zydacron Remote Control driver\n  HID: Use kmemdup\n  HID: magicmouse: fix input registration\n  HID: make Prodikeys driver standalone config option\n  HID: Prodikeys PC-MIDI HID Driver\n  HID: hidraw: fix indentation\n  HID: ntrig: add filtering module parameters\n  HID: ntrig: add sysfs access to filter parameters\n  HID: ntrig: add sensitivity and responsiveness support\n  HID: add multi-input quirk for eGalax Touchcontroller\n  ...\n"
    },
    {
      "commit": "7ce1418f95e918cfc5ad36e3ec3431145c768cd0",
      "tree": "10fd5bf66a5d0cb71cbf0ffb17b354969a7cc4c4",
      "parents": [
        "a6f039869ff87e0a8d621e31d14bbb120c1dfa93",
        "1907131bbeabb33db313bad34f3ec1a5faedbd64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:28 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (31 commits)\n  dquot: Detect partial write error to quota file in write_blk() and add printk_ratelimit for quota error messages\n  ocfs2: Fix lock inversion in quotas during umount\n  ocfs2: Use __dquot_transfer to avoid lock inversion\n  ocfs2: Fix NULL pointer deref when writing local dquot\n  ocfs2: Fix estimate of credits needed for quota allocation\n  ocfs2: Fix quota locking\n  ocfs2: Avoid unnecessary block mapping when refreshing quota info\n  ocfs2: Do not map blocks from local quota file on each write\n  quota: Refactor dquot_transfer code so that OCFS2 can pass in its references\n  quota: unify quota init condition in setattr\n  quota: remove sb_has_quota_active in get/set_info\n  quota: unify -\u003eset_dqblk\n  quota: unify -\u003eget_dqblk\n  ext3: make barrier options consistent with ext4\n  quota: Make quota stat accounting lockless.\n  suppress warning: \"quotatypes\" defined but not used\n  ext3: Fix waiting on transaction during fsync\n  jbd: Provide function to check whether transaction will issue data barrier\n  ufs: add ufs speciffic -\u003esetattr call\n  BKL: Remove BKL from ext2 filesystem\n  ...\n"
    },
    {
      "commit": "7f02ab3ce3c7e093c414fcbd93bdc591cc4419d0",
      "tree": "b92453c1b0aa1234330855c5ac96627ebe8c82da",
      "parents": [
        "d6fb1db02e02aea98f2d7e121fd30e24c84639d6",
        "0dbb5671921b6dad2396090ef81a3efee1ae7da1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:48 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (25 commits)\n  serial: Tidy REMOTE_DEBUG\n  serial: isicomm: handle running out of slots\n  serial: bfin_sport_uart: Use resource size to fix off-by-one error\n  tty: fix obsolete comment on tty_insert_flip_string_fixed_flag\n  serial: Add driver for the Altera UART\n  serial: Add driver for the Altera JTAG UART\n  serial: timbuart: make sure last byte is sent when port is closed\n  serial: two branches the same in timbuart_set_mctrl()\n  serial: uartlite: move from byte accesses to word accesses\n  tty: n_gsm: depends on NET\n  tty: n_gsm line discipline\n  serial: TTY: new ldiscs for staging\n  serial: bfin_sport_uart: drop redundant cpu depends\n  serial: bfin_sport_uart: drop the experimental markings\n  serial: bfin_sport_uart: pull in bfin_sport.h for SPORT defines\n  serial: bfin_sport_uart: only enable SPORT TX if data is to be sent\n  serial: bfin_sport_uart: drop useless status masks\n  serial: bfin_sport_uart: zero sport_uart_port if allocated dynamically\n  serial: bfin_sport_uart: protect changes to uart_port\n  serial: bfin_sport_uart: add support for CTS/RTS via GPIOs\n  ...\n"
    },
    {
      "commit": "d6fb1db02e02aea98f2d7e121fd30e24c84639d6",
      "tree": "865546f0388c40d52cf98febe2c6d21039915ea2",
      "parents": [
        "b4e6b09738fde057ce885703705f71cc953d0512",
        "a1b3f594dc5faab91d3a218c7019e9b5edd9fe1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:32 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (38 commits)\n  net: Expose all network devices in a namespaces in sysfs\n  hotplug: netns aware uevent_helper\n  kobj: Send hotplug events in the proper namespace.\n  netlink: Implment netlink_broadcast_filtered\n  net/sysfs: Fix the bitrot in network device kobject namespace support\n  netns: Teach network device kobjects which namespace they are in.\n  kobject: Send hotplug events in all network namespaces\n  driver-core: fix Typo in drivers/base/core.c for CONFIG_MODULE\n  pci: check caps from sysfs file open to read device dependent config space\n  sysfs: add struct file* to bin_attr callbacks\n  sysfs: Remove usage of S_BIAS to avoid merge conflict with the vfs tree\n  sysfs: Don\u0027t use enums in inline function declaration.\n  sysfs-namespaces: add a high-level Documentation file\n  sysfs: Comment sysfs directory tagging logic\n  driver core: Implement ns directory support for device classes.\n  sysfs: Implement sysfs_delete_link\n  sysfs: Add support for tagged directories with untagged members.\n  sysfs: Implement sysfs tagged directory support.\n  kobj: Add basic infrastructure for dealing with namespaces.\n  sysfs: Remove double free sysfs_get_sb\n  ...\n"
    },
    {
      "commit": "b4e6b09738fde057ce885703705f71cc953d0512",
      "tree": "aacaf3adc99f19281d808d7c5a45ea47161be675",
      "parents": [
        "70ca0a42fe1702ac0784386c44b05d18ee5f1f9e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri May 21 09:03:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:12 2010 -0700"
      },
      "message": "interrupt.h: fix fatal kernel-doc error\n\nFix kernel-doc fatal error:\n/** beginning a non-kernel-doc comment block:\n(That alone does not kill kernel-doc, but the \u0027enum\u0027 was\ntotally confusing to it.)\n\nError(/lnx/src/TMP/linux-2.6.34-git6//include/linux/interrupt.h:88): cannot understand prototype: \u0027enum \u0027\nmake[2]: *** [Documentation/DocBook/genericirq.xml] Error 1\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc8e5f07392f05c47c8bdeff4f7098db440d065c",
      "tree": "5ab56dabd75912267764849a594ec2f271fd4352",
      "parents": [
        "12755627bdcddcdb30a1bfb9a09395a52b1d6838"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 19:58:50 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: Refactor dquot_transfer code so that OCFS2 can pass in its references\n\nCurrently, __dquot_transfer() acquires its own references of dquot structures\nthat will be put into inode. But for OCFS2, this creates a lock inversion\nbetween dq_lock (waited on in dqget) and transaction start (started in\nocfs2_setattr). Currently, deadlock is impossible because dq_lock is acquired\nonly during dquot_acquire and dquot_release and we already hold a reference to\ndquot structures in ocfs2_setattr so neither of these functions can be called\nwhile we call dquot_transfer. But this is rather subtle and it is hard to teach\nlockdep about it. So provide __dquot_transfer function that can be passed dquot\nreferences directly. OCFS2 can then pass acquired dquot references directly to\n__dquot_transfer with proper locking.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "12755627bdcddcdb30a1bfb9a09395a52b1d6838",
      "tree": "b2d69696975d5457648020324f683a45302fbf3c",
      "parents": [
        "fcbc59f96e38a0999e827be9d04d46b62b53b20a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Apr 08 22:04:20 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: unify quota init condition in setattr\n\nQuota must being initialized if size or uid/git changes requested.\nBut initialization performed in two different places:\nin case of i_size file system is responsible for dquot init\n, but in case of uid/gid init will be called internally in\ndquot_transfer().\nThis ambiguity makes code harder to understand.\nLet\u0027s move this logic to one common helper function.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c472b43275976512e4c1c32da5ced03f339cb380",
      "tree": "9159fbfd1190456e8b3e699b856022c23f6ec10c",
      "parents": [
        "b9b2dd36c1bc64430f8e13990ab135cbecc10076"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu May 06 17:05:17 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:44 2010 +0200"
      },
      "message": "quota: unify -\u003eset_dqblk\n\nPass the larger struct fs_disk_quota to the -\u003eset_dqblk operation so\nthat the Q_SETQUOTA and Q_XSETQUOTA operations can be implemented\nwith a single filesystem operation and we can retire the -\u003eset_xquota\noperation.  The additional information (RT-subvolume accounting and\nwarn counts) are left zero for the VFS quota implementation.\n\nAdd new fieldmask values for setting the numer of blocks and inodes\nvalues which is required for the VFS quota, but wasn\u0027t for XFS.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b9b2dd36c1bc64430f8e13990ab135cbecc10076",
      "tree": "051bb6a238c9ff98fe135de3e8591c65cf242d46",
      "parents": [
        "0636c73ee7b129f77f577aaaefc8dde057be6d18"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu May 06 17:04:58 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:43 2010 +0200"
      },
      "message": "quota: unify -\u003eget_dqblk\n\nPass the larger struct fs_disk_quota to the -\u003eget_dqblk operation so\nthat the Q_GETQUOTA and Q_XGETQUOTA operations can be implemented\nwith a single filesystem operation and we can retire the -\u003eget_xquota\noperation.  The additional information (RT-subvolume accounting and\nwarn counts) are left zero for the VFS quota implementation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dde9588853b1bde542eab247f8838c472806688f",
      "tree": "9f9c68bf63120056517bbfce78b75e6820cc4c4b",
      "parents": [
        "da8d1ba22fa1fd0c0e541a43d75ebb062589b14b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Apr 26 20:03:33 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "quota: Make quota stat accounting lockless.\n\nQuota stats is mostly writable data structure. Let\u0027s alloc percpu\nbucket for each value.\n\nNOTE: dqstats_read() function is racy against dqstats_{inc,dec}\nand may return inconsistent value. But this is ok since absolute\naccuracy is not required.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "03f4d804a1b4748885dc4613a4afe10089a731c8",
      "tree": "f2d7be9a0205496f14d61e6a8fe62277e653fab8",
      "parents": [
        "311b9549ed2bb0f2c2257781c3e88cb00505e80e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 15 22:16:24 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:40 2010 +0200"
      },
      "message": "jbd: Provide function to check whether transaction will issue data barrier\n\nProvide a function which returns whether a transaction with given tid\nwill send a barrier to the filesystem device. The function will be used\nby ext3 to detect whether fsync needs to send a separate barrier or not.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c15271f4e74cd6dbdf461335d6d1450949c4b956",
      "tree": "585738bde9a80e580686072d02cd6c1e5d261c1e",
      "parents": [
        "4c96a68bfc110d87b28bcee4c395a7b4d26ed67a"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:38 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:39 2010 +0200"
      },
      "message": "ext2: Add ext2_sb_info s_lock spinlock\n\nAdd a spinlock that protects against concurrent modifications of\ns_mount_state, s_blocks_last, s_overhead_last and the content of the\nsuperblock\u0027s buffer pointed to by sbi-\u003es_es. The spinlock is now used in\next2_xattr_update_super_block() which was setting the\nEXT2_FEATURE_COMPAT_EXT_ATTR flag on the superblock without protection\nbefore. Likewise the spinlock is used in ext2_show_options() to have a\nconsistent view of the mount options.\n\nThis is a preparation patch for removing the BKL from ext2 in the next\npatch.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "910a7e905f36e51a17d6e8bb4ad6dcd5ac5f1d53",
      "tree": "63587b03de37a6b9a6b58c203719a24d57edf850",
      "parents": [
        "d6523ddf2376f39eaa89a4d68a33052d20c138b9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 04 17:36:46 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:32 2010 -0700"
      },
      "message": "netlink: Implment netlink_broadcast_filtered\n\nWhen netlink sockets are used to convey data that is in a namespace\nwe need a way to select a subset of the listening sockets to deliver\nthe packet to.  For the network namespace we have been doing this\nby only transmitting packets in the correct network namespace.\n\nFor data belonging to other namespaces netlink_bradcast_filtered\nprovides a mechanism that allows us to examine the destination\nsocket and to decide if we should transmit the specified packet\nto it.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "608b4b9548dedf4185ca47edcaae4bff2ceb62de",
      "tree": "6855a119e99a4e0142c17b8cc4aa08968f3f6ab6",
      "parents": [
        "07e98962fa778b9782c8845dfcb06a84cc050744"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 04 17:36:45 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:32 2010 -0700"
      },
      "message": "netns: Teach network device kobjects which namespace they are in.\n\nThe problem.  Network devices show up in sysfs and with the network\nnamespace active multiple devices with the same name can show up in\nthe same directory, ouch!\n\nTo avoid that problem and allow existing applications in network namespaces\nto see the same interface that is currently presented in sysfs, this\npatch enables the tagging directory support in sysfs.\n\nBy using the network namespace pointers as tags to separate out the\nthe sysfs directory entries we ensure that we don\u0027t have conflicts\nin the directories and applications only see a limited set of\nthe network devices.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    }
  ],
  "next": "2c3c8bea608866d8bd9dcf92657d57fdcac011c5"
}
