)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "858ee3784e8105467f1f3017f4ece51cb51d4830",
      "tree": "c95f55ff8bd29be3a8648acc21118a47b07d117b",
      "parents": [
        "93e6f119c0ce8a1bba6e81dc8dd97d67be360844"
      ],
      "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: switch back to using non-max values on create\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed\nhow we create a queue that does not include an attr struct passed to\nopen so that it creates the queue with whatever the maximum values are.\nHowever, if the admin has set the maximums to allow flexibility in\ncreating a queue (aka, both a large size and large queue are allowed,\nbut combined they create a queue too large for the RLIMIT_MSGQUEUE of\nthe user), then attempts to create a queue without an attr struct will\nfail.  Switch back to using acceptable defaults regardless of what the\nmaximums are.\n\nNote: so far, we only know of a few applications that rely on this\nbehavior (specifically, set the maximums in /proc, then run the\napplication which calls mq_open() without passing in an attr struct, and\nthe application expects the newly created message queue to have the\nmaximum sizes that were set in /proc used on the mq_open() call, and all\nof those applications that we know of are actually part of regression\ntest suites that were coded to do something like this:\n\nfor size in 4096 65536 $((1024 * 1024)) $((16 * 1024 * 1024)); do\n\techo $size \u003e /proc/sys/fs/mqueue/msgsize_max\n\tmq_open || echo \"Error opening mq with size $size\"\ndone\n\nThese test suites that depend on any behavior like this are broken.  The\nconcept that programs should rely upon the system wide maximum in order\nto get their desired results instead of simply using a attr struct to\nspecify what they want is fundamentally unfriendly programming practice\nfor any multi-tasking OS.\n\nFixing this will break those few apps that we know of (and those app\nauthors recognize the brokenness of their code and the need to fix it).\nHowever, the following patch \"mqueue: separate mqueue default value\"\nallows a workaround in the form of new knobs for the default msg queue\ncreation parameters for any software out there that we don\u0027t already\nknow about that might rely on this behavior at the moment.\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"
    },
    {
      "commit": "93e6f119c0ce8a1bba6e81dc8dd97d67be360844",
      "tree": "6d5131b4134d7aa6ba680a6a55f016bd6e03f319",
      "parents": [
        "29a5c67e7a78815fda0567a867adce467f6e6e5a"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: cleanup definition names and locations\n\nSince commit b231cca4381e (\"message queues: increase range limits\") on\nOct 18, 2008, calls to mq_open() that did not pass in an attribute\nstruct and expected to get default values for the size of the queue and\nthe max message size now get the system wide maximums instead of\nhardwired defaults like they used to get.\n\nThis was uncovered when one of the earlier patches in this patch set\nincreased the default system wide maximums at the same time it increased\nthe hard ceiling on the system wide maximums (a customer specifically\nneeded the hard ceiling brought back up, the new ceiling that commit\nb231cca4381e introduced was too low for their production systems).  By\nincreasing the default maximums and not realising they were tied to any\nattempt to create a message queue without an attribute struct, I had\ninadvertently made it such that all message queue creation attempts\nwithout an attribute struct were failing because the new default\nmaximums would create a queue that exceeded the default rlimit for\nmessage queue bytes.\n\nAs a result, the system wide defaults were brought back down to their\nprevious levels, and the system wide ceilings on the maximums were\nraised to meet the customer\u0027s needs.  However, the fact that the no\nattribute struct behavior of mq_open() could be broken by changing the\nsystem wide maximums for message queues was seen as fundamentally broken\nitself.  So we hardwired the no attribute case back like it used to be.\nBut, then we realized that on the very off chance that some piece of\nsoftware in the wild depended on that behavior, we could work around\nthat issue by adding two new knobs to /proc that allowed setting the\ndefaults for message queues created without an attr struct separately\nfrom the system wide maximums.\n\nWhat is not an option IMO is to leave the current behavior in place.  No\npiece of software should ever rely on setting the system wide maximums\nin order to get a desired message queue.  Such a reliance would be so\nfundamentally multitasking OS unfriendly as to not really be tolerable.\nFortunately, we don\u0027t know of any software in the wild that uses this\nexcept for a regression test program that caught the issue in the first\nplace.  If there is though, we have made accommodations with the two new\n/proc knobs (and that\u0027s all the accommodations such fundamentally broken\nsoftware can be allowed)..\n\nThis patch:\n\nThe various defines for minimums and maximums of the sysctl controllable\nmqueue values are scattered amongst different files and named\ninconsistently.  Move them all into ipc_namespace.h and make them have\nconsistent names.  Additionally, make the number of queues per namespace\nalso have a minimum and maximum and use the same sysctl function as the\nother two settable variables.\n\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: 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"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "76b6db010297d4928ab7b7e7c78dd982f413f0a4",
      "tree": "0d8fef729548a4f266684c0b7e56e4a9ed14780f",
      "parents": [
        "078de5f706ece36afd73bb4b8283314132d2dfdf"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 14 15:24:19 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu May 03 03:28:39 2012 -0700"
      },
      "message": "userns: Replace user_ns_map_uid and user_ns_map_gid with from_kuid and from_kgid\n\nThese function are no longer needed replace them with their more useful equivalents.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "6f9ac6d93a0916de09d11b0a247ade8f4347728b",
      "tree": "93e47420422e8e99befd2c14aaab75fa167cbb59",
      "parents": [
        "aeb3ae9da9b50a386b22af786d19b623e8d9f0fa"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 16 22:57:55 2011 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Apr 07 16:55:53 2012 -0700"
      },
      "message": "mqueue: Explicitly capture the user namespace to send the notification to.\n\nStop relying on user-\u003euser_ns which is going away and instead capture\nthe user_namespace of the process we are supposed to notify.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "c4a4d603796c727b9555867571f89483be9c565e",
      "tree": "ae3b47a7b8b35c866df53cb4b4a051d49a28904a",
      "parents": [
        "7e6bd8fadd1216f50468f965d0308f45e5109ced"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 16 23:15:31 2011 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Apr 07 16:55:51 2012 -0700"
      },
      "message": "userns: Use cred-\u003euser_ns instead of cred-\u003euser-\u003euser_ns\n\nOptimize performance and prepare for the removal of the user_ns reference\nfrom user_struct.  Remove the slow long walk through cred-\u003euser-\u003euser_ns and\ninstead go straight to cred-\u003euser_ns.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "50483c3268918ee51a56d1baa39b9149d2d0d521",
      "tree": "2fb9c927c319628ebddfd118c10df3e626bdd1c4",
      "parents": [
        "7fda0412c5f7afdd1a5ff518f98dee5157266d8a",
        "1631fcea8399da5e80a80084b3b8c5bfd99d21e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:49:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:49:45 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull arch/tile (really asm-generic) update from Chris Metcalf:\n \"These are a couple of asm-generic changes that apply to tile.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  compat: use sys_sendfile64() implementation for sendfile syscall\n  [PATCH v3] ipc: provide generic compat versions of IPC syscalls\n"
    },
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "40716e29243de46720e5773797791466c28904ec",
      "tree": "19616ad05cbead73d0643b002a7ced8baa292ee2",
      "parents": [
        "21a3c273f88c9cbbaf7e14505df0131d95c8f262"
      ],
      "author": {
        "name": "Steven Truelove",
        "email": "steven.truelove@utoronto.ca",
        "time": "Wed Mar 21 16:34:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlbfs: fix alignment of huge page requests\n\nWhen calling shmget() with SHM_HUGETLB, shmget aligns the request size to\nPAGE_SIZE, but this is not sufficient.\n\nModify hugetlb_file_setup() to align requests to the huge page size, and\nto accept an address argument so that all alignment checks can be\nperformed in hugetlb_file_setup(), rather than in its callers.  Change\nnewseg() and mmap_pgoff() to match the new prototype and eliminate a now\nredundant alignment check.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Steven Truelove \u003csteven.truelove@utoronto.ca\u003e\nCc: 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": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48b25c43e6eebb6c0edf72935e8720385beca76b",
      "tree": "d1c774a79ef5a8373b093479c3dabe9bf16aec07",
      "parents": [
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Mar 15 13:13:38 2012 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Mar 15 13:13:38 2012 -0400"
      },
      "message": "[PATCH v3] ipc: provide generic compat versions of IPC syscalls\n\nWhen using the \"compat\" APIs, architectures will generally want to\nbe able to make direct syscalls to msgsnd(), shmctl(), etc., and\nin the kernel we would want them to be handled directly by\ncompat_sys_xxx() functions, as is true for other compat syscalls.\n\nHowever, for historical reasons, several of the existing compat IPC\nsyscalls do not do this.  semctl() expects a pointer to the fourth\nargument, instead of the fourth argument itself.  msgsnd(), msgrcv()\nand shmat() expect arguments in different order.\n\nThis change adds an ARCH_WANT_OLD_COMPAT_IPC config option that can be\nset to preserve this behavior for ports that use it (x86, sparc, powerpc,\ns390, and mips).  No actual semantics are changed for those architectures,\nand there is only a minimal amount of code refactoring in ipc/compat.c.\n\nNewer architectures like tile (and perhaps future architectures such\nas arm64 and unicore64) should not select this option, and thus can\navoid having any IPC-specific code at all in their architecture-specific\ncompat layer.  In the same vein, if this option is not selected, IPC_64\nmode is assumed, since that\u0027s what the \u003casm-generic\u003e headers expect.\n\nThe workaround code in \"tile\" for msgsnd() and msgrcv() is removed\nwith this change; it also fixes the bug that shmat() and semctl() were\nnot being properly handled.\n\nReviewed-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "4040153087478993cbf0809f444400a3c808074c",
      "tree": "2dc7af85b0cf930f1656553bd38410b8c16601a6",
      "parents": [
        "191c542442fdf53cc3c496c00be13367fd9cd42d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:42 2012 +1100"
      },
      "message": "security: trim security.h\n\nTrim security.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "245132643e1cfcd145bbc86a716c1818371fcb93",
      "tree": "e5bf3cb56efedb059b1a68fd8efd37482131783b",
      "parents": [
        "85046579bde15e532983438f86b36856e358f417"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Jan 20 14:34:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:38:48 2012 -0800"
      },
      "message": "SHM_UNLOCK: fix Unevictable pages stranded after swap\n\nCommit cc39c6a9bbde (\"mm: account skipped entries to avoid looping in\nfind_get_pages\") correctly fixed an infinite loop; but left a problem\nthat find_get_pages() on shmem would return 0 (appearing to callers to\nmean end of tree) when it meets a run of nr_pages swap entries.\n\nThe only uses of find_get_pages() on shmem are via pagevec_lookup(),\ncalled from invalidate_mapping_pages(), and from shmctl SHM_UNLOCK\u0027s\nscan_mapping_unevictable_pages().  The first is already commented, and\nnot worth worrying about; but the second can leave pages on the\nUnevictable list after an unusual sequence of swapping and locking.\n\nFix that by using shmem_find_get_pages_and_swap() (then ignoring the\nswap) instead of pagevec_lookup().\n\nBut I don\u0027t want to contaminate vmscan.c with shmem internals, nor\nshmem.c with LRU locking.  So move scan_mapping_unevictable_pages() into\nshmem.c, renaming it shmem_unlock_mapping(); and rename\ncheck_move_unevictable_page() to check_move_unevictable_pages(), looping\ndown an array of pages, oftentimes under the same lock.\n\nLeave out the \"rotate unevictable list\" block: that\u0027s a leftover from\nwhen this was used for /proc/sys/vm/scan_unevictable_pages, whose flawed\nhandling involved looking at pages at tail of LRU.\n\nWas there significance to the sequence first ClearPageUnevictable, then\ntest page_evictable, then SetPageUnevictable here? I think not, we\u0027re\nunder LRU lock, and have no barriers between those.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e [back to 3.1 but will need respins]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85046579bde15e532983438f86b36856e358f417",
      "tree": "9b80b31791e63520277617a5abe85692dc480cd0",
      "parents": [
        "cb78edfdcef5259ac9e9088bd63810d21299928d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Jan 20 14:34:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:38:48 2012 -0800"
      },
      "message": "SHM_UNLOCK: fix long unpreemptible section\n\nscan_mapping_unevictable_pages() is used to make SysV SHM_LOCKed pages\nevictable again once the shared memory is unlocked.  It does this with\npagevec_lookup()s across the whole object (which might occupy most of\nmemory), and takes 300ms to unlock 7GB here.  A cond_resched() every\nPAGEVEC_SIZE pages would be good.\n\nHowever, KOSAKI-san points out that this is called under shmem.c\u0027s\ninfo-\u003elock, and it\u0027s also under shm.c\u0027s shm_lock(), both spinlocks.\nThere is no strong reason for that: we need to take these pages off the\nunevictable list soonish, but those locks are not required for it.\n\nSo move the call to scan_mapping_unevictable_pages() from shmem.c\u0027s\nunlock handling up to shm.c\u0027s unlock handling.  Remove the recently\nadded barrier, not needed now we have spin_unlock() before the scan.\n\nUse get_file(), with subsequent fput(), to make sure we have a reference\nto mapping throughout scan_mapping_unevictable_pages(): that\u0027s something\nthat was previously guaranteed by the shm_lock().\n\nRemove shmctl\u0027s lru_add_drain_all(): we don\u0027t fault in pages at SHM_LOCK\ntime, and we lazily discover them to be Unevictable later, so it serves\nno purpose for SHM_LOCK; and serves no purpose for SHM_UNLOCK, since\npages still on pagevec are not marked Unevictable.\n\nThe original code avoided redundant rescans by checking VM_LOCKED flag\nat its level: now avoid them by checking shp\u0027s SHM_LOCKED.\n\nThe original code called scan_mapping_unevictable_pages() on a locked\narea at shm_destroy() time: perhaps we once had accounting cross-checks\nwhich required that, but not now, so skip the overhead and just let\ninode eviction deal with them.\n\nPut check_move_unevictable_page() and scan_mapping_unevictable_pages()\nunder CONFIG_SHMEM (with stub for the TINY case when ramfs is used),\nmore as comment than to save space; comment them used for SHM_UNLOCK.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michel Lespinasse \u003cwalken@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": "2a4e64b8f6bcbf23ddd375b78342051ae8862284",
      "tree": "90e753679ca8ff867dc42e84e5a33c90f813c244",
      "parents": [
        "e9a4593cc5e36c6d47c87b439cb41c2568e7395f"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Fri Jan 20 14:34:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:38:47 2012 -0800"
      },
      "message": "ipc/mqueue: simplify reading msgqueue limit\n\nBecause the current task is being used to get the limit, we can simply\nuse rlimit() instead of task_rlimit().\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\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": "6b550f9495947fc279d12c38feaf98500e8d0646",
      "tree": "ab018bd7e2f8c2c594252f35ffa7c413f86519cf",
      "parents": [
        "b196be89cdc14a88cc637cdad845a75c5886c82d"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Tue Jan 10 15:11:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "user namespace: make signal.c respect user namespaces\n\nipc/mqueue.c: for __SI_MESQ, convert the uid being sent to recipient\u0027s\nuser namespace. (new, thanks Oleg)\n\n__send_signal: convert current\u0027s uid to the recipient\u0027s user namespace\nfor any siginfo which is not SI_FROMKERNEL (patch from Oleg, thanks\nagain :)\n\ndo_notify_parent and do_notify_parent_cldstop: map task\u0027s uid to parent\u0027s\nuser namespace\n\nptrace_signal maps parent\u0027s uid into current\u0027s user namespace before\nincluding in signal to current.  IIUC Oleg has argued that this shouldn\u0027t\nmatter as the debugger will play with it, but it seems like not converting\nthe value currently being set is misleading.\n\nChangelog:\nSep 20: Inspired by Oleg\u0027s suggestion, define map_cred_ns() helper to\n\tsimplify callers and help make clear what we are translating\n        (which uid into which namespace).  Passing the target task would\n\tmake callers even easier to read, but we pass in user_ns because\n\tcurrent_user_ns() !\u003d task_cred_xxx(current, user_ns).\nSep 20: As recommended by Oleg, also put task_pid_vnr() under rcu_read_lock\n\tin ptrace_signal().\nSep 23: In send_signal(), detect when (user) signal is coming from an\n\tancestor or unrelated user namespace.  Pass that on to __send_signal,\n\twhich sets si_uid to 0 or overflowuid if needed.\nOct 12: Base on Oleg\u0027s fixup_uid() patch.  On top of that, handle all\n\tSI_FROMKERNEL cases at callers, because we can\u0027t assume sender is\n\tcurrent in those cases.\nNov 10: (mhelsley) rename fixup_uid to more meaningful usern_fixup_signal_uid\nNov 10: (akpm) make the !CONFIG_USER_NS case clearer\n\nSigned-off-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nFrom: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSubject: __send_signal: pass q-\u003einfo, not info, to userns_fixup_signal_uid (v2)\n\nEric Biederman pointed out that passing info is a bug and could lead to a\nNULL pointer deref to boot.\n\nA collection of signal, securebits, filecaps, cap_bounds, and a few other\nltp tests passed with this kernel.\n\nChangelog:\n    Nov 18: previous patch missed a leading \u0027\u0026\u0027\n\nSigned-off-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nFrom: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSubject: ipc/mqueue: lock() \u003d\u003e unlock() typo\n\nThere was a double lock typo introduced in b085f4bd6b21 \"user namespace:\nmake signal.c respect user namespaces\"\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Serge Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df0a42837b86567a130c44515ab620d23e7f182b",
      "tree": "1ea38c71503fddfbeb353b05a6bd85d383b161fd",
      "parents": [
        "5706b27deae29ceee26d0c20112f087a9b841575"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 05:26:10 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:16 2012 -0500"
      },
      "message": "switch mq_open() to umode_t\n"
    },
    {
      "commit": "1b9d5ff7644ddf2723c9205f4726c95ec01bf033",
      "tree": "bf08448873111512f0a7fb8f7e880b26e4a23242",
      "parents": [
        "8d334acdd2c1f57c7a574c6f24d08e4c95582ff0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 14:18:20 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:11 2012 -0500"
      },
      "message": "mqueue: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f686574cccc2ef66fb38e41f19cedd81e7b4504",
      "tree": "3ca07460f6dfc6f083ecdb8dbb96e2f525d97696",
      "parents": [
        "905ad269c55fc62bee3da29f7b1d1efeba8aa1e1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 00:38:50 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 00:40:21 2011 -0500"
      },
      "message": "... and the same kind of leak for mqueue\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e57940d719e9fc5223d133b631f8cb5232d6064e",
      "tree": "f4dfe100c571e245c7db90c446c548b9bf33b9e7",
      "parents": [
        "0b0577f6080c0645b079dcc03fdbaf40d928beb8"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Nov 02 13:38:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:01 2011 -0700"
      },
      "message": "ipc/sem.c: remove private structures from public header file\n\ninclude/linux/sem.h contains several structures that are only used within\nipc/sem.c.\n\nThe patch moves them into ipc/sem.c - there is no need to expose the\nstructures to the whole kernel.\n\nNo functional changes, only whitespace cleanups and 80-char per line\nfixes.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b0577f6080c0645b079dcc03fdbaf40d928beb8",
      "tree": "0dcedf3f2e6c3aa9c363a4c6272225ebfa1c61c5",
      "parents": [
        "3c24783bb2deafaa106b7e69a97540071afc590c"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Nov 02 13:38:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:01 2011 -0700"
      },
      "message": "ipc/sem.c: handle spurious wakeups\n\nsemtimedop() does not handle spurious wakeups, it returns -EINTR to user\nspace.  Most other schedule() users would just loop and not return to user\nspace.  The patch adds such a loop to semtimedop()\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nReported-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c24783bb2deafaa106b7e69a97540071afc590c",
      "tree": "904d59c7e197d59c472e20fc42057a5acb90f223",
      "parents": [
        "46cbc1d3981ee753518fbf9198a14f71a9f6841e"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Nov 02 13:38:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:01 2011 -0700"
      },
      "message": "ipc/sem.c: fix return code race with semop vs. semop +semctl(IPC_RMID)\n\nsys_semtimedop() may return -EIDRM although the semaphore operation\ncompleted successfully:\n\nthread 1:\tthread 2:\n\t\tsemtimedop(), sleeps\nsemop():\n* acquires sem_lock()\n\t\tsemtimedop() woken up due to timeout\n\t\tsem_lock() loops\n* notices that thread 2 could be completed.\n* performs the operations that thread 2 is sleeping on.\n* marks the semaphore operation as IN_WAKEUP\n* drops sem_lock(), does wakeup, sets return code to 0\n\t\t* thread delayed due to interrupt, whatever\n* returns to user space\n\t\t* thread still delayed\nsemctl(IPC_RMID)\n* acquires sem_lock()\n* ipc_rmid(), ipcp-\u003edeleted\u003d1\n* drops sem_lock()\n\t\t* thread finally continues - but seem_lock()\n\t\t  now fails due to ipcp-\u003edeleted \u003d\u003d 1\n\t\t* returns -EIDRM instead of 0\n\nThe fix is trivial: Always use the return code in queue.status.\n\nIn real world, the race probably doesn\u0027t matter:\nIf the semaphore array is destroyed, the app is probably not interested\nif the last operation succeeded or was already cancelled.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32ea845d5bafc37b7406bea1aee3005407cb0900",
      "tree": "54cfdc8a8fce66a7371b3616fc18b4c676a6fbdd",
      "parents": [
        "fc360bd9cdcf875639a77f07fafec26699c546f3"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Mon Oct 31 17:06:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "ipc/mqueue.c: fix wrong use of schedule_hrtimeout_range_clock()\n\nFix the wrong use of schedule_hrtimeout_range_clock() in wq_sleep(),\nalthough it is harmless for the syscall mq_timed* now.  It was introduced\nby 9ca7d8e (\"mqueue: Convert message queue timeout to use hrtimers\").\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nCc: Carsten Emde \u003cC.Emde@osadl.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "140d0b2108faebc77c6523296e211e509cb9f5f9",
      "tree": "ce8291a62b08810cffacf7a0d377fc06c477aa44",
      "parents": [
        "24f0eed2668b059e847ff145848ddacb75419acc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 04 19:35:59 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 04 19:35:59 2011 -1000"
      },
      "message": "Do \u0027shm_init_ns()\u0027 in an early pure_initcall\n\nThis isn\u0027t really critical any more, since other patches (commit\n298507d4d2cf: \"shm: optimize exit_shm()\") have caused us to not actually\nneed to touch the rw_mutex unless there are actual shm segments\nassociated with the namespace, but we really should do tne shm_init_ns()\nearlier than we do now.\n\nThis, together with commit 288d5abec831 (\"Boot up with usermodehelper\ndisabled\") will mean that we really do initialize the initial ipc\nnamespace data structure before we run any tasks.\n\nTested-by: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "298507d4d2cff2248e84afcf646b697301294442",
      "tree": "15861e6610403c57cf4eca976dea4d59ac7a8e99",
      "parents": [
        "33a30ed4bdccd95ed84a1a20c1fef8ac89788ce5"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Wed Aug 03 22:28:26 2011 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 14:45:55 2011 -1000"
      },
      "message": "shm: optimize exit_shm()\n\nWe may optimistically check .in_use \u003d\u003d 0 without holding the rw_mutex:\nit\u0027s the common case, and if it\u0027s zero, there certainly won\u0027t be any\nsegments associated with us.\n\nAfter taking the lock, the idr_for_each() will do the right thing, so we\ncould now drop the re-check inside the lock without any real cost.  But\nit won\u0027t hurt.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33a30ed4bdccd95ed84a1a20c1fef8ac89788ce5",
      "tree": "aa57f9f5b958cf90ab548fc4535b9fb750489829",
      "parents": [
        "206506ccf04b6790d11553a0c8595d1bf65790fe"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Wed Aug 03 22:26:55 2011 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 14:45:55 2011 -1000"
      },
      "message": "shm: fix wrong tests\n\nCommit 4c677e2eefdb (\"shm: optimize locking and ipc_namespace getting\")\nintroduced a copy-paste bug.  Due to the bug cycle optimizations were\ndisabled.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d",
      "tree": "c3c81703d022e0c3c43ddffc3ae165eb25aa0b1d",
      "parents": [
        "5774ed014f02120db9a6945a1ecebeb97c2acccb"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Fri Jul 29 03:56:40 2011 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 30 08:44:20 2011 -1000"
      },
      "message": "shm: optimize locking and ipc_namespace getting\n\nshm_lock() does a lookup of shm segment in shm_ids(ns).ipcs_idr, which\nis redundant as we already know shmid_kernel address.  An actual lock is\nalso not required for reads until we really want to destroy the segment.\n\nexit_shm() and shm_destroy_orphaned() may avoid the loop by checking\nwhether there is at least one segment in current ipc_namespace.\n\nThe check of nsproxy and ipc_ns against NULL is redundant as exit_shm()\nis called from do_exit() before the call to exit_notify(), so the\ndereferencing current-\u003ensproxy-\u003eipc_ns is guaranteed to be safe.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5774ed014f02120db9a6945a1ecebeb97c2acccb",
      "tree": "74174553e2729fd582dc73f9d61b2a54286b3ede",
      "parents": [
        "6c6e3b828b2a13b923b9465fc4316c5bdc92291f"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Fri Jul 29 03:55:31 2011 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 30 08:44:19 2011 -1000"
      },
      "message": "shm: handle separate PID namespaces case\n\nshm_try_destroy_orphaned() and shm_try_destroy_current() didn\u0027t handle\nthe case of separate PID namespaces, but a single IPC namespace.  If\nthere are tasks with the same PID values using the same shmem object,\nthe wrong destroy decision could be reached.\n\nOn shm segment creation store the pointer to the creator task in\nshmid_kernel-\u003eshm_creator field and zero it on task exit.  Then\nuse the -\u003eshm_creator insread of shm_cprid in both functions.  As\nshmid_kernel object is already locked at this stage, no additional\nlocking is needed.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b34a6b1da371ed8af1221459a18c67970f7e3d53",
      "tree": "5addc850de13623b172395b9d0d7d670930fa6b3",
      "parents": [
        "d40dcdb0172a1ba853464983a059fb45e0aaf61a"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Jul 26 16:08:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "ipc: introduce shm_rmid_forced sysctl\n\nAdd support for the shm_rmid_forced sysctl.  If set to 1, all shared\nmemory objects in current ipc namespace will be automatically forced to\nuse IPC_RMID.\n\nThe POSIX way of handling shmem allows one to create shm objects and\ncall shmdt(), leaving shm object associated with no process, thus\nconsuming memory not counted via rlimits.\n\nWith shm_rmid_forced\u003d1 the shared memory object is counted at least for\none process, so OOM killer may effectively kill the fat process holding\nthe shared memory.\n\nIt obviously breaks POSIX - some programs relying on the feature would\nstop working.  So set shm_rmid_forced\u003d1 only if you\u0027re sure nobody uses\n\"orphaned\" memory.  Use shm_rmid_forced\u003d0 by default for compatability\nreasons.\n\nThe feature was previously impemented in -ow as a configure option.\n\n[akpm@linux-foundation.org: fix documentation, per Randy]\n[akpm@linux-foundation.org: fix warning]\n[akpm@linux-foundation.org: readability/conventionality tweaks]\n[akpm@linux-foundation.org: fix shm_rmid_forced/shm_forced_rmid confusion, use standard comment layout]\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserge.hallyn@canonical.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Solar Designer \u003csolar@openwall.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d40dcdb0172a1ba853464983a059fb45e0aaf61a",
      "tree": "aa785c01ad6763c92191b86ec10f526fa772b808",
      "parents": [
        "04715206c0c2fd4ec5ca77fa51e3a5b41ce71492"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Jul 26 16:08:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "ipc/mqueue.c: fix mq_open() return value\n\nWe return ENOMEM from mqueue_get_inode even when we have enough memory.\nNamely in case the system rlimit of mqueue was reached.  This error\npropagates to mq_queue and user sees the error unexpectedly.  So fix\nthis up to properly return EMFILE as described in the manpage:\n\n\tEMFILE The process already has the maximum number of files and\n\t       message queues open.\n\ninstead of:\n\n\tENOMEM Insufficient memory.\n\nWith the previous patch we just switch to ERR_PTR/PTR_ERR/IS_ERR error\nhandling here.\n\nSigned-off-by: 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": "04715206c0c2fd4ec5ca77fa51e3a5b41ce71492",
      "tree": "fbead768d176d82e5e1ff6021c030b8cd6d26c9f",
      "parents": [
        "a64a26e822ddb739de464540dfd2cbb6abce47d5"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Jul 26 16:08:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "ipc/mqueue.c: refactor failure handling\n\nIf new_inode fails to allocate an inode we need only to return with\nNULL.  But now we test the opposite and have all the work in a nested\nblock.  So do the opposite to save one indentation level (and remove\nunnecessary line breaks).\n\nThis is only a preparation/cleanup for the next patch where we fix up\nreturn values from mqueue_get_inode.\n\nSigned-off-by: 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": "d694ad62bf539dbb20a0899ac2a954555f9e4a83",
      "tree": "fd3ddc3269b6ad40a448046e60560fec30fbb0c5",
      "parents": [
        "8405b044e5238afebd7248d927c1d261d2239767"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Jul 25 17:11:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:07 2011 -0700"
      },
      "message": "ipc/sem.c: fix race with concurrent semtimedop() timeouts and IPC_RMID\n\nIf a semaphore array is removed and in parallel a sleeping task is woken\nup (signal or timeout, does not matter), then the woken up task does not\nwait until wake_up_sem_queue_do() is completed.  This will cause crashes,\nbecause wake_up_sem_queue_do() will read from a stale pointer.\n\nThe fix is simple: Regardless of anything, always call get_queue_result().\nThis function waits until wake_up_sem_queue_do() has finished it\u0027s task.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d27142\n\nReported-by: Yuriy Yevtukhov \u003cyuriy@ucoz.com\u003e\nReported-by: Harald Laabs \u003ckernel@dasr.de\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.35+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d4ee9aa33db94120532601a22566e989efc3e70c",
      "tree": "7e138ea977cc405ea188be5dd7bf98fee324114d",
      "parents": [
        "693a8b6eecce1a0cfe91a469e85c56016dc1cc53"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 18 12:11:44 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 14:10:16 2011 -0700"
      },
      "message": "ipc,rcu: Convert call_rcu(ipc_immediate_free) to kfree_rcu()\n\nThe rcu callback ipc_immediate_free() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(ipc_immediate_free).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "693a8b6eecce1a0cfe91a469e85c56016dc1cc53",
      "tree": "eb96b13432d0e8933b71ed84f5bd5ee4df6a5687",
      "parents": [
        "449a68cc656fddeda448e324c57062a19cf451b9"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 18 12:09:35 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 14:10:16 2011 -0700"
      },
      "message": "ipc,rcu: Convert call_rcu(free_un) to kfree_rcu()\n\nThe rcu callback free_un() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(free_un).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "ca16d140af91febe25daeb9e032bf8bd46b8c31f",
      "tree": "a093c3f244a1bdfc2a50e271a7e6df3324df0f05",
      "parents": [
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 26 19:16:19 2011 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:20:31 2011 -0700"
      },
      "message": "mm: don\u0027t access vm_flags as \u0027int\u0027\n\nThe type of vma-\u003evm_flags is \u0027unsigned long\u0027. Neither \u0027int\u0027 nor\n\u0027unsigned int\u0027. This patch fixes such misuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n[ Changed to use a typedef - we\u0027ll extend it to cover more cases\n  later, since there has been discussion about making it a 64-bit\n  type..                      - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a00eaf11a223c63fbb212369d6db69ce4c55a2d1",
      "tree": "1c38d8591c229243cb09386a0f5b3737da421cf1",
      "parents": [
        "34482e89a5218f0f9317abf1cfba3bb38b5c29dd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Mar 07 18:48:39 2010 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 10 14:35:47 2011 -0700"
      },
      "message": "ns proc: Add support for the ipc namespace\n\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "6213cfe82461e39219a3b06ecf1d0679b4c0657f",
      "tree": "4db887e11a001984bb9d084fb861debb2f319e9a",
      "parents": [
        "ae91dbfc9949cf042c45798557b48d3b83bc3635"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Mar 26 13:27:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 19:30:19 2011 -0700"
      },
      "message": "ipc: fix util.c kernel-doc warnings\n\nFix ipc/util.c kernel-doc warnings:\n\n  Warning(ipc/util.c:336): No description found for parameter \u0027ns\u0027\n  Warning(ipc/util.c:620): No description found for parameter \u0027ns\u0027\n  Warning(ipc/util.c:790): No description found for parameter \u0027ns\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be4d250ab41e13f8f945be6896695e870b38ba31",
      "tree": "a4c47d13bbd91ba05870f457b8063829ca81134f",
      "parents": [
        "c03e3126e4f9535f4983d727f036440255c43c82"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Fri Mar 25 01:57:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:45:16 2011 -0700"
      },
      "message": "ipcns: fix use after free in free_ipc_ns()\n\ncommit b515498 (\"userns: add a user namespace owner of ipc ns\") added a\nuser namespace owner of ipc ns, but it also introduced a use after free in\nfree_ipc_ns().\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nAcked-by: \"Serge E. Hallyn\" \u003cserge.hallyn@canonical.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "b0e77598f87107001a00b8a4ece9c95e4254ccc4"
}
