)]}'
{
  "log": [
    {
      "commit": "ab465df9dda42a997f7537c875127eeb6a88158c",
      "tree": "28a1ec28c15f1b59c938b7757c8f56eed0de0ecd",
      "parents": [
        "89ff77837a67994e4a4a20bb648687fbcc3083f2"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Sun May 26 11:08:52 2013 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 26 15:14:51 2013 -0700"
      },
      "message": "ipc/sem.c: Fix missing wakeups in do_smart_update_queue()\n\ndo_smart_update_queue() is called when an operation (semop,\nsemctl(SETVAL), semctl(SETALL), ...) modified the array.  It must check\nwhich of the sleeping tasks can proceed.\n\ndo_smart_update_queue() missed a few wakeups:\n - if a sleeping complex op was completed, then all per-semaphore queues\n   must be scanned - not only those that were modified by *sops\n - if a sleeping simple op proceeded, then the global queue must be\n   scanned again\n\nAnd:\n - the test for \"|sops \u003d\u003d NULL) before scanning the global queue is not\n   required: If the global queue is empty, then it doesn\u0027t need to be\n   scanned - regardless of the reason for calling do_smart_update_queue()\n\nThe patch is not optimized, i.e.  even completing a wait-for-zero\noperation causes a rescan.  This is done to keep the patch as simple as\npossible.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "091d0d55b286c9340201b4ed4470be87fc568228",
      "tree": "5417ab8864fbabe1a9931f3a9a81355cd3d3ebaa",
      "parents": [
        "de2657f94acd4f0df44626db7c4d2b71babc8cd3"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Thu May 09 15:08:15 2013 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 09 14:22:47 2013 -0700"
      },
      "message": "shm: fix null pointer deref when userspace specifies invalid hugepage size\n\nDave reported an oops triggered by trinity:\n\n  BUG: unable to handle kernel NULL pointer dereference at 0000000000000008\n  IP: newseg+0x10d/0x390\n  PGD cf8c1067 PUD cf8c2067 PMD 0\n  Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC\n  CPU: 2 PID: 7636 Comm: trinity-child2 Not tainted 3.9.0+#67\n  ...\n  Call Trace:\n    ipcget+0x182/0x380\n    SyS_shmget+0x5a/0x60\n    tracesys+0xdd/0xe2\n\nThis bug was introduced by commit af73e4d9506d (\"hugetlbfs: fix mmap\nfailure in unaligned size request\").\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Li Zefan \u003clizfan@huawei.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de2657f94acd4f0df44626db7c4d2b71babc8cd3",
      "tree": "4499951b79ff2d199bca0d87ef379d829cc1e400",
      "parents": [
        "ebc2e5e6a408a0e6ed63c0ba98c2c8a232c6b4f4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Thu May 09 16:59:59 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 09 14:17:47 2013 -0700"
      },
      "message": "ipc,sem: fix semctl(..., GETNCNT)\n\nThe semctl GETNCNT returns the number of semops waiting for the\nspecified semaphore to become nonzero.  After commit 9f1bc2c9022c\n(\"ipc,sem: have only one list in struct sem_queue\"), the semops waiting\non just one semaphore are waiting on that semaphore\u0027s list.\n\nIn order to return the correct count, we have to walk that list too, in\naddition to the sem_array\u0027s list for complex operations.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebc2e5e6a408a0e6ed63c0ba98c2c8a232c6b4f4",
      "tree": "eb376fff2b32ae63b6d5ba8faac2f26a899d51df",
      "parents": [
        "07e074503eba3ee657ab50a8c9497ddf90039e7e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Thu May 09 16:53:28 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 09 14:17:47 2013 -0700"
      },
      "message": "ipc,sem: fix semctl(..., GETZCNT)\n\nThe semctl GETZCNT returns the number of semops waiting for the\nspecified semaphore to become zero.  After commit 9f1bc2c9022c\n(\"ipc,sem: have only one list in struct sem_queue\"), the semops waiting\non just one semaphore are waiting on that semaphore\u0027s list.\n\nIn order to return the correct count, we have to walk that list too, in\naddition to the sem_array\u0027s list for complex operations.\n\nThis bug broke dbench; it works again with this patch applied.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nTested-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af73e4d9506d3b797509f3c030e7dcd554f7d9c4",
      "tree": "f9f1bf7483495b66b6cf2cfb3c676791133733b1",
      "parents": [
        "1ab4ce762370b82870834899e49c08129d7ae271"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue May 07 16:18:13 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 07 18:38:27 2013 -0700"
      },
      "message": "hugetlbfs: fix mmap failure in unaligned size request\n\nThe current kernel returns -EINVAL unless a given mmap length is\n\"almost\" hugepage aligned.  This is because in sys_mmap_pgoff() the\ngiven length is passed to vm_mmap_pgoff() as it is without being aligned\nwith hugepage boundary.\n\nThis is a regression introduced in commit 40716e29243d (\"hugetlbfs: fix\nalignment of huge page requests\"), where alignment code is pushed into\nhugetlb_file_setup() and the variable len in caller side is not changed.\n\nTo fix this, this patch partially reverts that commit, and adds\nalignment code in caller side.  And it also introduces hstate_sizelog()\nin order to get proper hstate to specified hugepage size.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d56881\n\n[akpm@linux-foundation.org: fix warning when CONFIG_HUGETLB_PAGE\u003dn]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: \u003ciceman_dvd@yahoo.com\u003e\nCc: Steven Truelove \u003csteven.truelove@utoronto.ca\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@vger.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": "941b0304a74b240c607ff098401fd4ef70c9d1cc",
      "tree": "92cb88d1851360c5e890b7daf737b264cf3181de",
      "parents": [
        "c728b9c87b59fb943c4cba0552d38152787a4ab6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 11:04:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 17:24:59 2013 -0700"
      },
      "message": "ipc: simplify rcu_read_lock() in semctl_nolock()\n\nThis trivially combines two rcu_read_lock() calls in both sides of a\nif-statement into one single one in front of the if-statement.\n\nSplit out as an independent cleanup from the previous commit.\n\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c728b9c87b59fb943c4cba0552d38152787a4ab6",
      "tree": "072a4bac6686701ef46eca2fabb06306c400391b",
      "parents": [
        "321310ced2d6cc0175c76fa512fa8a829ee35223"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 11:04:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 17:21:58 2013 -0700"
      },
      "message": "ipc: simplify semtimedop/semctl_main() common error path handling\n\nWith various straight RCU lock/unlock movements, one common exit path\npattern had become\n\n\trcu_read_unlock();\n\tgoto out_wakeup;\n\nand in fact there were no cases where we wanted to exit to out_wakeup\n_without_ releasing the RCU read lock.\n\nSo replace that pattern with \"goto out_rcu_wakeup\", and remove the old\nout_wakeup.\n\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "321310ced2d6cc0175c76fa512fa8a829ee35223",
      "tree": "0722d86daa8778a69207965cc6bc005d0def9f08",
      "parents": [
        "fbfd1d2862a8316c7191bc551c6a842e6918abb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 10:47:57 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 17:20:14 2013 -0700"
      },
      "message": "ipc: move sem_obtain_lock() rcu locking into the only caller\n\nsem_obtain_lock() was another of those functions that returned with the\nRCU lock held for reading in the success case.  Move the RCU locking to\nthe caller (semtimedop()), making it more obvious.  We already did RCU\nlocking elsewhere in that function.\n\nSide note: why does semtimedop() re-do the semphore lookup after the\nsleep, rather than just getting a reference to the semaphore it already\nlooked up originally?\n\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fbfd1d2862a8316c7191bc551c6a842e6918abb0",
      "tree": "06c5a391238bcf93bb3d7f2c587d069eeb6809e5",
      "parents": [
        "4091fd942e96af5a0b1dfa6aac5f44153ebf7cdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 10:25:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 17:19:59 2013 -0700"
      },
      "message": "ipc: fix double sem unlock in semctl error path\n\nFix another ipc locking buglet introduced by the scalability patches:\nwhen semctl_down() was changed to delay the semaphore locking, one error\npath for security_sem_semctl() went through the semaphore unlock logic\neven though the semaphore had never been locked.\n\nIntroduced by commit 16df3674efe3 (\"ipc,sem: do not hold ipc lock more\nthan necessary\")\n\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4091fd942e96af5a0b1dfa6aac5f44153ebf7cdb",
      "tree": "0455a439ad1a9884018286670e49c4e18cfaa359",
      "parents": [
        "73b29505c36eeb4751eccad41f6aad78562521f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 10:13:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 17:19:39 2013 -0700"
      },
      "message": "ipc: move the rcu_read_lock() from sem_lock_and_putref() into callers\n\nThis is another ipc semaphore locking cleanup, trying to make the\nlocking more straightforward.  We move the rcu read locking into the\ncallers of sem_lock_and_putref(), which in general means that we now\nmostly do the rcu_read_lock() and rcu_read_unlock() in the same\nfunction.\n\nMostly.  We still have the ipc_addid/newary/freeary mess, and things\nlike ipcctl_pre_down_nolock().\n\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73b29505c36eeb4751eccad41f6aad78562521f8",
      "tree": "228603617659029e082a0968b2e0a6490c121b0d",
      "parents": [
        "6d49dab8ae06c6d35a4d0967364a9ecbe8fdea2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 03 15:22:00 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 11:24:21 2013 -0700"
      },
      "message": "ipc: sem_putref() does not need the semaphore lock any more\n\nipc_rcu_putref() uses atomics for the refcount, and the games to lock\nand unlock the semaphore just to try to keep the reference counting\nworking are no longer useful.\n\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d49dab8ae06c6d35a4d0967364a9ecbe8fdea2c",
      "tree": "7f28ea59e2c52d912faf696d38e9577ffb1c29c3",
      "parents": [
        "ce857229e0c3adc211944a13a5579ef84fd7b4af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 03 15:04:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 04 11:24:00 2013 -0700"
      },
      "message": "ipc: move rcu_read_unlock() out of sem_unlock() and into callers\n\nThe IPC locking is a mess, and sem_unlock() unlocks not only the\nsemaphore spinlock, it also drops the rcu read lock.  Unlike sem_lock(),\nwhich just gets the spin-lock, and expects the caller to get the rcu\nread lock.\n\nThis all makes things very hard to follow, and it\u0027s very confusing when\nyou take the rcu read lock in one function, and then release it in\nanother.  And it has caused actual bugs: the sem_obtain_lock() function\nended up dropping the RCU read lock twice in one error path, because it\nfirst did the sem_unlock(), and then did a rcu_read_unlock() to match\nthe rcu_read_lock() it had done.\n\nThis is just a totally mindless \"remove rcu_read_unlock() from\nsem_unlock() and add it immediately after each caller\" (except for the\naforementioned bug where we did too many rcu_read_unlock(), and in\nfind_alloc_undo() where we just got the rcu_read_lock() to correct for\nthe fact that sem_unlock would immediately drop it again).\n\nWe can (and should) clean things up further, but this fixes the bug with\nthe minimal amount of subtlety.\n\nReviewed-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce857229e0c3adc211944a13a5579ef84fd7b4af",
      "tree": "f12310c2c6492dd7ef4b25dd0c6052f7a114b9cf",
      "parents": [
        "20a2078ce7705a6e0722ef5184336eb8657a58d8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri May 03 00:30:49 2013 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 02 19:51:31 2013 -0700"
      },
      "message": "ipc: fix GETALL/IPC_RM race for sysv semaphores\n\nWe can step on WARN_ON_ONCE() in sem_getref() if a semaphore is removed\njust as we are about to call sem_getref() from semctl_main(); results\nare not pretty.\n\nWe should fail with -EIDRM, same as if IPC_RM happened while we\u0027d been\ndoing allocation there.  This also expands sem_getref() at its only\ncallsite (and fixed there), while sem_getref_and_unlock() is simply\nkilled off - it has no callers at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "600fe9751aeb6f6b72de84076a05c5b8c04152c0",
      "tree": "3c02f2627ab4dad3cee03d3c03955376830b5065",
      "parents": [
        "4ada8db38a44654446fe35ceb20a1972220e0f69"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 29 12:42:09 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 02 08:03:33 2013 -0700"
      },
      "message": "ipc_schedule_free() can do vfree() directly now\n\nCommit 32fcfd40715e (\"make vfree() safe to call from interrupt\ncontexts\") made it safe to do vfree directly from the RCU callback,\nwhich allows us to simplify ipc/util.c a lot by getting rid of the\ndifferences between vmalloc/kmalloc memory.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20b4fb485227404329e41ad15588afad3df23050",
      "tree": "f3e099f0ab3da8a93b447203e294d2bb22f6dc05",
      "parents": [
        "b9394d8a657cd3c064fa432aa0905c1b58b38fe9",
        "ac3e3c5b1164397656df81b9e9ab4991184d3236"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 17:51:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 17:51:54 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull VFS updates from Al Viro,\n\nMisc cleanups all over the place, mainly wrt /proc interfaces (switch\ncreate_proc_entry to proc_create(), get rid of the deprecated\ncreate_proc_read_entry() in favor of using proc_create_data() and\nseq_file etc).\n\n7kloc removed.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)\n  don\u0027t bother with deferred freeing of fdtables\n  proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h\n  proc: Make the PROC_I() and PDE() macros internal to procfs\n  proc: Supply a function to remove a proc entry by PDE\n  take cgroup_open() and cpuset_open() to fs/proc/base.c\n  ppc: Clean up scanlog\n  ppc: Clean up rtas_flash driver somewhat\n  hostap: proc: Use remove_proc_subtree()\n  drm: proc: Use remove_proc_subtree()\n  drm: proc: Use minor-\u003eindex to label things, not PDE-\u003ename\n  drm: Constify drm_proc_list[]\n  zoran: Don\u0027t print proc_dir_entry data in debug\n  reiserfs: Don\u0027t access the proc_dir_entry in r_open(), r_start() r_show()\n  proc: Supply an accessor for getting the data from a PDE\u0027s parent\n  airo: Use remove_proc_subtree()\n  rtl8192u: Don\u0027t need to save device proc dir PDE\n  rtl8187se: Use a dir under /proc/net/r8180/\n  proc: Add proc_mkdir_data()\n  proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}\n  proc: Move PDE_NET() to fs/proc/proc_net.c\n  ...\n"
    },
    {
      "commit": "0bb80f240520c4148b623161e7856858c021696d",
      "tree": "eeb27af589bc12d5864bd2594e5eea59aabe37db",
      "parents": [
        "c3bef7bcaaa7d9f6704fcd81a171c9f0c91a2259"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 12 01:50:06 2013 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 01 17:29:39 2013 -0400"
      },
      "message": "proc: Split the namespace stuff out into linux/proc_ns.h\n\nSplit the proc namespace stuff out into linux/proc_ns.h.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\ncc: netdev@vger.kernel.org\ncc: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\ncc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d69f3bad4675ac519d41ca2b11e1c00ca115cecd",
      "tree": "343d1fab484751290b2044b347372f8a8468e762",
      "parents": [
        "41239fe82d85c135684b09f1e65622d6c1dbe8dc"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Tue Apr 30 19:15:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc: sysv shared memory limited to 8TiB\n\nTrying to run an application which was trying to put data into half of\nmemory using shmget(), we found that having a shmall value below 8EiB-8TiB\nwould prevent us from using anything more than 8TiB.  By setting\nkernel.shmall greater than 8EiB-8TiB would make the job work.\n\nIn the newseg() function, ns-\u003eshm_tot which, at 8TiB is INT_MAX.\n\nipc/shm.c:\n 458 static int newseg(struct ipc_namespace *ns, struct ipc_params *params)\n 459 {\n...\n 465         int numpages \u003d (size + PAGE_SIZE -1) \u003e\u003e PAGE_SHIFT;\n...\n 474         if (ns-\u003eshm_tot + numpages \u003e ns-\u003eshm_ctlall)\n 475                 return -ENOSPC;\n\n[akpm@linux-foundation.org: make ipc/shm.c:newseg()\u0027s numpages size_t, not int]\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nReported-by: Alex Thorlton \u003cathorlton@sgi.com\u003e\nCc: \u003cstable@vger.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": "41239fe82d85c135684b09f1e65622d6c1dbe8dc",
      "tree": "c7c44c3f87444d9636bc911ce98401ab974c21dd",
      "parents": [
        "6062a8dc0517bce23e3c2f7d2fea5e22411269a3"
      ],
      "author": {
        "name": "Nikola Pajkovsky",
        "email": "npajkovs@redhat.com",
        "time": "Tue Apr 30 19:15:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc/msg.c: use list_for_each_entry_[safe] for list traversing\n\nThe ipc/msg.c code does its list operations by hand and it open-codes the\naccesses, instead of using for_each_entry_[safe].\n\nSigned-off-by: Nikola Pajkovsky \u003cnpajkovs@redhat.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6062a8dc0517bce23e3c2f7d2fea5e22411269a3",
      "tree": "e1dd1553167fccb726a8aa9352b27ba14f188374",
      "parents": [
        "9f1bc2c9022c1d4944c4a1a44c2f365487420aca"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@surriel.com",
        "time": "Tue Apr 30 19:15:44 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc,sem: fine grained locking for semtimedop\n\nIntroduce finer grained locking for semtimedop, to handle the common case\nof a program wanting to manipulate one semaphore from an array with\nmultiple semaphores.\n\nIf the call is a semop manipulating just one semaphore in an array with\nmultiple semaphores, only take the lock for that semaphore itself.\n\nIf the call needs to manipulate multiple semaphores, or another caller is\nin a transaction that manipulates multiple semaphores, the sem_array lock\nis taken, as well as all the locks for the individual semaphores.\n\nOn a 24 CPU system, performance numbers with the semop-multi\ntest with N threads and N semaphores, look like this:\n\n\tvanilla\t\tDavidlohr\u0027s\tDavidlohr\u0027s +\tDavidlohr\u0027s +\nthreads\t\t\tpatches\t\trwlock patches\tv3 patches\n10\t610652\t\t726325\t\t1783589\t\t2142206\n20\t341570\t\t365699\t\t1520453\t\t1977878\n30\t288102\t\t307037\t\t1498167\t\t2037995\n40\t290714\t\t305955\t\t1612665\t\t2256484\n50\t288620\t\t312890\t\t1733453\t\t2650292\n60\t289987\t\t306043\t\t1649360\t\t2388008\n70\t291298\t\t306347\t\t1723167\t\t2717486\n80\t290948\t\t305662\t\t1729545\t\t2763582\n90\t290996\t\t306680\t\t1736021\t\t2757524\n100\t292243\t\t306700\t\t1773700\t\t3059159\n\n[davidlohr.bueso@hp.com: do not call sem_lock when bogus sma]\n[davidlohr.bueso@hp.com: make refcounter atomic]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nReviewed-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "9f1bc2c9022c1d4944c4a1a44c2f365487420aca",
      "tree": "a1764801b992d87e1c488035135f10ed80413944",
      "parents": [
        "c460b662d5cae467f1c341c59b02a5c5e68fed0b"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@surriel.com",
        "time": "Tue Apr 30 19:15:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc,sem: have only one list in struct sem_queue\n\nHaving only one list in struct sem_queue, and only queueing simple\nsemaphore operations on the list for the semaphore involved, allows us to\nintroduce finer grained locking for semtimedop.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nCc: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "c460b662d5cae467f1c341c59b02a5c5e68fed0b",
      "tree": "0cc2f44f5a0abd0a7a143d8bd57630e27bc52311",
      "parents": [
        "16df3674efe39f3ab63e7052f1244dd3d50e7f84"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@surriel.com",
        "time": "Tue Apr 30 19:15:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc,sem: open code and rename sem_lock\n\nRename sem_lock() to sem_obtain_lock(), so we can introduce a sem_lock()\nlater that only locks the sem_array and does nothing else.\n\nOpen code the locking from ipc_lock() in sem_obtain_lock() so we can\nintroduce finer grained locking for the sem_array in the next patch.\n\n[akpm@linux-foundation.org: propagate the ipc_obtain_object() errno out of sem_obtain_lock()]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nCc: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "16df3674efe39f3ab63e7052f1244dd3d50e7f84",
      "tree": "45ecd49ba72e0b84dbaac338d79173ba1ea4c972",
      "parents": [
        "444d0f621b64716f7868dcbde448e0c66ece4e61"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Tue Apr 30 19:15:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc,sem: do not hold ipc lock more than necessary\n\nInstead of holding the ipc lock for permissions and security checks, among\nothers, only acquire it when necessary.\n\nSome numbers....\n\n1) With Rik\u0027s semop-multi.c microbenchmark we can see the following\n   results:\n\nBaseline (3.9-rc1):\ncpus 4, threads: 256, semaphores: 128, test duration: 30 secs\ntotal operations: 151452270, ops/sec 5048409\n\n+  59.40%            a.out  [kernel.kallsyms]  [k] _raw_spin_lock\n+   6.14%            a.out  [kernel.kallsyms]  [k] sys_semtimedop\n+   3.84%            a.out  [kernel.kallsyms]  [k] avc_has_perm_flags\n+   3.64%            a.out  [kernel.kallsyms]  [k] __audit_syscall_exit\n+   2.06%            a.out  [kernel.kallsyms]  [k] copy_user_enhanced_fast_string\n+   1.86%            a.out  [kernel.kallsyms]  [k] ipc_lock\n\nWith this patchset:\ncpus 4, threads: 256, semaphores: 128, test duration: 30 secs\ntotal operations: 273156400, ops/sec 9105213\n\n+  18.54%            a.out  [kernel.kallsyms]  [k] _raw_spin_lock\n+  11.72%            a.out  [kernel.kallsyms]  [k] sys_semtimedop\n+   7.70%            a.out  [kernel.kallsyms]  [k] ipc_has_perm.isra.21\n+   6.58%            a.out  [kernel.kallsyms]  [k] avc_has_perm_flags\n+   6.54%            a.out  [kernel.kallsyms]  [k] __audit_syscall_exit\n+   4.71%            a.out  [kernel.kallsyms]  [k] ipc_obtain_object_check\n\n2) While on an Oracle swingbench DSS (data mining) workload the\n   improvements are not as exciting as with Rik\u0027s benchmark, we can see\n   some positive numbers.  For an 8 socket machine the following are the\n   percentages of %sys time incurred in the ipc lock:\n\nBaseline (3.9-rc1):\n100 swingbench users: 8,74%\n400 swingbench users: 21,86%\n800 swingbench users: 84,35%\n\nWith this patchset:\n100 swingbench users: 8,11%\n400 swingbench users: 19,93%\n800 swingbench users: 77,69%\n\n[riel@redhat.com: fix two locking bugs]\n[sasha.levin@oracle.com: prevent releasing RCU read lock twice in semctl_main]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nAcked-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nCc: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "444d0f621b64716f7868dcbde448e0c66ece4e61",
      "tree": "3947e0fe791c53c81d87a929af6d1b8e18a5c6aa",
      "parents": [
        "4d2bff5eb86e8d7b4a20934cccb93bdeebed3558"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Tue Apr 30 19:15:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:58 2013 -0700"
      },
      "message": "ipc: introduce lockless pre_down ipcctl\n\nVarious forms of ipc use ipcctl_pre_down() to retrieve an ipc object and\ncheck permissions, mostly for IPC_RMID and IPC_SET commands.\n\nIntroduce ipcctl_pre_down_nolock(), a lockless version of this function.\nThe locking version is retained, yet modified to call the nolock version\nwithout affecting its semantics, thus transparent to all ipc callers.\n\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nCc: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "4d2bff5eb86e8d7b4a20934cccb93bdeebed3558",
      "tree": "3667eec32ddcf8686335f64db553613c319f0625",
      "parents": [
        "7bb4deff61bdab3338534841cb6d0508314a41d6"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Tue Apr 30 19:15:19 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: introduce obtaining a lockless ipc object\n\nThrough ipc_lock() and therefore ipc_lock_check() we currently return the\nlocked ipc object.  This is not necessary for all situations and can,\ntherefore, cause unnecessary ipc lock contention.\n\nIntroduce analogous ipc_obtain_object() and ipc_obtain_object_check()\nfunctions that only lookup and return the ipc object.\n\nBoth these functions must be called within the RCU read critical section.\n\n[akpm@linux-foundation.org: propagate the ipc_obtain_object() errno from ipc_lock()]\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nAcked-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "7bb4deff61bdab3338534841cb6d0508314a41d6",
      "tree": "2a3be8bf66313a085b9e7c084bbcee5cad8a9b2a",
      "parents": [
        "1e3c941c52eab70c8acb2f77829c24673445c858"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Tue Apr 30 19:15:14 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: remove bogus lock comment for ipc_checkid\n\nThis series makes the sysv semaphore code more scalable, by reducing the\ntime the semaphore lock is held, and making the locking more scalable for\nsemaphore arrays with multiple semaphores.\n\nThe first four patches were written by Davidlohr Buesso, and reduce the\nhold time of the semaphore lock.\n\nThe last three patches change the sysv semaphore code locking to be more\nfine grained, providing a performance boost when multiple semaphores in a\nsemaphore array are being manipulated simultaneously.\n\nOn a 24 CPU system, performance numbers with the semop-multi\ntest with N threads and N semaphores, look like this:\n\n\tvanilla\t\tDavidlohr\u0027s\tDavidlohr\u0027s +\tDavidlohr\u0027s +\n\tthreads\t\t\tpatches\t\trwlock patches\tv3 patches\n\t10\t610652\t\t726325\t\t1783589\t\t2142206\n\t20\t341570\t\t365699\t\t1520453\t\t1977878\n\t30\t288102\t\t307037\t\t1498167\t\t2037995\n\t40\t290714\t\t305955\t\t1612665\t\t2256484\n\t50\t288620\t\t312890\t\t1733453\t\t2650292\n\t60\t289987\t\t306043\t\t1649360\t\t2388008\n\t70\t291298\t\t306347\t\t1723167\t\t2717486\n\t80\t290948\t\t305662\t\t1729545\t\t2763582\n\t90\t290996\t\t306680\t\t1736021\t\t2757524\n\t100\t292243\t\t306700\t\t1773700\t\t3059159\n\nThis patch:\n\nThere is no reason to be holding the ipc lock while reading ipcp-\u003eseq,\nhence remove misleading comment.\n\nAlso simplify the return value for the function.\n\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nCc: Emmanuel Benisty \u003cbenisty.e@gmail.com\u003e\nCc: Jason Low \u003cjason.low2@hp.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@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": "1e3c941c52eab70c8acb2f77829c24673445c858",
      "tree": "a8b35dcd0966bdd5461d327c19439c74eff4ca07",
      "parents": [
        "daaf74cf0867e3042090d56d10b194d6265b4684"
      ],
      "author": {
        "name": "HoSung Jung",
        "email": "rain6557@gmail.com",
        "time": "Tue Apr 30 19:15:09 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc/msgutil.c: use linux/uaccess.h\n\nSigned-off-by: HoSung Jung \u003crain6557@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": "daaf74cf0867e3042090d56d10b194d6265b4684",
      "tree": "374a5a8f993417a5a985ba94c3b178ee4e63a389",
      "parents": [
        "d076ac9112797884c0be35f4c93c1517aa352c0c"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:15:04 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: refactor msg list search into separate function\n\n[fengguang.wu@intel.com: find_msg can be static]\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d076ac9112797884c0be35f4c93c1517aa352c0c",
      "tree": "5a39ceeebedd90e3bd4d567449e90678c932ab04",
      "parents": [
        "8ac6ed5857c8d583e0dc2ab2165966ab143930ad"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: simplify msg list search\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ac6ed5857c8d583e0dc2ab2165966ab143930ad",
      "tree": "d5c7606ce371ff52213915267b8b34898232a7e3",
      "parents": [
        "852028af861ed6c7ab7e73053dd664eb28e55200"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: implement MSG_COPY as a new receive mode\n\nTeach the helper routines about MSG_COPY so that msgtyp is preserved as\nthe message number to copy.\n\nThe security functions affected by this change were audited and no\nadditional changes are necessary.\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "852028af861ed6c7ab7e73053dd664eb28e55200",
      "tree": "1b3be153ff8d0f9d25e20417a1edc34659cbf88a",
      "parents": [
        "2b3097a294b6daaf390010de14ca50bfccbc6fb6"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:48 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: remove msg handling from queue scan\n\nIn preparation for refactoring the queue scan into a separate\nfunction, relocate msg copying.\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b3097a294b6daaf390010de14ca50bfccbc6fb6",
      "tree": "e6a90cce5782af1922bd7f53b1b13a2b24cb836b",
      "parents": [
        "da085d4591a6fe11eac2e1f659f25b655e9f2e53"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: set EFAULT as default error in load_msg()\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da085d4591a6fe11eac2e1f659f25b655e9f2e53",
      "tree": "3f6ce1efcbf85c4a3752ef848c0fdf1e62381688",
      "parents": [
        "be5f4b335f6e05df1b5c24b7e7d79ff52d7b8dbc"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:37 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: tighten msg copy loops\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be5f4b335f6e05df1b5c24b7e7d79ff52d7b8dbc",
      "tree": "5076680c91f139ba8908d7ecd51dd02206e57496",
      "parents": [
        "3d8fa456d5ed22ce8db085a89a037b87568b2b64"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:31 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: separate msg allocation from userspace copy\n\nSeparating msg allocation enables single-block vmalloc\nallocation instead.\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d8fa456d5ed22ce8db085a89a037b87568b2b64",
      "tree": "3e8351d43bea10a10a553f10d1029dcb240a1c39",
      "parents": [
        "08d76760832993050ad8c25e63b56773ef2ca303"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Tue Apr 30 19:14:25 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 08:12:57 2013 -0700"
      },
      "message": "ipc: clamp with min()\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08d76760832993050ad8c25e63b56773ef2ca303",
      "tree": "abdcf148dfe43cd49f30f204f1dac6978107a508",
      "parents": [
        "5f56886521d6ddd3648777fae44d82382dd8c87f",
        "99e621f796d7f0341a51e8cdf32b81663b10b448"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 07:21:43 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 07:21:43 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull compat cleanup from Al Viro:\n \"Mostly about syscall wrappers this time; there will be another pile\n  with patches in the same general area from various people, but I\u0027d\n  rather push those after both that and vfs.git pile are in.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  syscalls.h: slightly reduce the jungles of macros\n  get rid of union semop in sys_semctl(2) arguments\n  make do_mremap() static\n  sparc: no need to sign-extend in sync_file_range() wrapper\n  ppc compat wrappers for add_key(2) and request_key(2) are pointless\n  x86: trim sys_ia32.h\n  x86: sys32_kill and sys32_mprotect are pointless\n  get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC\n  merge compat sys_ipc instances\n  consolidate compat lookup_dcookie()\n  convert vmsplice to COMPAT_SYSCALL_DEFINE\n  switch getrusage() to COMPAT_SYSCALL_DEFINE\n  switch epoll_pwait to COMPAT_SYSCALL_DEFINE\n  convert sendfile{,64} to COMPAT_SYSCALL_DEFINE\n  switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE\n  make SYSCALL_DEFINE\u003cn\u003e-generated wrappers do asmlinkage_protect\n  make HAVE_SYSCALL_WRAPPERS unconditional\n  consolidate cond_syscall and SYSCALL_ALIAS declarations\n  teach SYSCALL_DEFINE\u003cn\u003e how to deal with long long/unsigned long long\n  get rid of duplicate logics in __SC_....[1-6] definitions\n"
    },
    {
      "commit": "8f68fa2d1908365cb372b1aebf89d6af4b2b3871",
      "tree": "4885cec0a47e288ea797d07837e31b215425f264",
      "parents": [
        "f02c696800886382198df897b30bb796b46a8dae"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Apr 29 15:08:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:36 2013 -0700"
      },
      "message": "ipc/util.c: use register_hotmemory_notifier()\n\nSquishes a statement-with-no-effect warning, removes some ifdefs and\nshrinks .text by one byte!\n\nNote that this code fails to check for blocking_notifier_chain_register()\nfailures.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9dda78bad879595d8c4220a067fc029d6484a16",
      "tree": "376c47ed566b719009e753e917104b150a639b11",
      "parents": [
        "8510e30b46cd5467b2f930bef68a276dbc2c7d7c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 31 18:16:14 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 09 14:13:32 2013 -0400"
      },
      "message": "procfs: new helper - PDE_DATA(inode)\n\nThe only part of proc_dir_entry the code outside of fs/proc\nreally cares about is PDE(inode)-\u003edata.  Provide a helper\nfor that; static inline for now, eventually will be moved\nto fs/proc, along with the knowledge of struct proc_dir_entry\nlayout.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2dc958fa2fe6987e7ab106bd97029a09a82fcd8d",
      "tree": "c260602e6d7233a0e05f252c0dfcb4dae587b9d2",
      "parents": [
        "118c9a45fdacc6fe57910fa1d048e2d5bbc193f4"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Apr 01 11:40:51 2013 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 02 10:09:01 2013 -0700"
      },
      "message": "ipc: set msg back to -EAGAIN if copy wasn\u0027t performed\n\nMake sure that msg pointer is set back to error value in case of\nMSG_COPY flag is set and desired message to copy wasn\u0027t found.  This\ngarantees that msg is either a error pointer or a copy address.\n\nOtherwise the last message in queue will be freed without unlinking from\nthe queue (which leads to memory corruption) and the dummy allocated\ncopy won\u0027t be released.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c3de1c2d7d68c6ba4c1ecd82c68285f34d9609e",
      "tree": "6a09ce761173a966718f9009514dcc90bd9947b7",
      "parents": [
        "9064171268d838b8f283fe111ef086b9479d059a",
        "87a8ebd637dafc255070f503909a053cf0d98d3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 28 13:43:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 28 13:43:46 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull userns fixes from Eric W Biederman:\n \"The bulk of the changes are fixing the worst consequences of the user\n  namespace design oversight in not considering what happens when one\n  namespace starts off as a clone of another namespace, as happens with\n  the mount namespace.\n\n  The rest of the changes are just plain bug fixes.\n\n  Many thanks to Andy Lutomirski for pointing out many of these issues.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:\n  userns: Restrict when proc and sysfs can be mounted\n  ipc: Restrict mounting the mqueue filesystem\n  vfs: Carefully propogate mounts across user namespaces\n  vfs: Add a mount flag to lock read only bind mounts\n  userns:  Don\u0027t allow creation if the user is chrooted\n  yama:  Better permission check for ptraceme\n  pid: Handle the exit of a multi-threaded init.\n  scm: Require CAP_SYS_ADMIN over the current pidns to spoof pids.\n"
    },
    {
      "commit": "a636b702ed1805e988ad3d8ff8b52c060f8b341c",
      "tree": "6144e89780172adc58cea3cab7d75000ae31fa04",
      "parents": [
        "132c94e31b8bca8ea921f9f96a57d684fa4ae0a9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Mar 21 18:13:15 2013 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 27 07:50:06 2013 -0700"
      },
      "message": "ipc: Restrict mounting the mqueue filesystem\n\nOnly allow mounting the mqueue filesystem if the caller has CAP_SYS_ADMIN\nrights over the ipc namespace.   The principle here is if you create\nor have capabilities over it you can mount it, otherwise you get to live\nwith what other people have mounted.\n\nThis information is not particularly sensitive and mqueue essentially\nonly reports which posix messages queues exist.  Still when creating a\nrestricted environment for an application to live any extra\ninformation may be of use to someone with sufficient creativity.  The\nhistorical if imperfect way this information has been restricted has\nbeen not to allow mounts and restricting this to ipc namespace\ncreators maintains the spirit of the historical restriction.\n\nCc: stable@vger.kernel.org\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "38d78e587d4960d0db94add518d27ee74bad2301",
      "tree": "3022cdde7ae5acd60be295f3d3fd9c78814e41c4",
      "parents": [
        "ca4b3f302c90de5e516296e581c31c80125cd24b"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Fri Mar 22 15:04:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 22 16:41:21 2013 -0700"
      },
      "message": "mqueue: sys_mq_open: do not call mnt_drop_write() if read-only\n\nmnt_drop_write() must be called only if mnt_want_write() succeeded,\notherwise the mnt_writers counter will diverge.\n\nmnt_writers counters are used to check if remounting FS as read-only is\nOK, so after an extra mnt_drop_write() call, it would be impossible to\nremount mqueue FS as read-only.  Besides, on umount a warning would be\nprinted like this one:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ BUG: bad unlock balance detected! ]\n  3.9.0-rc3 #5 Not tainted\n  -------------------------------------\n  a.out/12486 is trying to release lock (sb_writers) at:\n  mnt_drop_write+0x1f/0x30\n  but there are no more locks to release!\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@vger.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": "88b9e456b1649722673ffa147914299799dc9041",
      "tree": "cb2c12ee6fc4ad53e1a15c4e19f676b1d0058183",
      "parents": [
        "e1082f45f1e2bbf6e25f6b614fc6616ebf709d19"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Fri Mar 08 12:43:27 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 08 15:05:33 2013 -0800"
      },
      "message": "ipc: don\u0027t allocate a copy larger than max\n\nWhen MSG_COPY is set, a duplicate message must be allocated for the copy\nbefore locking the queue.  However, the copy could not be larger than was\nsent which is limited to msg_ctlmax.\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \u003cstable@vger.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": "e1082f45f1e2bbf6e25f6b614fc6616ebf709d19",
      "tree": "f9d3e4326eed088acfe4cd1e9a8caf9c2138da55",
      "parents": [
        "47b3bc907328db968bc9b43c41f48f8d1e140750"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "peter@hurleysoftware.com",
        "time": "Fri Mar 08 12:43:26 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 08 15:05:33 2013 -0800"
      },
      "message": "ipc: fix potential oops when src msg \u003e 4k w/ MSG_COPY\n\nIf the src msg is \u003e 4k, then dest-\u003enext points to the\nnext allocated segment; resetting it just prior to dereferencing\nis bad.\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \u003cstable@vger.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": "e1fd1f490fa4213bd3060efa823a39d299538f72",
      "tree": "8bed18bdf003822ef1a4946e734418cf88546c24",
      "parents": [
        "4b377bab29e6a241db42f27541e7fb63713ee178"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 05 15:04:55 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 05 15:14:16 2013 -0500"
      },
      "message": "get rid of union semop in sys_semctl(2) arguments\n\njust have the bugger take unsigned long and deal with SETVAL\ncase (when we use an int member in the union) explicitly.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0e65a81b105a3f646793d46740ad90fa5c067986",
      "tree": "3ebab1b2110a978c1e86ee2ee378d33b4a191826",
      "parents": [
        "56e41d3c5aa84d679eebdb3cb8a70b03c5fbd6c3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 03 14:36:44 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 03 23:00:27 2013 -0500"
      },
      "message": "get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "56e41d3c5aa84d679eebdb3cb8a70b03c5fbd6c3",
      "tree": "62ede9a6cc31ed46d78632b65c4a66485fd5d1ad",
      "parents": [
        "d5dc77bfeeab0b03a32e3db5e31e2f64605634ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 21 23:15:25 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 03 23:00:27 2013 -0500"
      },
      "message": "merge compat sys_ipc instances\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "22d1a35da0e247a006c286842a1846acb4ffed4f",
      "tree": "45f85354e11a45903a7789169d09e90f1190b5fb",
      "parents": [
        "e1b5bb6d1236d4ad2084c53aa83dde7cdf6f8eea"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 21 17:18:07 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 03 22:58:30 2013 -0500"
      },
      "message": "make HAVE_SYSCALL_WRAPPERS unconditional\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "54924ea33f3ba702243ba4ab068d7d2852db8098",
      "tree": "0a5adb06fe63726325ef9197bb4d49f2567d5231",
      "parents": [
        "6b207ba3ebe7428a18878c58130e13a3e3bccef9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:04:53 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:19 2013 -0800"
      },
      "message": "ipc: convert to idr_alloc()\n\nConvert to the much saner new idr interface.\n\nThe new interface doesn\u0027t directly translate to the way idr_pre_get()\nwas used around ipc_addid() as preloading disables preemption.  From\nmy cursory reading, it seems like we should be able to do all\nallocation from ipc_addid(), so I moved it there.  Can you please\ncheck whether this would be okay?  If this is wrong and ipc_addid()\nshould be allowed to be called from non-sleepable context, I\u0027d suggest\nallocating id itself in the outer functions and later install the\npointer using idr_replace().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "d895cb1af15c04c522a25c79cc429076987c089b",
      "tree": "895dc9157e28f603d937a58be664e4e440d5530c",
      "parents": [
        "9626357371b519f2b955fef399647181034a77fe",
        "d3d009cb965eae7e002ea5badf603ea8f4c34915"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile (part one) from Al Viro:\n \"Assorted stuff - cleaning namei.c up a bit, fixing -\u003ed_name/-\u003ed_parent\n  locking violations, etc.\n\n  The most visible changes here are death of FS_REVAL_DOT (replaced with\n  \"has -\u003ed_weak_revalidate()\") and a new helper getting from struct file\n  to inode.  Some bits of preparation to xattr method interface changes.\n\n  Misc patches by various people sent this cycle *and* ocfs2 fixes from\n  several cycles ago that should\u0027ve been upstream right then.\n\n  PS: the next vfs pile will be xattr stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)\n  saner proc_get_inode() calling conventions\n  proc: avoid extra pde_put() in proc_fill_super()\n  fs: change return values from -EACCES to -EPERM\n  fs/exec.c: make bprm_mm_init() static\n  ocfs2/dlm: use GFP_ATOMIC inside a spin_lock\n  ocfs2: fix possible use-after-free with AIO\n  ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path\n  get_empty_filp()/alloc_file() leave both -\u003ef_pos and -\u003ef_version zero\n  target: writev() on single-element vector is pointless\n  export kernel_write(), convert open-coded instances\n  fs: encode_fh: return FILEID_INVALID if invalid fid_type\n  kill f_vfsmnt\n  vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op\n  nfsd: handle vfs_getattr errors in acl protocol\n  switch vfs_getattr() to struct path\n  default SET_PERSONALITY() in linux/elf.h\n  ceph: prepopulate inodes only when request is aborted\n  d_hash_and_lookup(): export, switch open-coded instances\n  9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()\n  9p: split dropping the acls from v9fs_set_create_acl()\n  ...\n"
    },
    {
      "commit": "94f2f14234178f118545a0be60a6371ddeb229b7",
      "tree": "313af6e9e255e9060fc24c836cd71ce712502b17",
      "parents": [
        "8d168f71551ec2a6528d01d0389b7a73c091e3e7",
        "139321c65c0584cd65c4c87a5eb3fdb4fdbd0e19"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 25 16:00:49 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 25 16:00:49 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace and namespace infrastructure changes from Eric W Biederman:\n \"This set of changes starts with a few small enhnacements to the user\n  namespace.  reboot support, allowing more arbitrary mappings, and\n  support for mounting devpts, ramfs, tmpfs, and mqueuefs as just the\n  user namespace root.\n\n  I do my best to document that if you care about limiting your\n  unprivileged users that when you have the user namespace support\n  enabled you will need to enable memory control groups.\n\n  There is a minor bug fix to prevent overflowing the stack if someone\n  creates way too many user namespaces.\n\n  The bulk of the changes are a continuation of the kuid/kgid push down\n  work through the filesystems.  These changes make using uids and gids\n  typesafe which ensures that these filesystems are safe to use when\n  multiple user namespaces are in use.  The filesystems converted for\n  3.9 are ceph, 9p, afs, ocfs2, gfs2, ncpfs, nfs, nfsd, and cifs.  The\n  changes for these filesystems were a little more involved so I split\n  the changes into smaller hopefully obviously correct changes.\n\n  XFS is the only filesystem that remains.  I was hoping I could get\n  that in this release so that user namespace support would be enabled\n  with an allyesconfig or an allmodconfig but it looks like the xfs\n  changes need another couple of days before it they are ready.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (93 commits)\n  cifs: Enable building with user namespaces enabled.\n  cifs: Convert struct cifs_ses to use a kuid_t and a kgid_t\n  cifs: Convert struct cifs_sb_info to use kuids and kgids\n  cifs: Modify struct smb_vol to use kuids and kgids\n  cifs: Convert struct cifsFileInfo to use a kuid\n  cifs: Convert struct cifs_fattr to use kuid and kgids\n  cifs: Convert struct tcon_link to use a kuid.\n  cifs: Modify struct cifs_unix_set_info_args to hold a kuid_t and a kgid_t\n  cifs: Convert from a kuid before printing current_fsuid\n  cifs: Use kuids and kgids SID to uid/gid mapping\n  cifs: Pass GLOBAL_ROOT_UID and GLOBAL_ROOT_GID to keyring_alloc\n  cifs: Use BUILD_BUG_ON to validate uids and gids are the same size\n  cifs: Override unmappable incoming uids and gids\n  nfsd: Enable building with user namespaces enabled.\n  nfsd: Properly compare and initialize kuids and kgids\n  nfsd: Store ex_anon_uid and ex_anon_gid as kuids and kgids\n  nfsd: Modify nfsd4_cb_sec to use kuids and kgids\n  nfsd: Handle kuids and kgids in the nfs4acl to posix_acl conversion\n  nfsd: Convert nfsxdr to use kuids and kgids\n  nfsd: Convert nfs3xdr to use kuids and kgids\n  ...\n"
    },
    {
      "commit": "41badc15cbad0350de34408c1b0c690f9df76d4b",
      "tree": "2545134398b99b37259bf6412a0bb56442f120fa",
      "parents": [
        "1869305009857cdeaabe6283bcdc2359c5784543"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:47 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: make do_mmap_pgoff return populate as a size in bytes, not as a bool\n\ndo_mmap_pgoff() rounds up the desired size to the next PAGE_SIZE\nmultiple, however there was no equivalent code in mm_populate(), which\ncaused issues.\n\nThis could be fixed by introduced the same rounding in mm_populate(),\nhowever I think it\u0027s preferable to make do_mmap_pgoff() return populate\nas a size rather than as a boolean, so we don\u0027t have to duplicate the\nsize rounding logic in mm_populate().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@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": "bebeb3d68b24bb4132d452c5707fe321208bcbcd",
      "tree": "6e609cb7323fb1b4b7026fa0e35867145a181094",
      "parents": [
        "940e7da5163029978c2f6b5bbe213607add59062"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:10 2013 -0800"
      },
      "message": "mm: introduce mm_populate() for populating new vmas\n\nWhen creating new mappings using the MAP_POPULATE / MAP_LOCKED flags (or\nwith MCL_FUTURE in effect), we want to populate the pages within the\nnewly created vmas.  This may take a while as we may have to read pages\nfrom disk, so ideally we want to do this outside of the write-locked\nmmap_sem region.\n\nThis change introduces mm_populate(), which is used to defer populating\nsuch mappings until after the mmap_sem write lock has been released.\nThis is implemented as a generalization of the former do_mlock_pages(),\nwhich accomplished the same task but was using during mlock() /\nmlockall().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReported-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@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": "39b652527457452f09b35044fb4f8b3b0eabafdf",
      "tree": "acd8fda1d4e37c58c68fe0cfb9288d5d06e14441",
      "parents": [
        "1afc99beaf0fca3767d9b67789a7ae91c4f7a9c9"
      ],
      "author": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Wed Sep 12 20:11:55 2012 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:32 2013 -0500"
      },
      "message": "fs: Preserve error code in get_empty_filp(), part 2\n\nAllocating a file structure in function get_empty_filp() might fail because\nof several reasons:\n - not enough memory for file structures\n - operation is not allowed\n - user is over its limit\n\nCurrently the function returns NULL in all cases and we loose the exact\nreason of the error. All callers of get_empty_filp() assume that the function\ncan fail with ENFILE only.\n\nReturn error through pointer. Change all callers to preserve this error code.\n\n[AV: cleaned up a bit, carved the get_empty_filp() part out into a separate commit\n(things remaining here deal with alloc_file()), removed pipe(2) behaviour change]\n\nSigned-off-by: Anatol Pomozov \u003canatol.pomozov@gmail.com\u003e\nReviewed-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "496ad9aa8ef448058e36ca7a787c61f2e63f0f54",
      "tree": "8f4abde793cd7db5bb8fde6d27ebcacd0e54379a",
      "parents": [
        "57eccb830f1cc93d4b506ba306d8dfa685e0c88f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 23 17:07:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:31 2013 -0500"
      },
      "message": "new helper: file_inode(file)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bc1b69ed22a704fb1cc83d75b2eb46508a06c820",
      "tree": "db9d3feb6cc45303c8bbda31d4ce6a3569eda929",
      "parents": [
        "2b8576cb09a7b1b581c253554bf9e05d3adce7d6"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon Jan 28 11:09:01 2013 +0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Jan 27 19:25:50 2013 -0800"
      },
      "message": "userns: Allow the unprivileged users to mount mqueue fs\n\nThis patch allow the unprivileged user to mount mqueuefs in\nuser ns.\n\nIf two userns share the same ipcns,the files in mqueue fs\nshould be seen in both these two userns.\n\nIf the userns has its own ipcns,it has its own mqueue fs too.\nipcns has already done this job well.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "3fcfe78658695b424314ddb76abc8d58b4fc98e6",
      "tree": "755f48f8377acf7e226f0168bfacb870aba7781e",
      "parents": [
        "51eeacaa07d1372a7bc9612548ffe6cd846f4f2f"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:35:03 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:46 2013 -0800"
      },
      "message": "ipc: add more comments to message copying related code\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "51eeacaa07d1372a7bc9612548ffe6cd846f4f2f",
      "tree": "d92e69517b9973d5c2dd4697e3b38be6539bc2ca",
      "parents": [
        "b30efe2775ee0a1d911514292579770b214d31c3"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:35:01 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:46 2013 -0800"
      },
      "message": "ipc: simplify message copying\n\nRemove the redundant and confusing fill_copy().  Also add copy_msg()\ncheck for error.  In this case exit from the function have to be done\ninstead of break, because further code interprets any error as EAGAIN.\n\nAlso define copy_msg() for the case when CONFIG_CHECKPOINT_RESTORE is\ndisabled.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "b30efe2775ee0a1d911514292579770b214d31c3",
      "tree": "d1059fdc2cd3eb2c44a0b4b2b641a63755db850c",
      "parents": [
        "85398aa8de1d68f44ff1b5d0ed9ceb2b0c51ce49"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:35:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:46 2013 -0800"
      },
      "message": "ipc: convert prepare_copy() from macro to function\n\nThis code works if CONFIG_CHECKPOINT_RESTORE is disabled.\n\n[akpm@linux-foundation.org: remove __maybe_unused]\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "85398aa8de1d68f44ff1b5d0ed9ceb2b0c51ce49",
      "tree": "945dba3d9fdb7a607134955b50cdeedf6520d2dd",
      "parents": [
        "3a665531a3b7c2ad2c87903b24646be6916340e4"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:34:58 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:45 2013 -0800"
      },
      "message": "ipc: simplify free_copy() call\n\nPassing and checking of msgflg to free_copy() is redundant.  This patch\nsets copy to NULL on declaration instead and checks for non-NULL in\nfree_copy().\n\nNote: in case of copy allocation failure, error is returned immediately.\nSo no need to check for IS_ERR() in free_copy().\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "3a665531a3b7c2ad2c87903b24646be6916340e4",
      "tree": "9f5186e3b9786216a74c092b6652d958abc8e2a9",
      "parents": [
        "4a674f34ba04a002244edaf891b5da7fc1473ae8"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:34:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:45 2013 -0800"
      },
      "message": "selftests: IPC message queue copy feature test\n\nThis test can be used to check wheither kernel supports IPC message queue\ncopy and restore features (required by CRIU project).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "4a674f34ba04a002244edaf891b5da7fc1473ae8",
      "tree": "14544a5d49b4a218bac3f5995503c8e208735cef",
      "parents": [
        "f9dd87f4738c7555aca2cdf8cb2b2326cafb0cad"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:34:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:45 2013 -0800"
      },
      "message": "ipc: introduce message queue copy feature\n\nThis patch is required for checkpoint/restore in userspace.\n\nc/r requires some way to get all pending IPC messages without deleting\nthem from the queue (checkpoint can fail and in this case tasks will be\nresumed, so queue have to be valid).\n\nTo achive this, new operation flag MSG_COPY for sys_msgrcv() system call\nwas introduced.  If this flag was specified, then mtype is interpreted as\nnumber of the message to copy.\n\nIf MSG_COPY is set, then kernel will allocate dummy message with passed\nsize, and then use new copy_msg() helper function to copy desired message\n(instead of unlinking it from the queue).\n\nNotes:\n\n1) Return -ENOSYS if MSG_COPY is specified, but\n   CONFIG_CHECKPOINT_RESTORE is not set.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "f9dd87f4738c7555aca2cdf8cb2b2326cafb0cad",
      "tree": "4fb581910eaee4309ae6befeef8c4f921b274c5d",
      "parents": [
        "03f595668017f1a1fb971c02fc37140bc6e7bb1c"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:34:52 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:45 2013 -0800"
      },
      "message": "ipc: message queue receive cleanup\n\nMove all message related manipulation into one function msg_fill().\nActually, two functions because of the compat one.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "03f595668017f1a1fb971c02fc37140bc6e7bb1c",
      "tree": "3aa5c4b32b5fd396f0d74679548de8c09ca195a1",
      "parents": [
        "9afdacda0252fc1ddb7907728e878518edbcdfce"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:34:50 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:45 2013 -0800"
      },
      "message": "ipc: add sysctl to specify desired next object id\n\nAdd 3 new variables and sysctls to tune them (by one \"next_id\" variable\nfor messages, semaphores and shared memory respectively).  This variable\ncan be used to set desired id for next allocated IPC object.  By default\nit\u0027s equal to -1 and old behaviour is preserved.  If this variable is\nnon-negative, then desired idr will be extracted from it and used as a\nstart value to search for free IDR slot.\n\nNotes:\n\n1) this patch doesn\u0027t guarantee that the new object will have desired\n   id.  So it\u0027s up to user space how to handle new object with wrong id.\n\n2) After a sucessful id allocation attempt, \"next_id\" will be set back\n   to -1 (if it was non-negative).\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "9afdacda0252fc1ddb7907728e878518edbcdfce",
      "tree": "1ec270f4fd688353c51c2d21f26b22b00f7ef65a",
      "parents": [
        "2d79cf8a9dfbaef1e57c88a709689577c8482a17"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 04 15:34:47 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 04 16:11:45 2013 -0800"
      },
      "message": "ipc: remove forced assignment of selected message\n\nThis is a cleanup patch. The assignment is redundant.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "a2faf2fc534f57ba26bc4d613795236ed4f5fb1c",
      "tree": "d75c4daadb469c8f08c498532fbf1fff68879e69",
      "parents": [
        "4351654e3ddf86a04966163dce4def586303e5cc",
        "5155040ed349950e16c093ba8e65ad534994df2a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:55:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:55:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull (again) user namespace infrastructure changes from Eric Biederman:\n \"Those bugs, those darn embarrasing bugs just want don\u0027t want to get\n  fixed.\n\n  Linus I just updated my mirror of your kernel.org tree and it appears\n  you successfully pulled everything except the last 4 commits that fix\n  those embarrasing bugs.\n\n  When you get a chance can you please repull my branch\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:\n  userns: Fix typo in description of the limitation of userns_install\n  userns: Add a more complete capability subset test to commit_creds\n  userns: Require CAP_SYS_ADMIN for most uses of setns.\n  Fix cap_capable to only allow owners in the parent user namespace to have caps.\n"
    },
    {
      "commit": "6a2b60b17b3e48a418695a94bd2420f6ab32e519",
      "tree": "54b7792fa68b8890f710fa6398b6ba8626a039a8",
      "parents": [
        "9228ff90387e276ad67b10c0eb525c9d6a57d5e9",
        "98f842e675f96ffac96e6c50315790912b2812be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"While small this set of changes is very significant with respect to\n  containers in general and user namespaces in particular.  The user\n  space interface is now complete.\n\n  This set of changes adds support for unprivileged users to create user\n  namespaces and as a user namespace root to create other namespaces.\n  The tyranny of supporting suid root preventing unprivileged users from\n  using cool new kernel features is broken.\n\n  This set of changes completes the work on setns, adding support for\n  the pid, user, mount namespaces.\n\n  This set of changes includes a bunch of basic pid namespace\n  cleanups/simplifications.  Of particular significance is the rework of\n  the pid namespace cleanup so it no longer requires sending out\n  tendrils into all kinds of unexpected cleanup paths for operation.  At\n  least one case of broken error handling is fixed by this cleanup.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been converted from regular files\n  to magic symlinks which prevents incorrect caching by the VFS,\n  ensuring the files always refer to the namespace the process is\n  currently using and ensuring that the ptrace_mayaccess permission\n  checks are always applied.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been given stable inode numbers\n  so it is now possible to see if different processes share the same\n  namespaces.\n\n  Through the David Miller\u0027s net tree are changes to relax many of the\n  permission checks in the networking stack to allowing the user\n  namespace root to usefully use the networking stack.  Similar changes\n  for the mount namespace and the pid namespace are coming through my\n  tree.\n\n  Two small changes to add user namespace support were commited here adn\n  in David Miller\u0027s -net tree so that I could complete the work on the\n  /proc/\u003cpid\u003e/ns/ files in this tree.\n\n  Work remains to make it safe to build user namespaces and 9p, afs,\n  ceph, cifs, coda, gfs2, ncpfs, nfs, nfsd, ocfs2, and xfs so the\n  Kconfig guard remains in place preventing that user namespaces from\n  being built when any of those filesystems are enabled.\n\n  Future design work remains to allow root users outside of the initial\n  user namespace to mount more than just /proc and /sys.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (38 commits)\n  proc: Usable inode numbers for the namespace file descriptors.\n  proc: Fix the namespace inode permission checks.\n  proc: Generalize proc inode allocation\n  userns: Allow unprivilged mounts of proc and sysfs\n  userns: For /proc/self/{uid,gid}_map derive the lower userns from the struct file\n  procfs: Print task uids and gids in the userns that opened the proc file\n  userns: Implement unshare of the user namespace\n  userns: Implent proc namespace operations\n  userns: Kill task_user_ns\n  userns: Make create_new_namespaces take a user_ns parameter\n  userns: Allow unprivileged use of setns.\n  userns: Allow unprivileged users to create new namespaces\n  userns: Allow setting a userns mapping to your current uid.\n  userns: Allow chown and setgid preservation\n  userns: Allow unprivileged users to create user namespaces.\n  userns: Ignore suid and sgid on binaries if the uid or gid can not be mapped\n  userns: fix return value on mntns_install() failure\n  vfs: Allow unprivileged manipulation of the mount namespace.\n  vfs: Only support slave subtrees across different user namespaces\n  vfs: Add a user namespace reference from struct mnt_namespace\n  ...\n"
    },
    {
      "commit": "5e4a08476b50fa39210fca82e03325cc46b9c235",
      "tree": "fb3a3c6b4c3f613abf354adefcff8a74051acdce",
      "parents": [
        "520d9eabce18edfef76a60b7b839d54facafe1f9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Dec 14 07:55:36 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Dec 14 16:12:03 2012 -0800"
      },
      "message": "userns: Require CAP_SYS_ADMIN for most uses of setns.\n\nAndy Lutomirski \u003cluto@amacapital.net\u003e found a nasty little bug in\nthe permissions of setns.  With unprivileged user namespaces it\nbecame possible to create new namespaces without privilege.\n\nHowever the setns calls were relaxed to only require CAP_SYS_ADMIN in\nthe user nameapce of the targed namespace.\n\nWhich made the following nasty sequence possible.\n\npid \u003d clone(CLONE_NEWUSER | CLONE_NEWNS);\nif (pid \u003d\u003d 0) { /* child */\n\tsystem(\"mount --bind /home/me/passwd /etc/passwd\");\n}\nelse if (pid !\u003d 0) { /* parent */\n\tchar path[PATH_MAX];\n\tsnprintf(path, sizeof(path), \"/proc/%u/ns/mnt\");\n\tfd \u003d open(path, O_RDONLY);\n\tsetns(fd, 0);\n\tsystem(\"su -\");\n}\n\nPrevent this possibility by requiring CAP_SYS_ADMIN\nin the current user namespace when joing all but the user namespace.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "42d7395feb56f0655cd8b68e06fc6063823449f8",
      "tree": "47cfbad1737d98d9752a2aab7e525f1fe5194d27",
      "parents": [
        "ff604cf6d41f1e05f34762e1d764fe14a0f5f964"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Dec 11 16:01:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: support more pagesizes for MAP_HUGETLB/SHM_HUGETLB\n\nThere was some desire in large applications using MAP_HUGETLB or\nSHM_HUGETLB to use 1GB huge pages on some mappings, and stay with 2MB on\nothers.  This is useful together with NUMA policy: use 2MB interleaving\non some mappings, but 1GB on local mappings.\n\nThis patch extends the IPC/SHM syscall interfaces slightly to allow\nspecifying the page size.\n\nIt borrows some upper bits in the existing flag arguments and allows\nencoding the log of the desired page size in addition to the *_HUGETLB\nflag.  When 0 is specified the default size is used, this makes the\nchange fully compatible.\n\nExtending the internal hugetlb code to handle this is straight forward.\nInstead of a single mount it just keeps an array of them and selects the\nright mount based on the specified page size.  When no page size is\nspecified it uses the mount of the default page size.\n\nThe change is not visible in /proc/mounts because internal mounts don\u0027t\nappear there.  It also has very little overhead: the additional mounts\njust consume a super block, but not more memory when not used.\n\nI also exported the new flags to the user headers (they were previously\nunder __KERNEL__).  Right now only symbols for x86 and some other\narchitecture for 1GB and 2MB are defined.  The interface should already\nwork for all other architectures though.  Only architectures that define\nmultiple hugetlb sizes actually need it (that is currently x86, tile,\npowerpc).  However tile and powerpc have user configurable hugetlb\nsizes, so it\u0027s not easy to add defines.  A program on those\narchitectures would need to query sysfs and use the appropiate log2.\n\n[akpm@linux-foundation.org: cleanups]\n[rientjes@google.com: fix build]\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98f842e675f96ffac96e6c50315790912b2812be",
      "tree": "ed4dee9a6e54e3443e9f3f1614c8a2fcf9b31e0a",
      "parents": [
        "bf056bfa80596a5d14b26b17276a56a0dcb080e5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Jun 15 10:21:48 2011 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 20 04:19:49 2012 -0800"
      },
      "message": "proc: Usable inode numbers for the namespace file descriptors.\n\nAssign a unique proc inode to each namespace, and use that\ninode number to ensure we only allocate at most one proc\ninode for every namespace in proc.\n\nA single proc inode per namespace allows userspace to test\nto see if two processes are in the same namespace.\n\nThis has been a long requested feature and only blocked because\na naive implementation would put the id in a global space and\nwould ultimately require having a namespace for the names of\nnamespaces, making migration and certain virtualization tricks\nimpossible.\n\nWe still don\u0027t have per superblock inode numbers for proc, which\nappears necessary for application unaware checkpoint/restart and\nmigrations (if the application is using namespace file descriptors)\nbut that is now allowd by the design if it becomes important.\n\nI have preallocated the ipc and uts initial proc inode numbers so\ntheir structures can be statically initialized.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "bcf58e725ddc45d31addbc6627d4f0edccc824c1",
      "tree": "e6dff2fbed40f26d8c45f78e23a7476527573bf1",
      "parents": [
        "142e1d1d5f088e7a38659daca6e84a730967774a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 04:02:49 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 20 04:17:43 2012 -0800"
      },
      "message": "userns: Make create_new_namespaces take a user_ns parameter\n\nModify create_new_namespaces to explicitly take a user namespace\nparameter, instead of implicitly through the task_struct.\n\nThis allows an implementation of unshare(CLONE_NEWUSER) where\nthe new user namespace is not stored onto the current task_struct\nuntil after all of the namespaces are created.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "142e1d1d5f088e7a38659daca6e84a730967774a",
      "tree": "e2297a9a77f55bb15a566979c9c5658cff4737f8",
      "parents": [
        "b33c77ef23dd3ec5692c9c0cc739a3f5f0f2baae"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 01:13:20 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 20 04:17:42 2012 -0800"
      },
      "message": "userns: Allow unprivileged use of setns.\n\n- Push the permission check from the core setns syscall into\n  the setns install methods where the user namespace of the\n  target namespace can be determined, and used in a ns_capable\n  call.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "adb5c2473d3f91526c79db972aafb20a56d3fbb3",
      "tree": "f0427a11a91af2f5a5d0037ce52c32633019120b",
      "parents": [
        "669abf4e5539c8aa48bf28c965be05c0a7b58a27"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 16:43:13 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 20:15:09 2012 -0400"
      },
      "message": "audit: make audit_inode take struct filename\n\nKeep a pointer to the audit_names \"slot\" in struct filename.\n\nHave all of the audit_inode callers pass a struct filename ponter to\naudit_inode instead of a string pointer. If the aname field is already\npopulated, then we can skip walking the list altogether and just use it\ndirectly.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91a27b2a756784714e924e5e854b919273082d26",
      "tree": "3913246b7d6e62703ec915f481e3a7159393f0f0",
      "parents": [
        "8e377d15078a501c4da98471f56396343c407d92"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:28 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 20:14:55 2012 -0400"
      },
      "message": "vfs: define struct filename and have getname() return it\n\ngetname() is intended to copy pathname strings from userspace into a\nkernel buffer. The result is just a string in kernel space. It would\nhowever be quite helpful to be able to attach some ancillary info to\nthe string.\n\nFor instance, we could attach some audit-related info to reduce the\namount of audit-related processing needed. When auditing is enabled,\nwe could also call getname() on the string more than once and not\nneed to recopy it from userspace.\n\nThis patchset converts the getname()/putname() interfaces to return\na struct instead of a string. For now, the struct just tracks the\nstring in kernel space and the original userland pointer for it.\n\nLater, we\u0027ll add other information to the struct as it becomes\nconvenient.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bfcec7087458812f575d9022b2d151641f34ee84",
      "tree": "6c0f7dd3b016992da8d113ceeaae404c6abc03a1",
      "parents": [
        "78e2e802a8519031e5858595070b39713e26340d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:23 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:01 2012 -0400"
      },
      "message": "audit: set the name_len in audit_inode for parent lookups\n\nCurrently, this gets set mostly by happenstance when we call into\naudit_inode_child. While that might be a little more efficient, it seems\nwrong. If the syscall ends up failing before audit_inode_child ever gets\ncalled, then you\u0027ll have an audit_names record that shows the full path\nbut has the parent inode info attached.\n\nFix this by passing in a parent flag when we call audit_inode that gets\nset to the value of LOOKUP_PARENT. We can then fix up the pathname for\nthe audit entry correctly from the get-go.\n\nWhile we\u0027re at it, clean up the no-op macro for audit_inode in the\n!CONFIG_AUDITSYSCALL case.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1638113d9d8b7e04c1eeae9014d43f6381a74040",
      "tree": "6eccf05889ebd3ebf916a602b4c8dc74b2f8105f",
      "parents": [
        "1ae1c1d09f220ded48ee9a7d91a65e94f95c4af1"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:31 2012 +0900"
      },
      "message": "ipc/mqueue: remove unnecessary rb_init_node() calls\n\nCommit d6629859b36d (\"ipc/mqueue: improve performance of send/recv\") and\nce2d52cc (\"ipc/mqueue: add rbtree node caching support\") introduced an\nrbtree of message priorities, and usage of rb_init_node() to initialize\nthe corresponding nodes.  As it turns out, rb_init_node() is unnecessary\nhere, as the nodes are fully initialized on insertion by rb_link_node()\nand the code doesn\u0027t access nodes that aren\u0027t inserted on the rbtree.\n\nRemoving the rb_init_node() calls as I removed that function during\nrbtree API cleanups (the only other use of it was in a place that\nsimilarly didn\u0027t require it).\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Doug Ledford \u003cdledford@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": "aab174f0df5d72d31caccf281af5f614fa254578",
      "tree": "2a172c5009c4ac8755e858593154c258ce7709a0",
      "parents": [
        "ca41cc96b2813221b05af57d0355157924de5a07",
        "2bd2c1941f141ad780135ccc1cd08ca71a24f10a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs update from Al Viro:\n\n - big one - consolidation of descriptor-related logics; almost all of\n   that is moved to fs/file.c\n\n   (BTW, I\u0027m seriously tempted to rename the result to fd.c.  As it is,\n   we have a situation when file_table.c is about handling of struct\n   file and file.c is about handling of descriptor tables; the reasons\n   are historical - file_table.c used to be about a static array of\n   struct file we used to have way back).\n\n   A lot of stray ends got cleaned up and converted to saner primitives,\n   disgusting mess in android/binder.c is still disgusting, but at least\n   doesn\u0027t poke so much in descriptor table guts anymore.  A bunch of\n   relatively minor races got fixed in process, plus an ext4 struct file\n   leak.\n\n - related thing - fget_light() partially unuglified; see fdget() in\n   there (and yes, it generates the code as good as we used to have).\n\n - also related - bits of Cyrill\u0027s procfs stuff that got entangled into\n   that work; _not_ all of it, just the initial move to fs/proc/fd.c and\n   switch of fdinfo to seq_file.\n\n - Alex\u0027s fs/coredump.c spiltoff - the same story, had been easier to\n   take that commit than mess with conflicts.  The rest is a separate\n   pile, this was just a mechanical code movement.\n\n - a few misc patches all over the place.  Not all for this cycle,\n   there\u0027ll be more (and quite a few currently sit in akpm\u0027s tree).\"\n\nFix up trivial conflicts in the android binder driver, and some fairly\nsimple conflicts due to two different changes to the sock_alloc_file()\ninterface (\"take descriptor handling from sock_alloc_file() to callers\"\nvs \"net: Providing protocol type via system.sockprotoname xattr of\n/proc/PID/fd entries\" adding a dentry name to the socket)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (72 commits)\n  MAX_LFS_FILESIZE should be a loff_t\n  compat: fs: Generic compat_sys_sendfile implementation\n  fs: push rcu_barrier() from deactivate_locked_super() to filesystems\n  btrfs: reada_extent doesn\u0027t need kref for refcount\n  coredump: move core dump functionality into its own file\n  coredump: prevent double-free on an error path in core dumper\n  usb/gadget: fix misannotations\n  fcntl: fix misannotations\n  ceph: don\u0027t abuse d_delete() on failure exits\n  hypfs: -\u003ed_parent is never NULL or negative\n  vfs: delete surplus inode NULL check\n  switch simple cases of fget_light to fdget\n  new helpers: fdget()/fdput()\n  switch o2hb_region_dev_write() to fget_light()\n  proc_map_files_readdir(): don\u0027t bother with grabbing files\n  make get_file() return its argument\n  vhost_set_vring(): turn pollstart/pollstop into bool\n  switch prctl_set_mm_exe_file() to fget_light()\n  switch xfs_find_handle() to fget_light()\n  switch xfs_swapext() to fget_light()\n  ...\n"
    },
    {
      "commit": "437589a74b6a590d175f86cf9f7b2efcee7765e7",
      "tree": "37bf8635b1356d80ef002b00e84f3faf3d555a63",
      "parents": [
        "68d47a137c3bef754923bccf73fb639c9b0bbd5e",
        "72235465864d84cedb2d9f26f8e1de824ee20339"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"This is a mostly modest set of changes to enable basic user namespace\n  support.  This allows the code to code to compile with user namespaces\n  enabled and removes the assumption there is only the initial user\n  namespace.  Everything is converted except for the most complex of the\n  filesystems: autofs4, 9p, afs, ceph, cifs, coda, fuse, gfs2, ncpfs,\n  nfs, ocfs2 and xfs as those patches need a bit more review.\n\n  The strategy is to push kuid_t and kgid_t values are far down into\n  subsystems and filesystems as reasonable.  Leaving the make_kuid and\n  from_kuid operations to happen at the edge of userspace, as the values\n  come off the disk, and as the values come in from the network.\n  Letting compile type incompatible compile errors (present when user\n  namespaces are enabled) guide me to find the issues.\n\n  The most tricky areas have been the places where we had an implicit\n  union of uid and gid values and were storing them in an unsigned int.\n  Those places were converted into explicit unions.  I made certain to\n  handle those places with simple trivial patches.\n\n  Out of that work I discovered we have generic interfaces for storing\n  quota by projid.  I had never heard of the project identifiers before.\n  Adding full user namespace support for project identifiers accounts\n  for most of the code size growth in my git tree.\n\n  Ultimately there will be work to relax privlige checks from\n  \"capable(FOO)\" to \"ns_capable(user_ns, FOO)\" where it is safe allowing\n  root in a user names to do those things that today we only forbid to\n  non-root users because it will confuse suid root applications.\n\n  While I was pushing kuid_t and kgid_t changes deep into the audit code\n  I made a few other cleanups.  I capitalized on the fact we process\n  netlink messages in the context of the message sender.  I removed\n  usage of NETLINK_CRED, and started directly using current-\u003etty.\n\n  Some of these patches have also made it into maintainer trees, with no\n  problems from identical code from different trees showing up in\n  linux-next.\n\n  After reading through all of this code I feel like I might be able to\n  win a game of kernel trivial pursuit.\"\n\nFix up some fairly trivial conflicts in netfilter uid/git logging code.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (107 commits)\n  userns: Convert the ufs filesystem to use kuid/kgid where appropriate\n  userns: Convert the udf filesystem to use kuid/kgid where appropriate\n  userns: Convert ubifs to use kuid/kgid\n  userns: Convert squashfs to use kuid/kgid where appropriate\n  userns: Convert reiserfs to use kuid and kgid where appropriate\n  userns: Convert jfs to use kuid/kgid where appropriate\n  userns: Convert jffs2 to use kuid and kgid where appropriate\n  userns: Convert hpfs to use kuid and kgid where appropriate\n  userns: Convert btrfs to use kuid/kgid where appropriate\n  userns: Convert bfs to use kuid/kgid where appropriate\n  userns: Convert affs to use kuid/kgid wherwe appropriate\n  userns: On alpha modify linux_to_osf_stat to use convert from kuids and kgids\n  userns: On ia64 deal with current_uid and current_gid being kuid and kgid\n  userns: On ppc convert current_uid from a kuid before printing.\n  userns: Convert s390 getting uid and gid system calls to use kuid and kgid\n  userns: Convert s390 hypfs to use kuid and kgid where appropriate\n  userns: Convert binder ipc to use kuids\n  userns: Teach security_path_chown to take kuids and kgids\n  userns: Add user namespace support to IMA\n  userns: Convert EVM to deal with kuids and kgids in it\u0027s hmac computation\n  ...\n"
    },
    {
      "commit": "2903ff019b346ab8d36ebbf54853c3aaf6590608",
      "tree": "962d94054765bb37bc00e977c3036e65c5fd91fe",
      "parents": [
        "a5b470ba06aa3f96999ede5feba178df6bdb134a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Aug 28 12:52:22 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Sep 26 22:20:08 2012 -0400"
      },
      "message": "switch simple cases of fget_light to fdget\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "515e0d6634086d61ae846f0e8785b6f0220f3422",
      "tree": "b099c7ec3b4c075851a70e56c4683e412ca3492e",
      "parents": [
        "bdbf69437a5ae6f820a6d3aa8c6e3c3ce7e6e05f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 27 03:11:34 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Sep 26 21:10:09 2012 -0400"
      },
      "message": "switch mqueue syscalls to fget_light()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1efdb69b0bb41dec8ee3e2cac0a0f167837d0919",
      "tree": "a9eb64c44d773e7b4fead20a7bfa9a354abf3bfa",
      "parents": [
        "9582d90196aa879e6acf866f02a1adead08707b5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 16:54:11 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Sep 06 22:17:20 2012 -0700"
      },
      "message": "userns: Convert ipc to use kuid and kgid where appropriate\n\n- Store the ipc owner and creator with a kuid\n- Store the ipc group and the crators group with a kgid.\n- Add error handling to ipc_update_perms, allowing it to\n  fail if the uids and gids can not be converted to kuids\n  or kgids.\n- Modify the proc files to display the ipc creator and\n  owner in the user namespace of the opener of the proc file.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "312b90fbed0e07f61d2f060789440a83df6bba23",
      "tree": "ced839730a44af0cd472b08cb5e0ca46894188d5",
      "parents": [
        "20fb1936dee63fe397236d4ff3fd253a62b7b0b8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 06 10:18:17 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Aug 18 16:51:26 2012 -0400"
      },
      "message": "mqueue: lift mnt_want_write() outside -\u003ei_mutex, clean up a bit\n\nthe way it abuses -\u003ed_fsdata still needs to be killed, but that\u0027s\na separate story.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c1d7e01d7877a397655277a920aeaa3830ed9461",
      "tree": "26ba70159355ba60d835cef1a417f03eaec0148c",
      "parents": [
        "05ba3f1aa1b04e921068249dd52a80bc84c2aeb4"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon Jul 30 14:42:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION\n\nRather than #define the options manually in the architecture code, add\nKconfig options for them and select them there instead.  This also allows\nus to select the compat IPC version parsing automatically for platforms\nusing the old compat IPC interface.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05ba3f1aa1b04e921068249dd52a80bc84c2aeb4",
      "tree": "1176cbea1c1272e7f9567d8f2e71c56510f6efcf",
      "parents": [
        "b610c04c667f3c056243fd64041c7f152a512ee4"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon Jul 30 14:42:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "ipc: compat: use signed size_t types for msgsnd and msgrcv\n\nThe msgsnd and msgrcv system calls use size_t to represent the size of the\nmessage being transferred.  POSIX states that values of msgsz greater than\nSSIZE_MAX cause the result to be implementation-defined.  On Linux, this\nequates to returning -EINVAL if (long) msgsz \u003c 0.\n\nFor compat tasks where !CONFIG_ARCH_WANT_OLD_COMPAT_IPC and compat_size_t\nis smaller than size_t, negative size values passed from userspace will be\ninterpreted as positive values by do_msg{rcv,snd} and will fail to exit\nearly with -EINVAL.\n\nThis patch changes the compat prototypes for msg{rcv,snd} so that the\nmessage size is represented as a compat_ssize_t, which we cast to the\nnative ssize_t type for the core IPC code.\n\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b610c04c667f3c056243fd64041c7f152a512ee4",
      "tree": "786aef5a19de67d3b0480695703dd044a433f8bb",
      "parents": [
        "079a96ae3871f0ed9083aac2218136ccec5b9877"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon Jul 30 14:42:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC\n\nCommit 48b25c43e6ee (\"ipc: provide generic compat versions of IPC\nsyscalls\") added a new ARCH_WANT_OLD_COMPAT_IPC config option for\narchitectures to select if their compat target requires the old IPC\nsyscall interface.\n\nFor architectures (such as AArch64) that do not require the internal\ncalling conventions provided by this option, but have a compat target\nwhere the C library passes the IPC_64 flag explicitly,\ncompat_ipc_parse_version no longer strips out the flag before calling\nthe native system call implementation, resulting in unknown SHM/IPC\ncommands and -EINVAL being returned to userspace.\n\nThis patch separates the selection of the internal calling conventions\nfor the IPC syscalls from the version parsing, allowing architectures to\nselect __ARCH_WANT_COMPAT_IPC_PARSE_VERSION if they want to use version\nparsing whilst retaining the newer syscall calling conventions.\n\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "079a96ae3871f0ed9083aac2218136ccec5b9877",
      "tree": "52acdeda67006d3d85eee0a17d6241657ba270dc",
      "parents": [
        "63dca8d5b5ef7effb58b8d6892a024125c0fab0b"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon Jul 30 14:42:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "ipc: add COMPAT_SHMLBA support\n\nIf the SHMLBA definition for a native task differs from the definition for\na compat task, the do_shmat() function would need to handle both.\n\nThis patch introduces COMPAT_SHMLBA, which is used by the compat shmat\nsyscall when calling the ipc code and allows architectures such as AArch64\n(where the native SHMLBA is 64k but the compat (AArch32) definition is\n16k) to provide the correct semantics for compat IPC system calls.\n\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "765927b2d508712d320c8934db963bbe14c3fcec",
      "tree": "97acdb14fae285764def396c4ed01d4d5c93e76a",
      "parents": [
        "bf349a447059656ebe63fb4fd1ccb27ac1da22ad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 26 21:58:53 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 23 00:01:29 2012 +0400"
      },
      "message": "switch dentry_open() to struct path, make it grab references itself\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "312b63fba9e88a0dcf800834b8ede8716bcc1e17",
      "tree": "a069e3b9ff142912fd09f09a22466707d31c6812",
      "parents": [
        "ebfc3b49a7ac25920cb5be5445f602e51d2ea559"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 18:09:36 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:50 2012 +0400"
      },
      "message": "don\u0027t pass nameidata * to vfs_create()\n\nall we want is a boolean flag, same as the method gets now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ebfc3b49a7ac25920cb5be5445f602e51d2ea559",
      "tree": "c3241f875dd04ab9f63b4e7ded7ed206e4df1b9f",
      "parents": [
        "72bd866a01fc62ccbc466f3eb7599b14c937e96b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 18:05:36 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:47 2012 +0400"
      },
      "message": "don\u0027t pass nameidata to -\u003ecreate()\n\nboolean \"does it have to be exclusive?\" flag is passed instead;\nLocal filesystem should just ignore it - the object is guaranteed\nnot to be there yet.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7d8a45695cc8f9fcdf4121fcbd897ecb63f758e4",
      "tree": "ba315d40c8b0457d132ea155d0db651275af6822",
      "parents": [
        "4e791c98ae7ff889121ca93b7bd97206e4a8d793"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Thu Jun 07 14:21:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 14:43:55 2012 -0700"
      },
      "message": "ipc: shm: restore MADV_REMOVE functionality on shared memory segments\n\nCommit 17cf28afea2a (\"mm/fs: remove truncate_range\") removed the\ntruncate_range inode operation in favour of the fallocate file\noperation.\n\nWhen using SYSV IPC shared memory segments, calling madvise with the\nMADV_REMOVE advice on an area of shared memory will attempt to invoke\nthe .fallocate function for the shm_file_operations, which is NULL and\ntherefore returns -EOPNOTSUPP to userspace.  The previous behaviour\nwould inherit the inode_operations from the underlying tmpfs file and\ninvoke truncate_range there.\n\nThis patch restores the previous behaviour by wrapping the underlying\nfallocate function in shm_fallocate, as we do for fsync.\n\n[hughd@google.com: use -ENOTSUPP in shm_fallocate()]\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1193755ac6328ad240ba987e6ec41d5e8baf0680",
      "tree": "40bf847d7e3ebaa57b107151d14e6cd1d280cc6d",
      "parents": [
        "4edebed86690eb8db9af3ab85baf4a34e73266cc",
        "0ef97dcfce4179a2eba046b855ee2f91d6f1b414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs changes from Al Viro.\n \"A lot of misc stuff.  The obvious groups:\n   * Miklos\u0027 atomic_open series; kills the damn abuse of\n     -\u003ed_revalidate() by NFS, which was the major stumbling block for\n     all work in that area.\n   * ripping security_file_mmap() and dealing with deadlocks in the\n     area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in\n     general.\n   * -\u003eencode_fh() switched to saner API; insane fake dentry in\n     mm/cleancache.c gone.\n   * assorted annotations in fs (endianness, __user)\n   * parts of Artem\u0027s -\u003es_dirty work (jff2 and reiserfs parts)\n   * -\u003eupdate_time() work from Josef.\n   * other bits and pieces all over the place.\n\n  Normally it would\u0027ve been in two or three pull requests, but\n  signal.git stuff had eaten a lot of time during this cycle ;-/\"\n\nFix up trivial conflicts in Documentation/filesystems/vfs.txt (the\n\u0027truncate_range\u0027 inode method was removed by the VM changes, the VFS\nupdate adds an \u0027update_time()\u0027 method), and in fs/btrfs/ulist.[ch] (due\nto sparse fix added twice, with other changes nearby).\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)\n  nfs: don\u0027t open in -\u003ed_revalidate\n  vfs: retry last component if opening stale dentry\n  vfs: nameidata_to_filp(): don\u0027t throw away file on error\n  vfs: nameidata_to_filp(): inline __dentry_open()\n  vfs: do_dentry_open(): don\u0027t put filp\n  vfs: split __dentry_open()\n  vfs: do_last() common post lookup\n  vfs: do_last(): add audit_inode before open\n  vfs: do_last(): only return EISDIR for O_CREAT\n  vfs: do_last(): check LOOKUP_DIRECTORY\n  vfs: do_last(): make ENOENT exit RCU safe\n  vfs: make follow_link check RCU safe\n  vfs: do_last(): use inode variable\n  vfs: do_last(): inline walk_component()\n  vfs: do_last(): make exit RCU safe\n  vfs: split do_lookup()\n  Btrfs: move over to use -\u003eupdate_time\n  fs: introduce inode operation -\u003eupdate_time\n  reiserfs: get rid of resierfs_sync_super\n  reiserfs: mark the superblock as dirty a bit later\n  ...\n"
    },
    {
      "commit": "e3fc629d7bb70848fbf479688a66d4e76dff46ac",
      "tree": "96b6d5ffdb1c643fb28807a635e6ca4e24964034",
      "parents": [
        "98de59bfe4b2ff6344d9ad8e5296f80de5dcc5b6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 20:08:42 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:17 2012 -0400"
      },
      "message": "switch aio and shm to do_mmap_pgoff(), make do_mmap() static\n\nafter all, 0 bytes and 0 pages is the same thing...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8b3ec6814c83d76b85bd13badc48552836c24839",
      "tree": "2430a4511c7ea41f67b0d841f4c42eac43828db3",
      "parents": [
        "e5467859f7f79b69fc49004403009dfdba3bec53"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 17:11:23 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:01 2012 -0400"
      },
      "message": "take security_mmap_file() outside of -\u003emmap_sem\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ce2d52cc1364a22fc1a161781e60ee3cbb499a6d",
      "tree": "f21a7a5ddfdfc0a470304268928c047399e71c7a",
      "parents": [
        "7820b0715b6fb1378fab41b27fb7aa3950852cb7"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "ipc/mqueue: add rbtree node caching support\n\nWhen I wrote the first patch that added the rbtree support for message\nqueue insertion, it sped up the case where the queue was very full\ndrastically from the original code.  It, however, slowed down the case\nwhere the queue was empty (not drastically though).\n\nThis patch caches the last freed rbtree node struct so we can quickly\nreuse it when we get a new message.  This is the common path for any queue\nthat very frequently goes from 0 to 1 then back to 0 messages in queue.\n\nAndrew Morton didn\u0027t like that we were doing a GFP_ATOMIC allocation in\nmsg_insert, so this patch attempts to speculatively allocate a new node\nstruct outside of the spin lock when we know we need it, but will still\nfall back to a GFP_ATOMIC allocation if it has to.\n\nOnce I added the caching, the necessary various ret \u003d ; spin_unlock\ngyrations in mq_timedsend were getting pretty ugly, so this also slightly\nrefactors that function to streamline the flow of the code and the\nfunction exit.\n\nFinally, while working on getting performance back I made sure that all of\nthe node structs were always fully initialized when they were first used,\nrendering the use of kzalloc unnecessary and a waste of CPU cycles.\n\nThe net result of all of this is:\n\n1) We will avoid a GFP_ATOMIC allocation when possible, but fall back\n   on it when necessary.\n\n2) We will speculatively allocate a node struct using GFP_KERNEL if our\n   cache is empty (and save the struct to our cache if it\u0027s still empty\n   after we have obtained the spin lock).\n\n3) The performance of the common queue empty case has significantly\n   improved and is now much more in line with the older performance for\n   this case.\n\nThe performance changes are:\n\n            Old mqueue      new mqueue      new mqueue + caching\nqueue empty\nsend/recv   305/288ns       349/318ns       310/322ns\n\nI don\u0027t think we\u0027ll ever be able to get the recv performance back, but\nthat\u0027s because the old recv performance was a direct result and\nconsequence of the old methods abysmal send performance.  The recv path\nsimply must do more so that the send path does not incur such a penalty\nunder higher queue depths.\n\nAs it turns out, the new caching code also sped up the various queue full\ncases relative to my last patch.  That could be because of the difference\nbetween the syscall path in 3.3.4-rc5 and 3.3.4-rc6, or because of the\nchange in code flow in the mq_timedsend routine.  Regardless, I\u0027ll take\nit.  It wasn\u0027t huge, and I *would* say it was within the margin for error,\nbut after many repeated runs what I\u0027m seeing is that the old numbers trend\nslightly higher (about 10 to 20ns depending on which test is the one\nrunning).\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: 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": "113289cc086f80f28acd06f160a7c6423cdd4191",
      "tree": "4a50ff35f9cc0b320985a76b5f2e8313635b0f81",
      "parents": [
        "2c12ea498f349207c28840c0ed9654321aab7720"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "ipc/mqueue: strengthen checks on mqueue creation\n\nWe already check the mq attr struct if it\u0027s passed in, but now that the\nadmin can set system wide defaults separate from maximums, it\u0027s actually\npossible to set the defaults to something that would overflow.  So, if\nthere is no attr struct passed in to the open call, check the default\nvalues.\n\nWhile we are at it, simplify mq_attr_ok() by making it return 0 or an\nerror condition, so that way if we add more tests to it later, we have the\noption of what error should be returned instead of the calling location\nhaving to pick a possibly inaccurate error code.\n\n[akpm@linux-foundation.org: s/ENOMEM/EOVERFLOW/]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-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": "2c12ea498f349207c28840c0ed9654321aab7720",
      "tree": "ef0f938e66a8a8b038e5c6be29e7f27294023c7e",
      "parents": [
        "d6629859b36d953a4b1369b749f178736911bf10"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "ipc/mqueue: correct mq_attr_ok test\n\nWhile working on the other parts of the mqueue stuff, I noticed that the\ncalculation for overflow in mq_attr_ok didn\u0027t actually match reality (this\nis especially true since my last patch which changed how we account memory\nslightly).\n\nIn particular, we used to test for overflow using:\n  msgs * msgsize + msgs * sizeof(struct msg_msg *)\n\nThat was never really correct because each message we allocate via\nload_msg() is actually a struct msg_msg followed by the data for the\nmessage (and if struct msg_msg + data exceeds PAGE_SIZE we end up\nallocating struct msg_msgseg structs too, but accounting for them would\nget really tedious, so let\u0027s ignore those...they\u0027re only a pointer in size\nanyway).  This patch updates the calculation to be more accurate in\nregards to maximum possible memory consumption by the mqueue.\n\n[akpm@linux-foundation.org: add a local to simplify overflow-checking expression]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-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": "d6629859b36d953a4b1369b749f178736911bf10",
      "tree": "154cfc0d8ff3b65f59b9052bcc41edaabf974063",
      "parents": [
        "50069a5851323ba5def0e414a21e234345016870"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "ipc/mqueue: improve performance of send/recv\n\nThe existing implementation of the POSIX message queue send and recv\nfunctions is, well, abysmal.  Even worse than abysmal.  I submitted a\npatch to increase the maximum POSIX message queue limit to 65536 due to\ncustomer needs, however, upon looking over the send/recv implementation, I\nrealized that my customer needs help with that too even if they don\u0027t know\nit.  The basic problem is that, given the fairly typical use case scenario\nfor a large queue of queueing lots of messages all at the same priority (I\nverified with my customer that this is indeed what their app does), the\nmsg_insert routine is basically a frikkin\u0027 bubble sort.  I mean, whoa,\nthat\u0027s *so* middle school.\n\nOK, OK, to not slam the original author too much, I\u0027m sure they didn\u0027t\nenvision a queue depth of 50,000+ messages.  No one would think that\nmoving elements in an array, one at a time, and dereferencing each pointer\nin that array to check priority of the message being pointed too, again\none at a time, for 50,000+ times would be good.  So let\u0027s assume that, as\nis typical, the users have found a way to break our code simply by using\nit in a way we didn\u0027t envision.  Fair enough.\n\n\"So, just how broken is it?\", you ask.  I wondered the same thing, so I\nwrote an app to let me know.  It\u0027s my next patch.  It gave me some\ninteresting results.  Here\u0027s what it tested:\n\nInterference with other apps - In continuous mode, the app just sits there\nand hits a message queue forever, while you go do something productive on\nanother terminal using other CPUs.  You then measure how long it takes you\nto do that something productive.  Then you restart the app in fake\ncontinuous mode, and it sits in a tight loop on a CPU while you repeat\nyour tests.  The whole point of this is to keep one CPU tied up (so it\ncan\u0027t be used in your other work) but in one case tied up hitting the\nmqueue code so we can see the effect of walking that 65,528 element array\none pointer at a time on the global CPU cache.  If it\u0027s bad, then it will\nslow down your app on the other CPUs just by polluting cache mercilessly.\nIn the fake case, it will be in a tight loop, but not polluting cache.\nTesting the mqueue subsystem directly - Here we just run a number of tests\nto see how the mqueue subsystem performs under different conditions.  A\ncouple conditions are known to be worst case for the old system, and some\nroutines, so this tests all of them.\n\nSo, on to the results already:\n\nSubsystem/Test                  Old                         New\n\nTime to compile linux\nkernel (make -j12 on a\n6 core CPU)\n  Running mqueue test     user 49m10.744s             user 45m26.294s\n\t\t\t   sys  5m51.924s              sys  4m59.894s\n\t\t\t total 55m02.668s            total 50m26.188s\n\n  Running fake test       user 45m32.686s             user 45m18.552s\n                           sys  5m12.465s              sys  4m56.468s\n                         total 50m45.151s            total 50m15.020s\n\n  % slowdown from mqueue\n    cache thrashing            ~8%                         ~.5%\n\nAvg time to send/recv (in nanoseconds per message)\n  when queue empty            305/288                    349/318\n  when queue full (65528 messages)\n    constant priority      526589/823                    362/314\n    increasing priority    403105/916                    495/445\n    decreasing priority     73420/594                    482/409\n    random priority        280147/920                    546/436\n\nTime to fill/drain queue (65528 messages, in seconds)\n  constant priority         17.37/.12                    .13/.12\n  increasing priority        4.14/.14                    .21/.18\n  decreasing priority       12.93/.13                    .21/.18\n  random priority            8.88/.16                    .22/.17\n\nSo, I think the results speak for themselves.  It\u0027s possible this\nimplementation could be improved by cacheing at least one priority level\nin the node tree (that would bring the queue empty performance more in\nline with the old implementation), but this works and is *so* much better\nthan what we had, especially for the common case of a single priority in\nuse, that further refinements can be in follow on patches.\n\n[akpm@linux-foundation.org: fix typo in comment, remove stray semicolon]\n[levinsasha928@gmail.com: use correct gfp flags in msg_insert]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Sasha Levin \u003clevinsasha928@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": "cef0184c115e5e4e10498f6548d9526465e72478",
      "tree": "752c4116e0f93328239db9ff2c2ed730fef3ce0e",
      "parents": [
        "fd1f87d24d492fda464bedf10a5dd5174ff9b065"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 31 16:26:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "mqueue: separate mqueue default value from maximum value\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed\nmqueue default value when attr parameter is specified NULL from hard\ncoded value to fs.mqueue.{msg,msgsize}_max sysctl value.\n\nThis made large side effect.  When user need to use two mqueue\napplications 1) using !NULL attr parameter and it require big message\nsize and 2) using NULL attr parameter and only need small size message,\napp (1) require to raise fs.mqueue.msgsize_max and app (2) consume large\nmemory size even though it doesn\u0027t need.\n\nDoug Ledford propsed to switch back it to static hard coded value.\nHowever it also has a compatibility problem.  Some applications might\nstarted depend on the default value is tunable.\n\nThe solution is to separate default value from maximum value.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd1f87d24d492fda464bedf10a5dd5174ff9b065",
      "tree": "fe2de6c714277ee2ea739d1bfa81a0e539f0a46a",
      "parents": [
        "e6315bb154e778391ce64b194756bd3d108dadf6"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 31 16:26:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "mqueue: don\u0027t use kmalloc with KMALLOC_MAX_SIZE\n\nKMALLOC_MAX_SIZE is not a good threshold.  It is extremely high and\nproblematic.  Unfortunately, some silly drivers depend on this and we\ncan\u0027t change it.  But any new code needn\u0027t use such extreme ugly high\norder allocations.  It brings us awful fragmentation issues and system\nslowdown.\n\nSigned-off-by: KOSAKI Motohiro \u003cmkosaki@jp.fujitsu.com\u003e\nAcked-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b5c4d1a1440e94994c73dddbad7be0676cd8b9a",
      "tree": "fe00ef0f888fbfc40b7542fd8a66cf3368d3d2c7",
      "parents": [
        "02967ea08ede0f8cc7e0526aedffdae65a099b07"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: update maximums for the mqueue subsystem\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed the\nmaximum size of a message in a message queue from INT_MAX to 8192*128.\nUnfortunately, we had customers that relied on a size much larger than\n8192*128 on their production systems.  After reviewing POSIX, we found\nthat it is silent on the maximum message size.  We did find a couple other\nareas in which it was not silent.  Fix up the mqueue maximums so that the\ncustomer\u0027s system can continue to work, and document both the POSIX and\nreal world requirements in ipc_namespace.h so that we don\u0027t have this\nissue crop back up.\n\nAlso, commit 9cf18e1dd74cd0 (\"ipc: HARD_MSGMAX should be higher not lower\non 64bit\") fiddled with HARD_MSGMAX without realizing that the number was\nintentionally in place to limit the msg queue depth to one that was small\nenough to kmalloc an array of pointers (hence why we divided 128k by\nsizeof(long)).  If we wish to meet POSIX requirements, we have no choice\nbut to change our allocation to a vmalloc instead (at least for the large\nqueue size case).  With that, it\u0027s possible to increase our allowed\nmaximum to the POSIX requirements (or more if we choose).\n\n[sfr@canb.auug.org.au: using vmalloc requires including vmalloc.h]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02967ea08ede0f8cc7e0526aedffdae65a099b07",
      "tree": "da66e39cf3023f437f43db1f58d510c99b8478fd",
      "parents": [
        "858ee3784e8105467f1f3017f4ece51cb51d4830"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: enforce hard limits\n\nIn two places we don\u0027t enforce the hard limits for CAP_SYS_RESOURCE apps.\nIn preparation for making more reasonable hard limits, start enforcing\nthem even on CAP_SYS_RESOURCE.\n\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "858ee3784e8105467f1f3017f4ece51cb51d4830"
}
