)]}'
{
  "log": [
    {
      "commit": "0b2d0724e26a335cd326eb7ad552c109116a8795",
      "tree": "fabd651e35f3fbc60d4ca9ca7fbdad0a04596d43",
      "parents": [
        "0f1b1fd86f6fd662e04da3e82a6780b226fcd0d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 23 15:03:28 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:52 2011 -0400"
      },
      "message": "fs: simplify iget \u0026 friends\n\nMerge get_new_inode/get_new_inode_fast into iget5_locked/iget_locked\nas those were the only callers.  Remove the internal ifind/ifind_fast\nhelpers - ifind_fast only had a single caller, and ifind had two\ncallers wanting it to do different things.  Also clean up the comments\nin this area to focus on information important to a developer trying\nto use it, instead of overloading them with implementation details.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0f1b1fd86f6fd662e04da3e82a6780b226fcd0d1",
      "tree": "422e2923193f5ac4ea2a6864a6635878ad58c43b",
      "parents": [
        "67a23c494621ff1d5431c3bc320947865b224625"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:43 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:51 2011 -0400"
      },
      "message": "fs: pull inode-\u003ei_lock up out of writeback_single_inode\n\nFirst thing we do in writeback_single_inode() is take the i_lock and\nthe last thing we do is drop it. A caller already holds the i_lock,\nso pull the i_lock out of writeback_single_inode() to reduce the\nround trips on this lock during inode writeback.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67a23c494621ff1d5431c3bc320947865b224625",
      "tree": "cce0868fc73031d8b0addc4dc7412d49ee9ec370",
      "parents": [
        "a66979abad090b2765a6c6790c9fdeab996833f2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:42 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:51 2011 -0400"
      },
      "message": "fs: rename inode_lock to inode_hash_lock\n\nAll that remains of the inode_lock is protecting the inode hash list\nmanipulation and traversals. Rename the inode_lock to\ninode_hash_lock to reflect it\u0027s actual function.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a66979abad090b2765a6c6790c9fdeab996833f2",
      "tree": "e48b2d0fac8f96456286a503aeeb952620234961",
      "parents": [
        "55fa6091d83160ca772fc37cebae45d42695a708"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:41 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:51 2011 -0400"
      },
      "message": "fs: move i_wb_list out from under inode_lock\n\nProtect the inode writeback list with a new global lock\ninode_wb_list_lock and use it to protect the list manipulations and\ntraversals. This lock replaces the inode_lock as the inodes on the\nlist can be validity checked while holding the inode-\u003ei_lock and\nhence the inode_lock is no longer needed to protect the list.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "55fa6091d83160ca772fc37cebae45d42695a708",
      "tree": "4df49f372032e30449e1a2dd64daf443e20b781c",
      "parents": [
        "f283c86afe6aa70b733d1ecebad5d9464943b774"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:40 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:32 2011 -0400"
      },
      "message": "fs: move i_sb_list out from under inode_lock\n\nProtect the per-sb inode list with a new global lock\ninode_sb_list_lock and use it to protect the list manipulations and\ntraversals. This lock replaces the inode_lock as the inodes on the\nlist can be validity checked while holding the inode-\u003ei_lock and\nhence the inode_lock is no longer needed to protect the list.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f283c86afe6aa70b733d1ecebad5d9464943b774",
      "tree": "beaeca959996f2d8a00a997c56932dc5916bfec8",
      "parents": [
        "02afc410f363f98ac4f186341e38dcec13fc0e60"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:39 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:32 2011 -0400"
      },
      "message": "fs: remove inode_lock from iput_final and prune_icache\n\nNow that inode state changes are protected by the inode-\u003ei_lock and\nthe inode LRU manipulations by the inode_lru_lock, we can remove the\ninode_lock from prune_icache and the initial part of iput_final().\n\ninstead of using the inode_lock to protect the inode during\niput_final, use the inode-\u003ei_lock instead. This protects the inode\nagainst new references being taken while we change the inode state\nto I_FREEING, as well as preventing prune_icache from grabbing the\ninode while we are manipulating it. Hence we no longer need the\ninode_lock in iput_final prior to setting I_FREEING on the inode.\n\nFor prune_icache, we no longer need the inode_lock to protect the\nLRU list, and the inodes themselves are protected against freeing\nraces by the inode-\u003ei_lock. Hence we can lift the inode_lock from\nprune_icache as well.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02afc410f363f98ac4f186341e38dcec13fc0e60",
      "tree": "2c5d5b2f1556806da135f2323b4df4d7d72d3734",
      "parents": [
        "b2b2af8e614b4dcd8aca1369d82ce5ad0461a7b1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:38 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:31 2011 -0400"
      },
      "message": "fs: Lock the inode LRU list separately\n\nIntroduce the inode_lru_lock to protect the inode_lru list. This\nlock is nested inside the inode-\u003ei_lock to allow the inode to be\nadded to the LRU list in iput_final without needing to deal with\nlock inversions. This keeps iput_final() clean and neat.\n\nFurther, where marking the inode I_FREEING and removing it from the\nLRU, move the LRU list manipulation within the inode-\u003ei_lock to keep\nthe list manipulation consistent with iput_final. This also means\nthat most of the open coded LRU list removal + unused inode\naccounting can now use the inode_lru_list_del() wrappers which\ncleans the code up further.\n\nHowever, this locking change means what the LRU traversal in\nprune_icache() inverts this lock ordering and needs to use trylock\nsemantics on the inode-\u003ei_lock to avoid deadlocking. In these cases,\nif we fail to lock the inode we move it to the back of the LRU to\nprevent spinning on it.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b2b2af8e614b4dcd8aca1369d82ce5ad0461a7b1",
      "tree": "08b810e4df93a0705cc3c430a327344ae46ebfc8",
      "parents": [
        "250df6ed274d767da844a5d9f05720b804240197"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:37 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:31 2011 -0400"
      },
      "message": "fs: factor inode disposal\n\nWe have a couple of places that dispose of inodes. factor the\ndisposal into evict() to isolate this code and make it simpler to\npeel away the inode_lock from the code.\n\nWhile doing this, change the logic flow in iput_final() to separate\nthe different cases that need to be handled to make the transitions\nthe inode goes through more obvious.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "250df6ed274d767da844a5d9f05720b804240197",
      "tree": "b74f49a86c4451d9e3e82f90e3f791163025be21",
      "parents": [
        "3dc8fe4dca9cd3e4aa828ed36451e2bcfd2350da"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:36 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:31 2011 -0400"
      },
      "message": "fs: protect inode-\u003ei_state with inode-\u003ei_lock\n\nProtect inode state transitions and validity checks with the\ninode-\u003ei_lock. This enables us to make inode state transitions\nindependently of the inode_lock and is the first step to peeling\naway the inode_lock from the code.\n\nThis requires that __iget() is done atomically with i_state checks\nduring list traversals so that we don\u0027t race with another thread\nmarking the inode I_FREEING between the state check and grabbing the\nreference.\n\nAlso remove the unlock_new_inode() memory barrier optimisation\nrequired to avoid taking the inode_lock when clearing I_NEW.\nSimplify the code by simply taking the inode-\u003ei_lock around the\nstate change and wakeup. Because the wakeup is no longer tricky,\nremove the wake_up_inode() function and open code the wakeup where\nnecessary.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3dc8fe4dca9cd3e4aa828ed36451e2bcfd2350da",
      "tree": "9350ad63804b66df6f94781335d509aa5ae8f557",
      "parents": [
        "e7854723d0f3626f260c880d8db8e5136f29db19"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Fri Mar 25 01:51:37 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:54:35 2011 -0400"
      },
      "message": "autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()\n\nIn fs/autofs4/dev-ioctl.c::autofs_dev_ioctl_setpipefd() we call fget(),\nwhich may return NULL, but we do not explicitly test for that NULL return\nso we may end up dereferencing a NULL pointer - bad.\n\nWhen I originally submitted this patch I had chosen EBUSY as the return\nvalue to use if this happens. Ian Kent was kind enough to explain why that\nwould most likely be wrong and why EBADF should most likely be used\ninstead. This version of the patch uses EBADF.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7854723d0f3626f260c880d8db8e5136f29db19",
      "tree": "3fe4f138922f51d8214ccc6bd2fb9ed4dfa1f234",
      "parents": [
        "83fb96bfc792e5ca693e53f7fd878d51b8493da8"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Mar 25 01:51:31 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:54:35 2011 -0400"
      },
      "message": "autofs4 - remove autofs4_lock\n\nThe autofs4_lock introduced by the rcu-walk changes has unnecessarily\nbroad scope. The locking is better handled by the per-autofs super\nblock lookup_lock.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "83fb96bfc792e5ca693e53f7fd878d51b8493da8",
      "tree": "315b3d418e9e4cf046195a6fbe12e9e9537d54ee",
      "parents": [
        "d4a85e35d1465da055264407d8395e84483084e6"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Mar 25 01:51:25 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:54:34 2011 -0400"
      },
      "message": "autofs4 - fix d_manage() return on rcu-walk\n\nThe daemon never needs to block and, in the rcu-walk case an error\nreturn isn\u0027t used, so always return zero.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d4a85e35d1465da055264407d8395e84483084e6",
      "tree": "d3bdbf9edd438ecd1a6de1bc30b9c13b466559e5",
      "parents": [
        "f9398c233e3201874395eea8558eb616fb198648"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Mar 25 01:51:20 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:54:34 2011 -0400"
      },
      "message": "autofs4 - fix autofs4_expire_indirect() traversal\n\nThe vfs-scale changes changed the traversal used in\nautofs4_expire_indirect() from a list to a depth first tree traversal\nwhich isn\u0027t right.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f9398c233e3201874395eea8558eb616fb198648",
      "tree": "adf805206a5bba08a44878dba61256a9dca6120d",
      "parents": [
        "3c3199852905ceb90a70e98777e71d369a5f0823"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Mar 25 01:51:14 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:54:34 2011 -0400"
      },
      "message": "autofs4 - fix dentry leak in autofs4_expire_direct()\n\nThere is a missing dput() when returning from autofs4_expire_direct()\nwhen we see that the dentry is already a pending mount.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3c3199852905ceb90a70e98777e71d369a5f0823",
      "tree": "aec40f3721955394587fc4ad364606161bc98cc5",
      "parents": [
        "62a7375e5d77d654695297c4b39d5d740d901184"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Mar 25 01:51:08 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:54:34 2011 -0400"
      },
      "message": "autofs4 - reinstate last used update on access\n\nWhen direct (and offset) mounts were introduced the the last used\ntimeout could no longer be updated in -\u003ed_revalidate(). This is\nbecause covered direct mounts would be followed over without calling\nthe autofs file system. As a result the definition of the busyness\ncheck for all entries was changed to be \"actually busy\" being an open\nfile or working directory within the automount. But now we have a call\nback in the follow so the last used update on any access can be\nre-instated. This requires DCACHE_MANAGE_TRANSIT to always be set.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "62a7375e5d77d654695297c4b39d5d740d901184",
      "tree": "b479c60a43f22e3bb99d9ebf1af89de2a7020673",
      "parents": [
        "b81a618dcd3ea99de292dbe624f41ca68f464376"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Mar 25 01:51:02 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 14:24:32 2011 -0400"
      },
      "message": "vfs - check non-mountpoint dentry might block in __follow_mount_rcu()\n\nWhen following a mount in rcu-walk mode we must check if the incoming dentry\nis telling us it may need to block, even if it isn\u0027t actually a mountpoint.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b81a618dcd3ea99de292dbe624f41ca68f464376",
      "tree": "c5fbe44f944da9d7dc0c224116be77094d379c8a",
      "parents": [
        "2f284c846331fa44be1300a3c2c3e85800268a00",
        "a9712bc12c40c172e393f85a9b2ba8db4bf59509"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 20:51:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 20:51:42 2011 -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:\n  deal with races in /proc/*/{syscall,stack,personality}\n  proc: enable writing to /proc/pid/mem\n  proc: make check_mem_permission() return an mm_struct on success\n  proc: hold cred_guard_mutex in check_mem_permission()\n  proc: disable mem_write after exec\n  mm: implement access_remote_vm\n  mm: factor out main logic of access_process_vm\n  mm: use mm_struct to resolve gate vma\u0027s in __get_user_pages\n  mm: arch: rename in_gate_area_no_task to in_gate_area_no_mm\n  mm: arch: make in_gate_area take an mm_struct instead of a task_struct\n  mm: arch: make get_gate_vma take an mm_struct instead of a task_struct\n  x86: mark associated mm when running a task in 32 bit compatibility mode\n  x86: add context tag to mark mm when running a task in 32-bit compatibility mode\n  auxv: require the target to be tracable (or yourself)\n  close race in /proc/*/environ\n  report errors in /proc/*/*map* sanely\n  pagemap: close races with suid execve\n  make sessionid permissions in /proc/*/task/* match those in /proc/*\n  fix leaks in path_lookupat()\n\nFix up trivial conflicts in fs/proc/base.c\n"
    },
    {
      "commit": "2f284c846331fa44be1300a3c2c3e85800268a00",
      "tree": "be2704e6157613bd2cc2a278559a6c86a0b644f4",
      "parents": [
        "93a72052be81823fa1584b9be037d51924f9efa4",
        "6f82f4db80189281a8ac42f2e72396accb719b57"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 20:37:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 20:37:26 2011 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (35 commits)\n  ARM: Update (and cut down) mach-types\n  ARM: 6771/1: vexpress: add support for multiple core tiles\n  ARM: 6797/1: hw_breakpoint: Fix newlines in WARNings\n  ARM: 6751/1: vexpress: select applicable errata workarounds in Kconfig\n  ARM: 6753/1: omap4: Enable ARM local timers with OMAP4430 es1.0 exception\n  ARM: 6759/1: smp: Select local timers vs broadcast timer support runtime\n  ARM: pgtable: add pud-level code\n  ARM: 6673/1: LPAE: use phys_addr_t instead of unsigned long for start of membanks\n  ARM: Use long long format when printing meminfo physical addresses\n  ARM: integrator: add Integrator/CP sched_clock support\n  ARM: realview/vexpress: consolidate SMP bringup code\n  ARM: realview/vexpress: consolidate localtimer support\n  ARM: integrator/versatile: consolidate FPGA IRQ handling code\n  ARM: rationalize versatile family Kconfig/Makefile\n  ARM: realview: remove old AMBA device DMA definitions\n  ARM: versatile: remove old AMBA device DMA definitions\n  ARM: vexpress: use new init_early for clock tree and sched_clock init\n  ARM: realview: use new init_early for clock tree and sched_clock init\n  ARM: versatile: use new init_early for clock tree and sched_clock init\n  ARM: integrator: use new init_early for clock tree init\n  ...\n"
    },
    {
      "commit": "93a72052be81823fa1584b9be037d51924f9efa4",
      "tree": "4f5c824c8fe3fb737e27b91bfd60c10d092dc3e9",
      "parents": [
        "8547727756a7322b99aa313ce50fe15d8f858872"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Wed Mar 23 16:43:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:19 2011 -0700"
      },
      "message": "crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn\n\nThe Xen PV drivers in a crashed HVM guest can not connect to the dom0\nbackend drivers because both frontend and backend drivers are still in\nconnected state.  To run the connection reset function only in case of a\ncrashdump, the is_kdump_kernel() function needs to be available for the PV\ndriver modules.\n\nConsolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn into\nkernel/crash_dump.c Also export elfcorehdr_addr to make is_kdump_kernel()\nusable for modules.\n\nLeave \u0027elfcorehdr\u0027 as early_param().  This changes powerpc from __setup()\nto early_param().  It adds an address range check from x86 also on ia64\nand powerpc.\n\n[akpm@linux-foundation.org: additional #includes]\n[akpm@linux-foundation.org: remove elfcorehdr_addr export]\n[akpm@linux-foundation.org: fix for Tejun\u0027s mm/nobootmem.c changes]\nSigned-off-by: Olaf Hering \u003colaf@aepfle.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8547727756a7322b99aa313ce50fe15d8f858872",
      "tree": "99701c2c236fe05bb8eae762ff474d586720b937",
      "parents": [
        "f9b182e24ecb2b3bb33340f053ba31c8c4e1d895"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed Mar 23 16:43:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:18 2011 -0700"
      },
      "message": "remove dma64_addr_t\n\nThere is no user now.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@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": "f9b182e24ecb2b3bb33340f053ba31c8c4e1d895",
      "tree": "17964defa2bd5104dc49994385f627d70c5dfdef",
      "parents": [
        "2e1496707560ecf98e9b0604622c0990f94861d3"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Wed Mar 23 16:43:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:14 2011 -0700"
      },
      "message": "taskstats: use appropriate printk priority level\n\nprintk()s without a priority level default to KERN_WARNING.  To reduce\nnoise at KERN_WARNING, this patch set the priority level appriopriately\nfor unleveled printks()s.  This should be useful to folks that look at\ndmesg warnings closely.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e795b71799ff0b27365020c9ddaa25d0d83f99c8",
      "tree": "f3b628c2366f181380a8fbcd490910eb086a7b8e",
      "parents": [
        "b0e77598f87107001a00b8a4ece9c95e4254ccc4"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:08 2011 -0700"
      },
      "message": "userns: userns: check user namespace for task-\u003efile uid equivalence checks\n\nCheat for now and say all files belong to init_user_ns.  Next step will be\nto let superblocks belong to a user_ns, and derive inode_userns(inode)\nfrom inode-\u003ei_sb-\u003es_user_ns.  Finally we\u0027ll introduce more flexible\narrangements.\n\nChangelog:\n\tFeb 15: make is_owner_or_cap take const struct inode\n\tFeb 23: make is_owner_or_cap bool\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0e77598f87107001a00b8a4ece9c95e4254ccc4",
      "tree": "2738276570e4faa7c92a64521c192f04dca93801",
      "parents": [
        "b515498f5bb5f38fc0e390b4ff7d00b6077de127"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:08 2011 -0700"
      },
      "message": "userns: user namespaces: convert several capable() calls\n\nCAP_IPC_OWNER and CAP_IPC_LOCK can be checked against current_user_ns(),\nbecause the resource comes from current\u0027s own ipc namespace.\n\nsetuid/setgid are to uids in own namespace, so again checks can be against\ncurrent_user_ns().\n\nChangelog:\n\tJan 11: Use task_ns_capable() in place of sched_capable().\n\tJan 11: Use nsown_capable() as suggested by Bastian Blank.\n\tJan 11: Clarify (hopefully) some logic in futex and sched.c\n\tFeb 15: use ns_capable for ipc, not nsown_capable\n\tFeb 23: let copy_ipcs handle setting ipc_ns-\u003euser_ns\n\tFeb 23: pass ns down rather than taking it from current\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b515498f5bb5f38fc0e390b4ff7d00b6077de127",
      "tree": "b76dfc56415adee9aec5d8619124059ed3ab02a5",
      "parents": [
        "fc832ad3645f0507f24d11752544525a50a83c71"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:07 2011 -0700"
      },
      "message": "userns: add a user namespace owner of ipc ns\n\nChangelog:\n\tFeb 15: Don\u0027t set new ipc-\u003euser_ns if we didn\u0027t create a new\n\t\tipc_ns.\n\tFeb 23: Move extern declaration to ipc_namespace.h, and group\n\t\tfwd declarations at top.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc832ad3645f0507f24d11752544525a50a83c71",
      "tree": "d02dd477d94cdeaa42286dbeffcb60467fb30fb7",
      "parents": [
        "3263245de48344ad7bdd0e7256bf1606d2592f88"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:06 2011 -0700"
      },
      "message": "userns: user namespaces: convert all capable checks in kernel/sys.c\n\nThis allows setuid/setgid in containers.  It also fixes some corner cases\nwhere kernel logic foregoes capability checks when uids are equivalent.\nThe latter will need to be done throughout the whole kernel.\n\nChangelog:\n\tJan 11: Use nsown_capable() as suggested by Bastian Blank.\n\tJan 11: Fix logic errors in uid checks pointed out by Bastian.\n\tFeb 15: allow prlimit to current (was regression in previous version)\n\tFeb 23: remove debugging printks, uninline set_one_prio_perm and\n\t\tmake it bool, and document its return value.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3263245de48344ad7bdd0e7256bf1606d2592f88",
      "tree": "a6fa31305f5b6558d882b2dad29ed9a720167ee0",
      "parents": [
        "8409cca7056113bee3236cb6a8e4d8d4d1eef102"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge.hallyn@canonical.com",
        "time": "Wed Mar 23 16:43:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:06 2011 -0700"
      },
      "message": "userns: make has_capability* into real functions\n\nSo we can let type safety keep things sane, and as a bonus we can remove\nthe declaration of init_user_ns in capability.h.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8409cca7056113bee3236cb6a8e4d8d4d1eef102",
      "tree": "d9f1ced0d47070fcdf8b399021f33770c150b1ec",
      "parents": [
        "39fd33933b0209e4b6254743f2cede07c5ad4c52"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:05 2011 -0700"
      },
      "message": "userns: allow ptrace from non-init user namespaces\n\nptrace is allowed to tasks in the same user namespace according to the\nusual rules (i.e.  the same rules as for two tasks in the init user\nnamespace).  ptrace is also allowed to a user namespace to which the\ncurrent task the has CAP_SYS_PTRACE capability.\n\nChangelog:\n\tDec 31: Address feedback by Eric:\n\t\t. Correct ptrace uid check\n\t\t. Rename may_ptrace_ns to ptrace_capable\n\t\t. Also fix the cap_ptrace checks.\n\tJan  1: Use const cred struct\n\tJan 11: use task_ns_capable() in place of ptrace_capable().\n\tFeb 23: same_or_ancestore_user_ns() was not an appropriate\n\t\tcheck to constrain cap_issubset.  Rather, cap_issubset()\n\t\tonly is meaningful when both capsets are in the same\n\t\tuser_ns.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39fd33933b0209e4b6254743f2cede07c5ad4c52",
      "tree": "394f09178324fd1e31847a6c71d81f01e6236b02",
      "parents": [
        "bb96a6f50be27390dc959ff67d9ea0ea0cfbe177"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:04 2011 -0700"
      },
      "message": "userns: allow killing tasks in your own or child userns\n\nChangelog:\n\tDec  8: Fixed bug in my check_kill_permission pointed out by\n\t        Eric Biederman.\n\tDec 13: Apply Eric\u0027s suggestion to pass target task into kill_ok_by_cred()\n\t        for clarity\n\tDec 31: address comment by Eric Biederman:\n\t\tdon\u0027t need cred/tcred in check_kill_permission.\n\tJan  1: use const cred struct.\n\tJan 11: Per Bastian Blank\u0027s advice, clean up kill_ok_by_cred().\n\tFeb 16: kill_ok_by_cred: fix bad parentheses\n\tFeb 23: per akpm, let compiler inline kill_ok_by_cred\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb96a6f50be27390dc959ff67d9ea0ea0cfbe177",
      "tree": "478253434235baeb1e4760a25c0a0f01293fbb8a",
      "parents": [
        "3486740a4f32a6a466f5ac931654d154790ba648"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:03 2011 -0700"
      },
      "message": "userns: allow sethostname in a container\n\nChangelog:\n\tFeb 23: let clone_uts_ns() handle setting uts-\u003euser_ns\n\t\tTo do so we need to pass in the task_struct who\u0027ll\n\t\tget the utsname, so we can get its user_ns.\n\tFeb 23: As per Oleg\u0027s coment, just pass in tsk, instead of two\n\t\tof its members.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3486740a4f32a6a466f5ac931654d154790ba648",
      "tree": "ac5d968a66057fa84933b8f89fd3e916270dffed",
      "parents": [
        "59607db367c57f515183cb203642291bb14d9c40"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:02 2011 -0700"
      },
      "message": "userns: security: make capabilities relative to the user namespace\n\n- Introduce ns_capable to test for a capability in a non-default\n  user namespace.\n- Teach cap_capable to handle capabilities in a non-default\n  user namespace.\n\nThe motivation is to get to the unprivileged creation of new\nnamespaces.  It looks like this gets us 90% of the way there, with\nonly potential uid confusion issues left.\n\nI still need to handle getting all caps after creation but otherwise I\nthink I have a good starter patch that achieves all of your goals.\n\nChangelog:\n\t11/05/2010: [serge] add apparmor\n\t12/14/2010: [serge] fix capabilities to created user namespaces\n\tWithout this, if user serge creates a user_ns, he won\u0027t have\n\tcapabilities to the user_ns he created.  THis is because we\n\twere first checking whether his effective caps had the caps\n\the needed and returning -EPERM if not, and THEN checking whether\n\the was the creator.  Reverse those checks.\n\t12/16/2010: [serge] security_real_capable needs ns argument in !security case\n\t01/11/2011: [serge] add task_ns_capable helper\n\t01/11/2011: [serge] add nsown_capable() helper per Bastian Blank suggestion\n\t02/16/2011: [serge] fix a logic bug: the root user is always creator of\n\t\t    init_user_ns, but should not always have capabilities to\n\t\t    it!  Fix the check in cap_capable().\n\t02/21/2011: Add the required user_ns parameter to security_capable,\n\t\t    fixing a compile failure.\n\t02/23/2011: Convert some macros to functions as per akpm comments.  Some\n\t\t    couldn\u0027t be converted because we can\u0027t easily forward-declare\n\t\t    them (they are inline if !SECURITY, extern if SECURITY).  Add\n\t\t    a current_user_ns function so we can use it in capability.h\n\t\t    without #including cred.h.  Move all forward declarations\n\t\t    together to the top of the #ifdef __KERNEL__ section, and use\n\t\t    kernel-doc format.\n\t02/23/2011: Per dhowells, clean up comment in cap_capable().\n\t02/23/2011: Per akpm, remove unreachable \u0027return -EPERM\u0027 in cap_capable.\n\n(Original written and signed off by Eric;  latest, modified version\nacked by him)\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: export current_user_ns() for ecryptfs]\n[serge.hallyn@canonical.com: remove unneeded extra argument in selinux\u0027s task_has_capability]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59607db367c57f515183cb203642291bb14d9c40",
      "tree": "9097cfc3a72820c5624de6a24c9fa9cf28b6cb35",
      "parents": [
        "52e9fc76d0d4b1e8adeee736172c6c23180059b2"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:59 2011 -0700"
      },
      "message": "userns: add a user_namespace as creator/owner of uts_namespace\n\nThe expected course of development for user namespaces targeted\ncapabilities is laid out at https://wiki.ubuntu.com/UserNamespace.\n\nGoals:\n\n- Make it safe for an unprivileged user to unshare namespaces.  They\n  will be privileged with respect to the new namespace, but this should\n  only include resources which the unprivileged user already owns.\n\n- Provide separate limits and accounting for userids in different\n  namespaces.\n\nStatus:\n\n  Currently (as of 2.6.38) you can clone with the CLONE_NEWUSER flag to\n  get a new user namespace if you have the CAP_SYS_ADMIN, CAP_SETUID, and\n  CAP_SETGID capabilities.  What this gets you is a whole new set of\n  userids, meaning that user 500 will have a different \u0027struct user\u0027 in\n  your namespace than in other namespaces.  So any accounting information\n  stored in struct user will be unique to your namespace.\n\n  However, throughout the kernel there are checks which\n\n  - simply check for a capability.  Since root in a child namespace\n    has all capabilities, this means that a child namespace is not\n    constrained.\n\n  - simply compare uid1 \u003d\u003d uid2.  Since these are the integer uids,\n    uid 500 in namespace 1 will be said to be equal to uid 500 in\n    namespace 2.\n\n  As a result, the lxc implementation at lxc.sf.net does not use user\n  namespaces.  This is actually helpful because it leaves us free to\n  develop user namespaces in such a way that, for some time, user\n  namespaces may be unuseful.\n\nBugs aside, this patchset is supposed to not at all affect systems which\nare not actively using user namespaces, and only restrict what tasks in\nchild user namespace can do.  They begin to limit privilege to a user\nnamespace, so that root in a container cannot kill or ptrace tasks in the\nparent user namespace, and can only get world access rights to files.\nSince all files currently belong to the initila user namespace, that means\nthat child user namespaces can only get world access rights to *all*\nfiles.  While this temporarily makes user namespaces bad for system\ncontainers, it starts to get useful for some sandboxing.\n\nI\u0027ve run the \u0027runltplite.sh\u0027 with and without this patchset and found no\ndifference.\n\nThis patch:\n\ncopy_process() handles CLONE_NEWUSER before the rest of the namespaces.\nSo in the case of clone(CLONE_NEWUSER|CLONE_NEWUTS) the new uts namespace\nwill have the new user namespace as its owner.  That is what we want,\nsince we want root in that new userns to be able to have privilege over\nit.\n\nChangelog:\n\tFeb 15: don\u0027t set uts_ns-\u003euser_ns if we didn\u0027t create\n\t\ta new uts_ns.\n\tFeb 23: Move extern init_user_ns declaration from\n\t\tinit/version.c to utsname.h.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52e9fc76d0d4b1e8adeee736172c6c23180059b2",
      "tree": "61fd430bd5848fc1598373675f8f6810e4af08b4",
      "parents": [
        "4308eebbeb2026827d4492ce8c23d99f7f144a82"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Mar 23 16:43:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:58 2011 -0700"
      },
      "message": "procfs: kill the global proc_mnt variable\n\nAfter the previous cleanup in proc_get_sb() the global proc_mnt has no\nreasons to exists, kill it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4308eebbeb2026827d4492ce8c23d99f7f144a82",
      "tree": "3781e227988b4d986bf98dcc0390df17c6fe8f10",
      "parents": [
        "45a68628d37222e655219febce9e91b6484789b2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 23 16:43:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:58 2011 -0700"
      },
      "message": "pidns: call pid_ns_prepare_proc() from create_pid_namespace()\n\nReorganize proc_get_sb() so it can be called before the struct pid of the\nfirst process is allocated.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45a68628d37222e655219febce9e91b6484789b2",
      "tree": "6acb5c45e8b11022358a1c28691c9b2c75a7df91",
      "parents": [
        "bfdc0b497faa82a0ba2f9dddcf109231dd519fcc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 23 16:43:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:57 2011 -0700"
      },
      "message": "pid: remove the child_reaper special case in init/main.c\n\nThis patchset is a cleanup and a preparation to unshare the pid namespace.\nThese prerequisites prepare for Eric\u0027s patchset to give a file descriptor\nto a namespace and join an existing namespace.\n\nThis patch:\n\nIt turns out that the existing assignment in copy_process of the\nchild_reaper can handle the initial assignment of child_reaper we just\nneed to generalize the test in kernel/fork.c\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfdc0b497faa82a0ba2f9dddcf109231dd519fcc",
      "tree": "932897262447dacb7158b81209748a295d93e20b",
      "parents": [
        "cb16e95fa2996743a6e80a665ed2ed0590bd38cf"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Mar 23 16:43:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:54 2011 -0700"
      },
      "message": "sysctl: restrict write access to dmesg_restrict\n\nWhen dmesg_restrict is set to 1 CAP_SYS_ADMIN is needed to read the kernel\nring buffer.  But a root user without CAP_SYS_ADMIN is able to reset\ndmesg_restrict to 0.\n\nThis is an issue when e.g.  LXC (Linux Containers) are used and complete\nuser space is running without CAP_SYS_ADMIN.  A unprivileged and jailed\nroot user can bypass the dmesg_restrict protection.\n\nWith this patch writing to dmesg_restrict is only allowed when root has\nCAP_SYS_ADMIN.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nAcked-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.org\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": "cb16e95fa2996743a6e80a665ed2ed0590bd38cf",
      "tree": "7128a7d03a94a68dd9550f33ac66876bf6854ad0",
      "parents": [
        "256c53a65128cbc8a766b1503f3f25a52a8d07cb"
      ],
      "author": {
        "name": "Petr Holasek",
        "email": "pholasek@redhat.com",
        "time": "Wed Mar 23 16:43:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:51 2011 -0700"
      },
      "message": "sysctl: add some missing input constraint checks\n\nAdd boundaries of allowed input ranges for: dirty_expire_centisecs,\ndrop_caches, overcommit_memory, page-cluster and panic_on_oom.\n\nSigned-off-by: Petr Holasek \u003cpholasek@redhat.com\u003e\nAcked-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.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": "256c53a65128cbc8a766b1503f3f25a52a8d07cb",
      "tree": "aa15c1cd93ad2d99609016fa0bcf46f305d64d58",
      "parents": [
        "814ecf6e5b7854504ae83255173e53836c5d8420"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@kernel.org",
        "time": "Wed Mar 23 16:43:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:51 2011 -0700"
      },
      "message": "sysctl_check: drop dead code\n\nDrop dead code.\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "814ecf6e5b7854504ae83255173e53836c5d8420",
      "tree": "0e6ba9405264833b672b5b640aadc93e4050d56d",
      "parents": [
        "ad4ac17ad1e2f0bd0ce38b2585c5d7fa2b0780dc"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@kernel.org",
        "time": "Wed Mar 23 16:43:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:50 2011 -0700"
      },
      "message": "sysctl_check: drop table-\u003eprocname checks\n\nSince the for loop checks for the table-\u003eprocname drop useless\ntable-\u003eprocname checks inside the loop body\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad4ac17ad1e2f0bd0ce38b2585c5d7fa2b0780dc",
      "tree": "cfc612adbeb9a5d0a6b0e1ee35d14eb963058e77",
      "parents": [
        "c1256ebe6a10bb3e104ecb2d1a458f9907ee49fb"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "[error27@gmail.com]",
        "time": "Wed Mar 23 16:43:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:44 2011 -0700"
      },
      "message": "rapidio: fix potential null deref on failure path\n\nIf rio is not a switch then \"rswitch\" is null.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1256ebe6a10bb3e104ecb2d1a458f9907ee49fb",
      "tree": "d34852c275d6a47d63487ce2338401708d5bcab3",
      "parents": [
        "569fccb6b48878d654310e1ffaf9a5a6e46b3144"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:43 2011 -0700"
      },
      "message": "rapidio: remove mport resource reservation from common RIO code\n\nRemoves resource reservation from the common sybsystem initialization code\nand make it part of mport driver initialization.  This resolves conflict\nwith resource reservation by device specific mport drivers.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "569fccb6b48878d654310e1ffaf9a5a6e46b3144",
      "tree": "20e6ded48adf7b36e9cfe71b8a0ed3721b977669",
      "parents": [
        "2f809985d2cbc78078b8da1cbed1f1ce1f4a0d5f"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:43 2011 -0700"
      },
      "message": "rapidio: modify mport ID assignment\n\nChanges mport ID and host destination ID assignment to implement unified\nmethod common to all mport drivers.  Makes \"riohdid\u003d\" kernel command line\nparameter common for all architectures with support for more that one host\ndestination ID assignment.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f809985d2cbc78078b8da1cbed1f1ce1f4a0d5f",
      "tree": "6ce67e43f25700ca08f84e4a87b74c0be0d7ee7f",
      "parents": [
        "388b78adc9899f0299128610f566051d0b1a57f6"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:42 2011 -0700"
      },
      "message": "rapidio: modify subsystem and driver initialization sequence\n\nSubsystem initialization sequence modified to support presence of multiple\nRapidIO controllers in the system.  The new sequence is compatible with\ninitialization of PCI devices.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "388b78adc9899f0299128610f566051d0b1a57f6",
      "tree": "f64e7151235c82ae3652fc5b4ca23c2a017ff464",
      "parents": [
        "f8f0626989c85b3d8bd67eff29d9dd3d14a5e71f"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:42 2011 -0700"
      },
      "message": "rapidio: modify configuration to support PCI-SRIO controller\n\n1. Add an option to include RapidIO support if the PCI is available.\n2. Add FSL_RIO configuration option to enable controller selection.\n3. Add RapidIO support option into x86 and MIPS architectures.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nAcked-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8f0626989c85b3d8bd67eff29d9dd3d14a5e71f",
      "tree": "1132c3ca38b6f68c00864df0ded229c45230d4c5",
      "parents": [
        "e15b4d687f3015aa7953687e5a80f1cc4ba9b736"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:41 2011 -0700"
      },
      "message": "rapidio: add architecture specific callbacks\n\nThis set of patches eliminates RapidIO dependency on PowerPC architecture\nand makes it available to other architectures (x86 and MIPS).  It also\nenables support of new platform independent RapidIO controllers such as\nPCI-to-SRIO and PCI Express-to-SRIO.\n\nThis patch:\n\nExtend number of mport callback functions to eliminate direct linking of\narchitecture specific mport operations.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e15b4d687f3015aa7953687e5a80f1cc4ba9b736",
      "tree": "f3a9d41eb37ee53da3794ab0b0a28212c7b9b9f6",
      "parents": [
        "cd8b974fad4f993bde74d820f83bd0a88ad82491"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:41 2011 -0700"
      },
      "message": "rapidio: add RapidIO documentation\n\nAdd RapidIO documentation files as it was discussed earlier (see thread\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d129202338918062\u0026w\u003d2)\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd8b974fad4f993bde74d820f83bd0a88ad82491",
      "tree": "fc68e756681d2fa1857a6ab56284d7e50db3ed3a",
      "parents": [
        "cfaf346cb2741ca648d83527df173b759381e607"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:42:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:41 2011 -0700"
      },
      "message": "rapidio: add new sysfs attributes\n\nAdd new sysfs attributes.\n\n1. Routing information required to to reach the RIO device:\ndestid - device destination ID (real for for endpoint, route for switch)\nhopcount - hopcount for maintenance requests (switches only)\n\n2. device linking information:\nlprev - name of device that precedes the given device in the enumeration\n        or discovery order (displayed along with of the port to which it\n        is attached).\nlnext - names of devices (with corresponding port numbers) that are\n        attached to the given device as next in the enumeration or\n        discovery order (switches only)\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfaf346cb2741ca648d83527df173b759381e607",
      "tree": "578b3d6ce766950fb20f29839c6fbae5aad41a36",
      "parents": [
        "115bcd156a7c4b4dad950f3bd2e4d023688c2ee7"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Mar 23 16:42:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:40 2011 -0700"
      },
      "message": "drivers/char/mem.c: clean up the code\n\nReduce the lines of code and simplify the logic.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@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": "115bcd156a7c4b4dad950f3bd2e4d023688c2ee7",
      "tree": "2124bc65ab61f8e72b4bfd959970ccc2b8a90949",
      "parents": [
        "d9d691f584bd012d235c35279c043a2ccd23d7d7"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Mar 23 16:42:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:39 2011 -0700"
      },
      "message": "drivers/staging/tty/specialix.c: convert func_enter to func_exit\n\nConvert calls to func_enter on leaving a function to func_exit.\n\nThe semantic patch that fixes this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\n@@\n\n- func_enter();\n+ func_exit();\n  return...;\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Roger Wolff \u003cR.E.Wolff@BitWizard.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9d691f584bd012d235c35279c043a2ccd23d7d7",
      "tree": "9094c048d6df951f14e2fb1cc790366791fdd7d5",
      "parents": [
        "73210a135b9dd53ba59beb4ced5a55633ae65b2f"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Mar 23 16:42:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:39 2011 -0700"
      },
      "message": "drivers/tty/bfin_jtag_comm.c: avoid calling put_tty_driver on NULL\n\nput_tty_driver calls tty_driver_kref_put on its argument, and then\ntty_driver_kref_put calls kref_put on the address of a field of this\nargument.  kref_put checks for NULL, but in this case the field is likely\nto have some offset and so the result of taking its address will not be\nNULL.  Labels are added to be able to skip over the call to put_tty_driver\nwhen the argument will be NULL.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression *x;\n@@\n\n*if (x \u003d\u003d NULL)\n{ ...\n* put_tty_driver(x);\n  ...\n  return ...;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Torben Hohn \u003ctorbenh@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73210a135b9dd53ba59beb4ced5a55633ae65b2f",
      "tree": "23d1ffa9f18bbd0c26aabcd874af9b21788241b6",
      "parents": [
        "0dcf334c44d99cd08515f4fc5cc9075abd92b2ff"
      ],
      "author": {
        "name": "Niranjana Vishwanathapura",
        "email": "nvishwan@codeaurora.org",
        "time": "Wed Mar 23 16:42:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:38 2011 -0700"
      },
      "message": "drivers/char: add MSM smd_pkt driver\n\nAdd smd_pkt driver which provides device interface to smd packet ports.\n\nSigned-off-by: Niranjana Vishwanathapura \u003cnvishwan@codeaurora.org\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Brown \u003cdavidb@codeaurora.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0dcf334c44d99cd08515f4fc5cc9075abd92b2ff",
      "tree": "c0bdffa37435f5a0aec884dcf598bfab0f11149c",
      "parents": [
        "5883f57ca0008ffc93e09cbb9847a1928e50c6f3"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Mar 23 16:42:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:38 2011 -0700"
      },
      "message": "drivers/char/ipmi/ipmi_si_intf.c: fix cleanup_one_si section mismatch\n\ncommit d2478521afc2022 (\"char/ipmi: fix OOPS caused by\npnp_unregister_driver on unregistered driver\") introduced a section\nmismatch by calling __exit cleanup_ipmi_si from __devinit init_ipmi_si.\n\nRemove __exit annotation from cleanup_ipmi_si.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nAcked-by: Corey Minyard \u003ccminyard@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5883f57ca0008ffc93e09cbb9847a1928e50c6f3",
      "tree": "f7559549b81f1648b089ddfaa202644bf353b3b0",
      "parents": [
        "312ec7e50c4d3f40b3762af651d1aa79a67f556a"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed Mar 23 16:42:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:37 2011 -0700"
      },
      "message": "proc: protect mm start_code/end_code in /proc/pid/stat\n\nWhile mm-\u003estart_stack was protected from cross-uid viewing (commit\nf83ce3e6b02d5 (\"proc: avoid information leaks to non-privileged\nprocesses\")), the start_code and end_code values were not.  This would\nallow the text location of a PIE binary to leak, defeating ASLR.\n\nNote that the value \"1\" is used instead of \"0\" for a protected value since\n\"ps\", \"killall\", and likely other readers of /proc/pid/stat, take\nstart_code of \"0\" to mean a kernel thread and will misbehave.  Thanks to\nBrad Spengler for pointing this out.\n\nAddresses CVE-2011-0726\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "312ec7e50c4d3f40b3762af651d1aa79a67f556a",
      "tree": "98112d9c80aacd011e313268b5f5d8caf5b5b727",
      "parents": [
        "fc3d8767b2b6de955579852d7a150f1734265eaf"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 23 16:42:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:37 2011 -0700"
      },
      "message": "proc: make struct proc_dir_entry::namelen unsigned int\n\n1. namelen is declared \"unsigned short\" which hints for \"maybe space savings\".\n   Indeed in 2.4 struct proc_dir_entry looked like:\n\n        struct proc_dir_entry {\n                unsigned short low_ino;\n                unsigned short namelen;\n\n   Now, low_ino is \"unsigned int\", all savings were gone for a long time.\n   \"struct proc_dir_entry\" is not that countless to worry about it\u0027s size,\n   anyway.\n\n2. converting from unsigned short to int/unsigned int can only create\n   problems, we better play it safe.\n\nSpace is not really conserved, because of natural alignment for the next\nfield.  sizeof(struct proc_dir_entry) remains the same.\n\nSigned-off-by: 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": "fc3d8767b2b6de955579852d7a150f1734265eaf",
      "tree": "282762d459af3ebdf0bf8661a9422d55fc74dbb1",
      "parents": [
        "0db0c01b53a1a421513f91573241aabafb87802a"
      ],
      "author": {
        "name": "Jovi Zhang",
        "email": "bookjovi@gmail.com",
        "time": "Wed Mar 23 16:42:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:36 2011 -0700"
      },
      "message": "procfs: fix some wrong error code usage\n\n[root@wei 1]# cat /proc/1/mem\ncat: /proc/1/mem: No such process\n\nerror code -ESRCH is wrong in this situation.  Return -EPERM instead.\n\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.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": "0db0c01b53a1a421513f91573241aabafb87802a",
      "tree": "beb48c1fe733509945d6cfda2f830ebe3104aa02",
      "parents": [
        "51e031496d50f87ff519a63cfd4fc2f415f03336"
      ],
      "author": {
        "name": "Aaro Koskinen",
        "email": "aaro.koskinen@nokia.com",
        "time": "Wed Mar 23 16:42:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:36 2011 -0700"
      },
      "message": "procfs: fix /proc/\u003cpid\u003e/maps heap check\n\nThe current code fails to print the \"[heap]\" marking if the heap is split\ninto multiple mappings.\n\nFix the check so that the marking is displayed in all possible cases:\n\t1. vma matches exactly the heap\n\t2. the heap vma is merged e.g. with bss\n\t3. the heap vma is splitted e.g. due to locked pages\n\nTest cases. In all cases, the process should have mapping(s) with\n[heap] marking:\n\n\t(1) vma matches exactly the heap\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/types.h\u003e\n\n\tint main (void)\n\t{\n\t\tif (sbrk(4096) !\u003d (void *)-1) {\n\t\t\tprintf(\"check /proc/%d/maps\\n\", (int)getpid());\n\t\t\twhile (1)\n\t\t\t\tsleep(1);\n\t\t}\n\t\treturn 0;\n\t}\n\n\t# ./test1\n\tcheck /proc/553/maps\n\t[1] + Stopped                    ./test1\n\t# cat /proc/553/maps | head -4\n\t00008000-00009000 r-xp 00000000 01:00 3113640    /test1\n\t00010000-00011000 rw-p 00000000 01:00 3113640    /test1\n\t00011000-00012000 rw-p 00000000 00:00 0          [heap]\n\t4006f000-40070000 rw-p 00000000 00:00 0\n\n\t(2) the heap vma is merged\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/types.h\u003e\n\n\tchar foo[4096] \u003d \"foo\";\n\tchar bar[4096];\n\n\tint main (void)\n\t{\n\t\tif (sbrk(4096) !\u003d (void *)-1) {\n\t\t\tprintf(\"check /proc/%d/maps\\n\", (int)getpid());\n\t\t\twhile (1)\n\t\t\t\tsleep(1);\n\t\t}\n\t\treturn 0;\n\t}\n\n\t# ./test2\n\tcheck /proc/556/maps\n\t[2] + Stopped                    ./test2\n\t# cat /proc/556/maps | head -4\n\t00008000-00009000 r-xp 00000000 01:00 3116312    /test2\n\t00010000-00012000 rw-p 00000000 01:00 3116312    /test2\n\t00012000-00014000 rw-p 00000000 00:00 0          [heap]\n\t4004a000-4004b000 rw-p 00000000 00:00 0\n\n\t(3) the heap vma is splitted (this fails without the patch)\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/mman.h\u003e\n\t#include \u003csys/types.h\u003e\n\n\tint main (void)\n\t{\n\t\tif ((sbrk(4096) !\u003d (void *)-1) \u0026\u0026 !mlockall(MCL_FUTURE) \u0026\u0026\n\t\t    (sbrk(4096) !\u003d (void *)-1)) {\n\t\t\tprintf(\"check /proc/%d/maps\\n\", (int)getpid());\n\t\t\twhile (1)\n\t\t\t\tsleep(1);\n\t\t}\n\t\treturn 0;\n\t}\n\n\t# ./test3\n\tcheck /proc/559/maps\n\t[1] + Stopped                    ./test3\n\t# cat /proc/559/maps|head -4\n\t00008000-00009000 r-xp 00000000 01:00 3119108    /test3\n\t00010000-00011000 rw-p 00000000 01:00 3119108    /test3\n\t00011000-00012000 rw-p 00000000 00:00 0          [heap]\n\t00012000-00013000 rw-p 00000000 00:00 0          [heap]\n\nIt looks like the bug has been there forever, and since it only results in\nsome information missing from a procfile, it does not fulfil the -stable\n\"critical issue\" criteria.\n\nSigned-off-by: Aaro Koskinen \u003caaro.koskinen@nokia.com\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": "51e031496d50f87ff519a63cfd4fc2f415f03336",
      "tree": "75c177b8aeba82fffb80960eed1c77bb4188c362",
      "parents": [
        "523fb486bfd94e3a3b16a42bcb21b1959cf14df8"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 23 16:42:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:36 2011 -0700"
      },
      "message": "proc: hide kernel addresses via %pK in /proc/\u003cpid\u003e/stack\n\nThis file is readable for the task owner.  Hide kernel addresses from\nunprivileged users, leave them function names and offsets.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Kees Cook \u003ckees.cook@canonical.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": "523fb486bfd94e3a3b16a42bcb21b1959cf14df8",
      "tree": "34c1b15a9bc55ef7a3bafb87cce3d3d184d78906",
      "parents": [
        "ee24d3797780eee6ffe581a7b78d27896f9b494a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:35 2011 -0700"
      },
      "message": "cpuset: hold callback_mutex in cpuset_post_clone()\n\nChaning cpuset-\u003emems/cpuset-\u003ecpus should be protected under\ncallback_mutex.\n\ncpuset_clone() doesn\u0027t follow this rule. It\u0027s ok because it\u0027s\ncalled when creating and initializing a cgroup, but we\u0027d better\nhold the lock to avoid subtil break in the future.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "ee24d3797780eee6ffe581a7b78d27896f9b494a",
      "tree": "8034dac124ab8f0a29bc6f238c030915b2e08398",
      "parents": [
        "c8163ca8afcac0fc54593fc60d1e1110edbd0eb2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:35 2011 -0700"
      },
      "message": "cpuset: fix unchecked calls to NODEMASK_ALLOC()\n\nThose functions that use NODEMASK_ALLOC() can\u0027t propagate errno\nto users, but will fail silently.\n\nFix it by using a static nodemask_t variable for each function, and\nthose variables are protected by cgroup_mutex;\n\n[akpm@linux-foundation.org: fix comment spelling, strengthen cgroup_lock comment]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "c8163ca8afcac0fc54593fc60d1e1110edbd0eb2",
      "tree": "55a363ed73b91d8350d2df7083abf49c5c97b20d",
      "parents": [
        "9303e0c4814d2a6afca878cc35433291e862169c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:34 2011 -0700"
      },
      "message": "cpuset: remove unneeded NODEMASK_ALLOC() in cpuset_attach()\n\noldcs-\u003emems_allowed is not modified during cpuset_attach(), so we don\u0027t\nhave to copy it to a buffer allocated by NODEMASK_ALLOC().  Just pass it\nto cpuset_migrate_mm().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "9303e0c4814d2a6afca878cc35433291e862169c",
      "tree": "786866f6f0639edcc2996d4157ea7128b2400898",
      "parents": [
        "f9434ad1552427fab49336e1a6e3ef121895b9d1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:34 2011 -0700"
      },
      "message": "cpuset: remove unneeded NODEMASK_ALLOC() in cpuset_sprintf_memlist()\n\nIt\u0027s not necessary to copy cpuset-\u003emems_allowed to a buffer allocated by\nNODEMASK_ALLOC().  Just pass it to nodelist_scnprintf().\n\nAs spotted by Paul, a side effect is we fix a bug that the function can\nreturn -ENOMEM but the caller doesn\u0027t expect negative return value.\nTherefore change the return value of cpuset_sprintf_cpulist() and\ncpuset_sprintf_memlist() from int to size_t.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "f9434ad1552427fab49336e1a6e3ef121895b9d1",
      "tree": "5284bccbf71e601d056d138e894c27726047dc82",
      "parents": [
        "5a6475a4e162200f43855e2d42bbf55bcca1a9f2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 23 16:42:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:33 2011 -0700"
      },
      "message": "memcg: give current access to memory reserves if it\u0027s trying to die\n\nWhen a memcg is oom and current has already received a SIGKILL, then give\nit access to memory reserves with a higher scheduling priority so that it\nmay quickly exit and free its memory.\n\nThis is identical to the global oom killer and is done even before\nchecking for panic_on_oom: a pending SIGKILL here while panic_on_oom is\nselected is guaranteed to have come from userspace; the thread only needs\naccess to memory reserves to exit and thus we don\u0027t unnecessarily panic\nthe machine until the kernel has no last resort to free memory.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-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": "5a6475a4e162200f43855e2d42bbf55bcca1a9f2",
      "tree": "361ef686ef833cd1560e884ca1420d512e4d06bb",
      "parents": [
        "6cfddb261555dd0c0529a5fb7cf8bc5b85ad95a5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 23 16:42:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:33 2011 -0700"
      },
      "message": "memcg: fix leak on wrong LRU with FUSE\n\nfs/fuse/dev.c::fuse_try_move_page() does\n\n   (1) remove a page by -\u003esteal()\n   (2) re-add the page to page cache\n   (3) link the page to LRU if it was not on LRU at (1)\n\nThis implies the page is _on_ LRU when it\u0027s added to radix-tree.  So, the\npage is added to memory cgroup while it\u0027s on LRU.  because LRU is lazy and\nno one flushs it.\n\nThis is the same behavior as SwapCache and needs special care as\n - remove page from LRU before overwrite pc-\u003emem_cgroup.\n - add page to LRU after overwrite pc-\u003emem_cgroup.\n\nAnd we need to taking care of pagevec.\n\nIf PageLRU(page) is set before we add PCG_USED bit, the page will not be\nadded to memcg\u0027s LRU (in short period).  So, regardlress of PageLRU(page)\nvalue before commit_charge(), we need to check PageLRU(page) after\ncommit_charge().\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d30432\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nReported-by: Daniel Poelzleithner \u003cpoelzi@poelzi.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cfddb261555dd0c0529a5fb7cf8bc5b85ad95a5",
      "tree": "d6c966290c7a8224171c850098767a6fbfa5747b",
      "parents": [
        "dde79e005a769d800166687c9e00d50d93e411ff"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Mar 23 16:42:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:33 2011 -0700"
      },
      "message": "memcg: page_cgroup array is never stored on reserved pages\n\nKAMEZAWA Hiroyuki noted that free_pages_cgroup doesn\u0027t have to check for\nPageReserved because we never store the array on reserved pages (neither\nalloc_pages_exact nor vmalloc use those pages).\n\nSo we can replace the check by a BUG_ON.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dde79e005a769d800166687c9e00d50d93e411ff",
      "tree": "a38166f535b48063bd680deb64edbedf4395cfed",
      "parents": [
        "4be4489feae6da890765cc1bdc1af5e4f8c4b75f"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Mar 23 16:42:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:32 2011 -0700"
      },
      "message": "page_cgroup: reduce allocation overhead for page_cgroup array for CONFIG_SPARSEMEM\n\nCurrently we are allocating a single page_cgroup array per memory section\n(stored in mem_section-\u003ebase) when CONFIG_SPARSEMEM is selected.  This is\ncorrect but memory inefficient solution because the allocated memory\n(unless we fall back to vmalloc) is not kmalloc friendly:\n\n        - 32b - 16384 entries (20B per entry) fit into 327680B so the\n          524288B slab cache is used\n        - 32b with PAE - 131072 entries with 2621440B fit into 4194304B\n        - 64b - 32768 entries (40B per entry) fit into 2097152 cache\n\nThis is ~37% wasted space per memory section and it sumps up for the whole\nmemory.  On a x86_64 machine it is something like 6MB per 1GB of RAM.\n\nWe can reduce the internal fragmentation by using alloc_pages_exact which\nallocates PAGE_SIZE aligned blocks so we will get down to \u003c4kB wasted\nmemory per section which is much better.\n\nWe still need a fallback to vmalloc because we have no guarantees that we\nwill have a continuous memory of that size (order-10) later on during the\nhotplug events.\n\n[hannes@cmpxchg.org: do not define unused free_page_cgroup() without memory hotplug]\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4be4489feae6da890765cc1bdc1af5e4f8c4b75f",
      "tree": "c7c1154aaba8e59523024c119fdf769284023a35",
      "parents": [
        "7a159cc9d7987cdb4853f8711f5f89e01cfffe42"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 23 16:42:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:32 2011 -0700"
      },
      "message": "mm/memcontrol.c: suppress uninitialized-var warning with older gcc\u0027s\n\nmm/memcontrol.c: In function \u0027mem_cgroup_force_empty\u0027:\nmm/memcontrol.c:2280: warning: \u0027flags\u0027 may be used uninitialized in this function\n\nIt\u0027s a false positive.\n\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.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": "7a159cc9d7987cdb4853f8711f5f89e01cfffe42",
      "tree": "027e8468d40bfdb51ad9694ec1d5256bb2fdb36f",
      "parents": [
        "e9f8974f2f559b00c87ccfba67bca3903f913d50"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:31 2011 -0700"
      },
      "message": "memcg: use native word page statistics counters\n\nThe statistic counters are in units of pages, there is no reason to make\nthem 64-bit wide on 32-bit machines.\n\nMake them native words.  Since they are signed, this leaves 31 bit on\n32-bit machines, which can represent roughly 8TB assuming a page size of\n4k.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "e9f8974f2f559b00c87ccfba67bca3903f913d50",
      "tree": "d19f8f7d15eb56e7af98c7ad63db8e86d5873fff",
      "parents": [
        "7ec99d6213b579a84c85ad37f2aa8ded4857c53c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:31 2011 -0700"
      },
      "message": "memcg: break out event counters from other stats\n\nFor increasing and decreasing per-cpu cgroup usage counters it makes sense\nto use signed types, as single per-cpu values might go negative during\nupdates.  But this is not the case for only-ever-increasing event\ncounters.\n\nAll the counters have been signed 64-bit so far, which was enough to count\nevents even with the sign bit wasted.\n\nThis patch:\n- divides s64 counters into signed usage counters and unsigned\n  monotonically increasing event counters.\n- converts unsigned event counters into \u0027unsigned long\u0027 rather than\n  \u0027u64\u0027.  This matches the type used by the /proc/vmstat event counters.\n\nThe next patch narrows the signed usage counters type (on 32-bit CPUs,\nthat is).\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "7ec99d6213b579a84c85ad37f2aa8ded4857c53c",
      "tree": "d05bb74c5ca30650ff0622cd1ffd2fd6ddecebd6",
      "parents": [
        "7ffd4ca7a2cdd7a18f0b499a4e9e0e7cf36ba018"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:30 2011 -0700"
      },
      "message": "memcg: unify charge/uncharge quantities to units of pages\n\nThere is no clear pattern when we pass a page count and when we pass a\nbyte count that is a multiple of PAGE_SIZE.\n\nWe never charge or uncharge subpage quantities, so convert it all to page\ncounts.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ffd4ca7a2cdd7a18f0b499a4e9e0e7cf36ba018",
      "tree": "1a2678ce91b9dfb2118d19e0ec457ca5582793f9",
      "parents": [
        "11c9ea4e80fc3be83485667204c68d0a732f3757"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:30 2011 -0700"
      },
      "message": "memcg: convert uncharge batching from bytes to page granularity\n\nWe never uncharge subpage quantities.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11c9ea4e80fc3be83485667204c68d0a732f3757",
      "tree": "71f68fb56e427c3ebe12e205e6ea56d72e7bd6ea",
      "parents": [
        "e7018b8d27e0c9aa2200e5b393e0fe9093c6565c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:29 2011 -0700"
      },
      "message": "memcg: convert per-cpu stock from bytes to page granularity\n\nWe never keep subpage quantities in the per-cpu stock.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7018b8d27e0c9aa2200e5b393e0fe9093c6565c",
      "tree": "13a4d92cd78bc6f97d9a2b6d77880c9ea5d67aa1",
      "parents": [
        "bf1ff2635a5fda207fc870df348bfc766e8dcd4d"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:29 2011 -0700"
      },
      "message": "memcg: keep only one charge cancelling function\n\nWe have two charge cancelling functions: one takes a page count, the other\na page size.  The second one just divides the parameter by PAGE_SIZE and\nthen calls the first one.  This is trivial, no need for an extra function.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf1ff2635a5fda207fc870df348bfc766e8dcd4d",
      "tree": "d4085b3bdbe608f6c8f708cb93080051b341d7fe",
      "parents": [
        "4dc03de1b29901b61cb27e4cab44a7f578dc0fc9"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:29 2011 -0700"
      },
      "message": "memcg: remove memcg-\u003ereclaim_param_lock\n\nThe reclaim_param_lock is only taken around single reads and writes to\ninteger variables and is thus superfluous.  Drop it.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@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": "4dc03de1b29901b61cb27e4cab44a7f578dc0fc9",
      "tree": "4edca28cf1636015eacd8012023804e4f27b2e34",
      "parents": [
        "6b3ae58efca06623c197fd6d91ded4aa3a8fe039"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:28 2011 -0700"
      },
      "message": "memcg: charged pages always have valid per-memcg zone info\n\npage_cgroup_zoneinfo() will never return NULL for a charged page, remove\nthe check for it in mem_cgroup_get_reclaim_stat_from_page().\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@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": "6b3ae58efca06623c197fd6d91ded4aa3a8fe039",
      "tree": "6460e4e1ce206d391b862a3d398a9e22e33ecb3c",
      "parents": [
        "5564e88ba6fd2f6dcd83a592771810cd84b5ae80"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:28 2011 -0700"
      },
      "message": "memcg: remove direct page_cgroup-to-page pointer\n\nIn struct page_cgroup, we have a full word for flags but only a few are\nreserved.  Use the remaining upper bits to encode, depending on\nconfiguration, the node or the section, to enable page_cgroup-to-page\nlookups without a direct pointer.\n\nThis saves a full word for every page in a system with memory cgroups\nenabled.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5564e88ba6fd2f6dcd83a592771810cd84b5ae80",
      "tree": "e2b3a0835067825308a254c7531c891d4d69e701",
      "parents": [
        "de3638d9cdc89ac899225996b8dcedbcbc53bdd2"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:27 2011 -0700"
      },
      "message": "memcg: condense page_cgroup-to-page lookup points\n\nThe per-cgroup LRU lists string up \u0027struct page_cgroup\u0027s.  To get from\nthose structures to the page they represent, a lookup is required.\nCurrently, the lookup is done through a direct pointer in struct\npage_cgroup, so a lot of functions down the callchain do this lookup by\nthemselves instead of receiving the page pointer from their callers.\n\nThe next patch removes this pointer, however, and the lookup is no longer\nthat straight-forward.  In preparation for that, this patch only leaves\nthe non-optional lookups when coming directly from the LRU list and passes\nthe page down the stack.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "de3638d9cdc89ac899225996b8dcedbcbc53bdd2",
      "tree": "86293e32728fdd5696cd321bc65aec09c89d17f3",
      "parents": [
        "97a6c37b34f46feed2544bd40891ee6dd0fd1554"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:27 2011 -0700"
      },
      "message": "memcg: fold __mem_cgroup_move_account into caller\n\nIt is one logical function, no need to have it split up.\n\nAlso, get rid of some checks from the inner function that ensured the\nsanity of the outer function.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "97a6c37b34f46feed2544bd40891ee6dd0fd1554",
      "tree": "6135189ba1f589d7a3b10c5e24da9a42ea9036f5",
      "parents": [
        "ad324e94475a04cfcdfdb11ad20f8ea81268e411"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:26 2011 -0700"
      },
      "message": "memcg: change page_cgroup_zoneinfo signature\n\nInstead of passing a whole struct page_cgroup to this function, let it\ntake only what it really needs from it: the struct mem_cgroup and the\npage.\n\nThis has the advantage that reading pc-\u003emem_cgroup is now done at the same\nplace where the ordering rules for this pointer are enforced and\nexplained.\n\nIt is also in preparation for removing the pc-\u003epage backpointer.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "ad324e94475a04cfcdfdb11ad20f8ea81268e411",
      "tree": "4326bb602a3528071ffd6f3030c3a82c76a3454e",
      "parents": [
        "f212ad7cf9c73f8a7fa160e223dcb3f074441a72"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:26 2011 -0700"
      },
      "message": "memcg: no uncharged pages reach page_cgroup_zoneinfo\n\nThis patch series removes the direct page pointer from struct page_cgroup,\nwhich saves 20% of per-page memcg memory overhead (Fedora and Ubuntu\nenable memcg per default, openSUSE apparently too).\n\nThe node id or section number is encoded in the remaining free bits of\npc-\u003eflags which allows calculating the corresponding page without the\nextra pointer.\n\nI ran, what I think is, a worst-case microbenchmark that just cats a large\nsparse file to /dev/null, because it means that walking the LRU list on\nbehalf of per-cgroup reclaim and looking up pages from page_cgroups is\nhappening constantly and at a high rate.  But it made no measurable\ndifference.  A profile reported a 0.11% share of the new\nlookup_cgroup_page() function in this benchmark.\n\nThis patch:\n\nAll callsites check PCG_USED before passing pc-\u003emem_cgroup, so the latter\nis never NULL.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "f212ad7cf9c73f8a7fa160e223dcb3f074441a72",
      "tree": "95789ef7ce662e86a3e4aded5dfb97c51dc7b0a0",
      "parents": [
        "af4a662144884a7dbb19acbef70878b3b955f928"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Mar 23 16:42:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:25 2011 -0700"
      },
      "message": "memcg: add memcg sanity checks at allocating and freeing pages\n\nAdd checks at allocating or freeing a page whether the page is used (iow,\ncharged) from the view point of memcg.\n\nThis check may be useful in debugging a problem and we did similar checks\nbefore the commit 52d4b9ac(memcg: allocate all page_cgroup at boot).\n\nThis patch adds some overheads at allocating or freeing memory, so it\u0027s\nenabled only when CONFIG_DEBUG_VM is enabled.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "af4a662144884a7dbb19acbef70878b3b955f928",
      "tree": "f16b04ed13de1ad1938af551e406879b90d4b0ca",
      "parents": [
        "c14f35c70e068392ccae0b2d6f755baea5eed4d6"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:25 2011 -0700"
      },
      "message": "memcg: remove NULL check from lookup_page_cgroup() result\n\nThe page_cgroup array is set up before even fork is initialized.  I\nseriously doubt that this code executes before the array is alloc\u0027d.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "c14f35c70e068392ccae0b2d6f755baea5eed4d6",
      "tree": "1e3265ba63a859ee0b45ae89303afea4de19012c",
      "parents": [
        "3403968d7a7dc373901cad0cad56b3afcb09cc50"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:24 2011 -0700"
      },
      "message": "memcg: remove impossible conditional when committing\n\nNo callsite ever passes a NULL pointer for a struct mem_cgroup * to the\ncommitting function.  There is no need to check for it.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "3403968d7a7dc373901cad0cad56b3afcb09cc50",
      "tree": "9c73d17914dab16fd90dcbae4bac303a98987da0",
      "parents": [
        "9d11ea9f163a14920487bdda77461e64d600fd48"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:24 2011 -0700"
      },
      "message": "memcg: remove unused page flag bitfield defines\n\nThese definitions have been unused since \u00274b3bde4 memcg: remove the\noverhead associated with the root cgroup\u0027.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "9d11ea9f163a14920487bdda77461e64d600fd48",
      "tree": "9435e30836ee97f3e8c235451bc944cdc8a345c4",
      "parents": [
        "b7c6167848fa36e32f1874b95c1edc02881cd040"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:23 2011 -0700"
      },
      "message": "memcg: simplify the way memory limits are checked\n\nSince transparent huge pages, checking whether memory cgroups are below\ntheir limits is no longer enough, but the actual amount of chargeable\nspace is important.\n\nTo not have more than one limit-checking interface, replace\nmemory_cgroup_check_under_limit() and memory_cgroup_check_margin() with a\nsingle memory_cgroup_margin() that returns the chargeable space and leaves\nthe comparison to the callsite.\n\nSoft limits are now checked the other way round, by using the already\nexisting function that returns the amount by which soft limits are\nexceeded: res_counter_soft_limit_excess().\n\nAlso remove all the corresponding functions on the res_counter side that\nare now no longer used.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "b7c6167848fa36e32f1874b95c1edc02881cd040",
      "tree": "d160acb871f2be4e0e7095c662b647e12a199dac",
      "parents": [
        "56039efa18f2530fc23e8ef19e716b65ee2a1d1e"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:23 2011 -0700"
      },
      "message": "memcg: soft limit reclaim should end at limit not below\n\nSoft limit reclaim continues until the usage is below the current soft\nlimit, but the documented semantics are actually that soft limit reclaim\nwill push usage back until the soft limits are met again.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "56039efa18f2530fc23e8ef19e716b65ee2a1d1e",
      "tree": "a61cbd2f760e93363657622de2cd1591db028458",
      "parents": [
        "6c191cd01a935e5b53ef43c9403c771bb7a32b60"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 23 16:42:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:22 2011 -0700"
      },
      "message": "memcg: fix ugly initialization of return value is in caller\n\nRemove initialization of vaiable in caller of memory cgroup function.\nActually, it\u0027s return value of memcg function but it\u0027s initialized in\ncaller.\n\nSome memory cgroup uses following style to bring the result of start\nfunction to the end function for avoiding races.\n\n   mem_cgroup_start_A(\u0026(*ptr))\n   /* Something very complicated can happen here. */\n   mem_cgroup_end_A(*ptr)\n\nIn some calls, *ptr should be initialized to NULL be caller.  But it\u0027s\nugly.  This patch fixes that *ptr is initialized by _start function.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c191cd01a935e5b53ef43c9403c771bb7a32b60",
      "tree": "70c49b4cb52406ea1d8c60f73ad7733f60f9cee9",
      "parents": [
        "61f2e7b0f474225b4226772830ae4b29a3a21f8d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 23 16:42:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:22 2011 -0700"
      },
      "message": "memcg: res_counter_read_u64(): fix potential races on 32-bit machines\n\nres_counter_read_u64 reads u64 value without lock.  It\u0027s dangerous in a\n32bit environment.  Add locking.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "61f2e7b0f474225b4226772830ae4b29a3a21f8d",
      "tree": "52f880fe6feec8efe5e5e028a3e0637629a500b7",
      "parents": [
        "3fca5af7860f87eb2cd706c2d7dda4ad03230a07"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:22 2011 -0700"
      },
      "message": "bitops: remove minix bitops from asm/bitops.h\n\nminix bit operations are only used by minix filesystem and useless by\nother modules.  Because byte order of inode and block bitmaps is different\non each architecture like below:\n\nm68k:\n\tbig-endian 16bit indexed bitmaps\n\nh8300, microblaze, s390, sparc, m68knommu:\n\tbig-endian 32 or 64bit indexed bitmaps\n\nm32r, mips, sh, xtensa:\n\tbig-endian 32 or 64bit indexed bitmaps for big-endian mode\n\tlittle-endian bitmaps for little-endian mode\n\nOthers:\n\tlittle-endian bitmaps\n\nIn order to move minix bit operations from asm/bitops.h to architecture\nindependent code in minix filesystem, this provides two config options.\n\nCONFIG_MINIX_FS_BIG_ENDIAN_16BIT_INDEXED is only selected by m68k.\nCONFIG_MINIX_FS_NATIVE_ENDIAN is selected by the architectures which use\nnative byte order bitmaps (h8300, microblaze, s390, sparc, m68knommu,\nm32r, mips, sh, xtensa).  The architectures which always use little-endian\nbitmaps do not select these options.\n\nFinally, we can remove minix bit operations from asm/bitops.h for all\narchitectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fca5af7860f87eb2cd706c2d7dda4ad03230a07",
      "tree": "f89b0df7317c250ccd6998fa2b1fa2f91ade4353",
      "parents": [
        "f312eff8164879e04923d41e9dd23e7850937d85"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:21 2011 -0700"
      },
      "message": "m68k: remove inline asm from minix_find_first_zero_bit\n\nAs a preparation for moving minix bit operations from asm/bitops.h to\narchitecture independent code in minix filesystem, this removes inline asm\nfrom minix_find_first_zero_bit() for m68k.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@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": "f312eff8164879e04923d41e9dd23e7850937d85",
      "tree": "9f4f6fd00ebf12afd5b070c44d12b55a29440360",
      "parents": [
        "bb5cda3d706f44e5696533c9a7353c458f2871e0"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:21 2011 -0700"
      },
      "message": "bitops: remove ext2 non-atomic bitops from asm/bitops.h\n\nAs the result of conversions, there are no users of ext2 non-atomic bit\noperations except for ext2 filesystem itself.  Now we can put them into\narchitecture independent code in ext2 filesystem, and remove from\nasm/bitops.h for all architectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb5cda3d706f44e5696533c9a7353c458f2871e0",
      "tree": "ad720028d76caf0f6ce69fd7f52086972177757b",
      "parents": [
        "6b33aff368def952be78102c0935ebd219f9a748"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:20 2011 -0700"
      },
      "message": "dm: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Alasdair Kergon \u003cagk@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": "6b33aff368def952be78102c0935ebd219f9a748",
      "tree": "d8f06ac51fb13bf34d1fc3791db02761c8662a22",
      "parents": [
        "3cdc7125c364b2baad8aba69c058b26d3dca5f52"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:20 2011 -0700"
      },
      "message": "md: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cdc7125c364b2baad8aba69c058b26d3dca5f52",
      "tree": "a26cc3fc4b4102f645da3971bea46a73e897ae36",
      "parents": [
        "9ad1e1e405fb2c1ff35f2ec67cc6ba4c6765f192"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:19 2011 -0700"
      },
      "message": "ufs: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ad1e1e405fb2c1ff35f2ec67cc6ba4c6765f192",
      "tree": "668dff5e8992b5d28e644e156a3f75287fac9b2d",
      "parents": [
        "b9b9144a5336f0d85428e2870e1010641f27b3f4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:19 2011 -0700"
      },
      "message": "udf: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9b9144a5336f0d85428e2870e1010641f27b3f4",
      "tree": "f009d3b0beb33aa5a58c4434a9f61e53689958ad",
      "parents": [
        "a49ebbabb084d345991b72818a119616431416f2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:18 2011 -0700"
      },
      "message": "reiserfs: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\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": "a49ebbabb084d345991b72818a119616431416f2",
      "tree": "9e89ac864c70ccd83c9f83df5c94d7466c28b394",
      "parents": [
        "c4354d0d6812ad6729ac33d3c8bc64585cfdb890"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:18 2011 -0700"
      },
      "message": "nilfs2: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.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": "c4354d0d6812ad6729ac33d3c8bc64585cfdb890",
      "tree": "e4cc200aeae32e65578702b8f20e22b0b9047a72",
      "parents": [
        "50e0168cc3406fc1a04d57eb08f500a173d1660d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ocfs2: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50e0168cc3406fc1a04d57eb08f500a173d1660d",
      "tree": "19f8e15048c37bfface138e19eb93855e02c266c",
      "parents": [
        "0795ccea24714c790187e3d4f23c8e5be515f42d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ext4: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0795ccea24714c790187e3d4f23c8e5be515f42d",
      "tree": "643e48522c01936d3a203fdf45e0373cfb4e7a20",
      "parents": [
        "e1dc1c81b9d1c823f2a529b9b9cf8bf5dacbce6a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ext3: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1dc1c81b9d1c823f2a529b9b9cf8bf5dacbce6a",
      "tree": "fe680c335b011615572390ebf224887e556c9469",
      "parents": [
        "cd7e48c5de223f400bbfe52dc531a70f7b668e8c"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:16 2011 -0700"
      },
      "message": "rds: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Andy Grover \u003candy.grover@oracle.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "cd7e48c5de223f400bbfe52dc531a70f7b668e8c"
}
