)]}'
{
  "log": [
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "3af54c9bd9e6f14f896aac1bb0e8405ae0bc7a44",
      "tree": "74eb7ea6396c3ad00fce944789071ded2e0b85e8",
      "parents": [
        "504b701bb1655747575095543c083267418e02ac"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Sat Oct 30 18:22:49 2010 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 08:25:51 2010 -0700"
      },
      "message": "ipc: shm: fix information leak to userland\n\nThe shmid_ds structure is copied to userland with shm_unused{,2,3}\nfields unitialized.  It leads to leaking of contents of kernel stack\nmemory.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ceefda6931806972ecf550bd8231dce4a4178953",
      "tree": "46ed42a053f1ed43c3c110a21637a7b071657c8a",
      "parents": [
        "aed1d84f98738bcc1c605e1ff442de9890441315"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:16:50 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:03 2010 -0400"
      },
      "message": "switch get_sb_ns() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "03145beb455cf5c20a761e8451e30b8a74ba58d9",
      "tree": "a27b2221818b89039fc948d19780d52bb5c70789",
      "parents": [
        "b795218075a1e1183169abb66a90dcdcf30367f9"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Wed Oct 27 15:34:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "ipc: initialize structure memory to zero for compat functions\n\nThis takes care of leaking uninitialized kernel stack memory to\nuserspace from non-zeroed fields in structs in compat ipc functions.\n\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b795218075a1e1183169abb66a90dcdcf30367f9",
      "tree": "2bed7b593dc8398d6c30815e4350577d5bd90474",
      "parents": [
        "98391cf4dcf893e9e74e1c14189851dbc9c5ad0d"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Wed Oct 27 15:34:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "ipc/shm.c: add RSS and swap size information to /proc/sysvipc/shm\n\nThe kernel currently provides no functionality to analyze the RSS and swap\nspace usage of each individual sysvipc shared memory segment.\n\nThis patch adds this info for each existing shm segment by extending the\noutput of /proc/sysvipc/shm by two columns for RSS and swap.\n\nSince shmctl(SHM_INFO) already provides a similiar calculation (it\ncurrently sums up all RSS/swap info for all segments), I did split out a\nstatic function which is now used by the /proc/sysvipc/shm output and\nshmctl(SHM_INFO).\n\nSAP products (esp.  the SAP Netweaver ABAP Kernel) uses lots of big shared\nmemory segments (we often have Linux systems with \u003e\u003d 16GB shm usage).\nSometimes we get customer reports about \"slow\" system responses and while\nlooking into their configurations we often find massive swapping activity\non the system.  With this patch it\u0027s now easy to see from the command line\nif and which shm segments gets swapped out (and how much) and can more\neasily give recommendations for system tuning.  Without the patch it\u0027s\ncurrently not possible to do such shm analysis at all.\n\nAlso...\n\nAdd some spaces in front of the \"size\" field for 64bit kernels to get the\ncolumns correct if you cat the contents of the file.  In\nsysvipc_shm_proc_show() the kernel prints the size value in \"SPEC_SIZE\"\nformat, which is defined like this:\n\n#if BITS_PER_LONG \u003c\u003d 32\n#define SIZE_SPEC \"%10lu\"\n#else\n#define SIZE_SPEC \"%21lu\"\n#endif\n\nSo, if the header is not adjusted, the columns are not correctly aligned.\nI actually tested this on 32- and 64-bit and it seems correct now.\n\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-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": "85fe4025c616a7c0ed07bc2fc8c5371b07f3888c",
      "tree": "7a5db7accb6192f2911f2473b4e3191227b914cc",
      "parents": [
        "f991bd2e14210fb93d722cb23e54991de20e8a3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 11:19:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "fs: do not assign default i_ino in new_inode\n\nInstead of always assigning an increasing inode number in new_inode\nmove the call to assign it into those callers that actually need it.\nFor now callers that need it is estimated conservatively, that is\nthe call is added to all filesystems that do not assign an i_ino\nby themselves.  For a few more filesystems we can avoid assigning\nany inode number given that they aren\u0027t user visible, and for others\nit could be done lazily when an inode number is actually needed,\nbut that\u0027s left for later patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "982f7c2b2e6a28f8f266e075d92e19c0dd4c6e56",
      "tree": "a25ab8534b9f43cb90292ed125dfb9d72fee9858",
      "parents": [
        "64aab720bdf8771214a7c88872bd8e3194c2d279"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Thu Sep 30 15:15:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 01 10:50:58 2010 -0700"
      },
      "message": "sys_semctl: fix kernel stack leakage\n\nThe semctl syscall has several code paths that lead to the leakage of\nuninitialized kernel stack memory (namely the IPC_INFO, SEM_INFO,\nIPC_STAT, and SEM_STAT commands) during the use of the older, obsolete\nversion of the semid_ds struct.\n\nThe copy_semid_to_user() function declares a semid_ds struct on the stack\nand copies it back to the user without initializing or zeroing the\n\"sem_base\", \"sem_pending\", \"sem_pending_last\", and \"undo\" pointers,\nallowing the leakage of 16 bytes of kernel stack memory.\n\nThe code is still reachable on 32-bit systems - when calling semctl()\nnewer glibc\u0027s automatically OR the IPC command with the IPC_64 flag, but\ninvoking the syscall directly allows users to use the older versions of\nthe struct.\n\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.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": "6d8af64c1c5ad4fd119b371ae70c114ee1f443b1",
      "tree": "662cf5b2d557c26b38d9cc41fafd34e0af6044bb",
      "parents": [
        "72edc4d0873ba5165c0759264298bf5f55351c7a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 05 16:29:45 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:58 2010 -0400"
      },
      "message": "switch mqueue to -\u003eevict_inode()\n\n... and since the inodes are never hashed, we can use default -\u003edrop_inode()\njust fine.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c61284e99191b2284fb74dae6961d4d09e4e59e8",
      "tree": "6b49a9e2e5ade9f395c66f6453ff60b952a6df38",
      "parents": [
        "19f0f0af097ba3138ae2780b471180512763a78f"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Tue Jul 20 13:24:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:25:40 2010 -0700"
      },
      "message": "ipc/sem.c: bugfix for semop() not reporting successful operation\n\nThe last change to improve the scalability moved the actual wake-up out of\nthe section that is protected by spin_lock(sma-\u003esem_perm.lock).\n\nThis means that IN_WAKEUP can be in queue.status even when the spinlock is\nacquired by the current task.  Thus the same loop that is performed when\nqueue.status is read without the spinlock acquired must be performed when\nthe spinlock is acquired.\n\nThanks to kamezawa.hiroyu@jp.fujitsu.com for noticing lack of the memory\nbarrier.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d16255\n\n[akpm@linux-foundation.org: clean up kerneldoc, checkpatch warning and whitespace]\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nReported-by: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nTested-by: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nReported-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0abbb609ac511fc226b8b1082613193c8ecf8324",
      "tree": "dc70af8cdfae534b4538fae571525fc5282f224f",
      "parents": [
        "b8a3c6091a2337391ed878693604d712d6420241"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 28 19:06:15 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 04 17:16:27 2010 -0400"
      },
      "message": "mqueue doesn\u0027t need make_bad_inode()\n\nIt never hashes them anyway and does final iput() immediately\nafterwards.  With -\u003edrop_inode() being generic_delete_inode()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4de85cd6d6018825e19f76f1208775f23ecc393f",
      "tree": "117e765f4e24c4a67668ea96cfcc85a88793365c",
      "parents": [
        "c5cf6359ad1d322c16e159011247341849cc0d3a"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:43:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:49 2010 -0700"
      },
      "message": "ipc/sem.c: use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\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": "c5cf6359ad1d322c16e159011247341849cc0d3a",
      "tree": "aefc0ff518c05d5fb386ab2103ec4dc25bffbe4d",
      "parents": [
        "31a7c4746e9925512afab30557dd445d677cc802"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed May 26 14:43:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:49 2010 -0700"
      },
      "message": "ipc/sem.c: update description of the implementation\n\nipc/sem.c begins with a 15 year old description about bugs in the initial\nimplementation in Linux-1.0.  The patch replaces that with a top level\ndescription of the current code.\n\nA TODO could be derived from this text:\n\nThe opengroup man page for semop() does not mandate FIFO.  Thus there is\nno need for a semaphore array list of pending operations.\n\nIf\n\n- this list is removed\n- the per-semaphore array spinlock is removed (possible if there is no\n  list to protect)\n- sem_otime is moved into the semaphores and calculated on demand during\n  semctl()\n\nthen the array would be read-mostly - which would significantly improve\nscaling for applications that use semaphore arrays with lots of entries.\n\nThe price would be expensive semctl() calls:\n\n\tfor(i\u003d0;i\u003csma-\u003esem_nsems;i++) spin_lock(sma-\u003esem_lock);\n\t\u003cdo stuff\u003e\n\tfor(i\u003d0;i\u003csma-\u003esem_nsems;i++) spin_unlock(sma-\u003esem_lock);\n\nI\u0027m not sure if the complexity is worth the effort, thus here is the\ndocumentation of the current behavior first.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a2b9d4c79671b05956806ede5d054e03ae56280",
      "tree": "28431a1dc1e21528c0075c7f4ac345bda40ce21b",
      "parents": [
        "fd5db42254518fbf241dc454e918598fbe494fa2"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed May 26 14:43:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:49 2010 -0700"
      },
      "message": "ipc/sem.c: move wake_up_process out of the spinlock section\n\nThe wake-up part of semtimedop() consists out of two steps:\n\n- the right tasks must be identified.\n- they must be woken up.\n\nRight now, both steps run while the array spinlock is held.  This patch\nreorders the code and moves the actual wake_up_process() behind the point\nwhere the spinlock is dropped.\n\nThe code also moves setting sem-\u003esem_otime to one place: It does not make\nsense to set the last modify time multiple times.\n\n[akpm@linux-foundation.org: repair kerneldoc]\n[akpm@linux-foundation.org: fix uninitialised retval]\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd5db42254518fbf241dc454e918598fbe494fa2",
      "tree": "356c8098f7f706a0e0396476fb5ccb924568eea1",
      "parents": [
        "2dcb22b346be7b7b7e630a8970d69cf3f1111ec1"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed May 26 14:43:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:49 2010 -0700"
      },
      "message": "ipc/sem.c: optimize update_queue() for bulk wakeup calls\n\nThe following series of patches tries to fix the spinlock contention\nreported by Chris Mason - his benchmark exposes problems of the current\ncode:\n\n- In the worst case, the algorithm used by update_queue() is O(N^2).\n  Bulk wake-up calls can enter this worst case.  The patch series fix\n  that.\n\n  Note that the benchmark app doesn\u0027t expose the problem, it just should\n  be fixed: Real world apps might do the wake-ups in another order than\n  perfect FIFO.\n\n- The part of the code that runs within the semaphore array spinlock is\n  significantly larger than necessary.\n\n  The patch series fixes that.  This change is responsible for the main\n  improvement.\n\n- The cacheline with the spinlock is also used for a variable that is\n  read in the hot path (sem_base) and for a variable that is unnecessarily\n  written to multiple times (sem_otime).  The last step of the series\n  cacheline-aligns the spinlock.\n\nThis patch:\n\nThe SysV semaphore code allows to perform multiple operations on all\nsemaphores in the array as atomic operations.  After a modification,\nupdate_queue() checks which of the waiting tasks can complete.\n\nThe algorithm that is used to identify the tasks is O(N^2) in the worst\ncase.  For some cases, it is simple to avoid the O(N^2).\n\nThe patch adds a detection logic for some cases, especially for the case\nof an array where all sleeping tasks are single sembuf operations and a\nmulti-sembuf operation is used to wake up multiple tasks.\n\nA big database application uses that approach.\n\nThe patch fixes wakeup due to semctl(,,SETALL,) - the initial version of\nthe patch breaks that.\n\n[akpm@linux-foundation.org: make do_smart_update() static]\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "164d44fd92e79d5bce54d0d62df9f856f7b23925",
      "tree": "9f21607849b7e684b255578ffdf41951bc31787e",
      "parents": [
        "5bfec46baa3a752393433b8d89d3b2c70820f61d",
        "d7e81c269db899b800e0963dc4aceece1f82a680"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:11:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:11:10 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Add clocksource_register_hz/khz interface\n  posix-cpu-timers: Optimize run_posix_cpu_timers()\n  time: Remove xtime_cache\n  mqueue: Convert message queue timeout to use hrtimers\n  hrtimers: Provide schedule_hrtimeout for CLOCK_REALTIME\n  timers: Introduce the concept of timer slack for legacy timers\n  ntp: Remove tickadj\n  ntp: Make time_adjust static\n  time: Add xtime, wall_to_monotonic to feature-removal-schedule\n  timer: Try to survive timer callback preempt_count leak\n  timer: Split out timer function call\n  timer: Print function name for timer callbacks modifying preemption count\n  time: Clean up warp_clock()\n  cpu-timers: Avoid iterating over all threads in fastpath_timer_check()\n  cpu-timers: Change SIGEV_NONE timer implementation\n  cpu-timers: Return correct previous timer reload value\n  cpu-timers: Cleanup arm_timer()\n  cpu-timers: Simplify RLIMIT_CPU handling\n"
    },
    {
      "commit": "a3ed2a15719219769bb095b28009c1d654a419e8",
      "tree": "22039574b16ad79f9eba06317e8f1ad7cd9d53c3",
      "parents": [
        "de145b44b95b9d3212a82d1c0f29b09778ef33c5"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue May 11 14:07:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 17:33:42 2010 -0700"
      },
      "message": "mqueue: fix kernel BUG caused by double free() on mq_open()\n\nIn case of aborting because we reach the maximum amount of memory which\ncan be allocated to message queues per user (RLIMIT_MSGQUEUE), we would\ntry to free the message area twice when bailing out: first by the error\nhandling code itself, and then later when cleaning up the inode through\ndelete_inode().\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbb6be6d5e974c42bbecd183effaa0df69e1dd8b",
      "tree": "5735cb47e70853d057a9881dd0ce44b83e88fa63",
      "parents": [
        "6a867a395558a7f882d041783e4cdea6744ca2bf",
        "b57f95a38233a2e73b679bea4a5453a1cc2a1cc9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 10 11:59:37 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 10 14:20:42 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into timers/core\n\nReason: Further posix_cpu_timer patches depend on mainline changes\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9ca7d8e6834c40a99622bbe4a88aaf64313ae43c",
      "tree": "27c0e93e23c25a30aec38c1f79cfa3d194681d24",
      "parents": [
        "351b3f7a21e413a9b14d0393171497d2373bd702"
      ],
      "author": {
        "name": "Carsten Emde",
        "email": "C.Emde@osadl.org",
        "time": "Fri Apr 02 22:40:20 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 06 21:50:03 2010 +0200"
      },
      "message": "mqueue: Convert message queue timeout to use hrtimers\n\nThe message queue functions mq_timedsend() and mq_timedreceive()\nhave not yet been converted to use the hrtimer interface.\n\nThis patch replaces the call to schedule_timeout() by a call to\nschedule_hrtimeout() and transforms the expiration time from\ntimespec to ktime as required.\n\n[ tglx: Fixed whitespace wreckage ]\n\nSigned-off-by: Carsten Emde \u003cC.Emde@osadl.org\u003e\nTested-by: Pradyumna Sampath \u003cpradysam@gmail.com\u003e\nCc: Arjan van de Veen \u003carjan@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c20100402204331.715783034@osadl.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "45575f5a426c01ec68cd33d998267ba2f6278fac",
      "tree": "f34a857f471e5249bda3fca723e4b69ba6ce552c",
      "parents": [
        "a90110c61073eab95d1986322693c2b9a8a6a5f6"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Mar 22 17:47:59 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 22 09:57:19 2010 -0700"
      },
      "message": "ppc64 sys_ipc breakage in 2.6.34-rc2\n\nI chased down a fail on ppc64 on 2.6.34-rc2 where an application that\nuses shared memory was getting a SEGV.\n\nCommit baed7fc9b580bd3fb8252ff1d9b36eaf1f86b670 (\"Add generic sys_ipc\nwrapper\") changed the second argument from an unsigned long to an int.\nWhen we call shmget the system call wrappers for sys_ipc will sign\nextend second (ie the size) which truncates it.  It took a while to\ntrack down because the call succeeds and strace shows the untruncated\nsize :)\n\nThe patch below changes second from an int to an unsigned long which\nfixes shmget on ppc64 (and I assume s390, sparc64 and mips64).\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\n--\n\nI assume the function prototypes for the other IPC methods would cause us\nto sign or zero extend second where appropriate (avoiding any security\nissues). Come to think of it, the syscall wrappers for each method should do\nthat for us as well.\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1eb1332b8f07e937add24c6fd2ac40b8737a2f4",
      "tree": "43bfaac596ae20dcab088b870406e58a2bb4b78a",
      "parents": [
        "d6db2ade10852b7c665b361239c3411abaa880b5"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Wed Mar 10 15:23:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:39 2010 -0800"
      },
      "message": "ipc: use rlimit helpers\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in\n3e10e716abf3c71bdb5d86b8f507f9e72236c9cd (\"resource: add helpers for\nfetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "baed7fc9b580bd3fb8252ff1d9b36eaf1f86b670",
      "tree": "38f23cd9888b92de3f73ed1f4ce48cd83e940e0e",
      "parents": [
        "a4679373cf4ee0e7792dc56205365732b725c2c1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Mar 10 15:21:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:32 2010 -0800"
      },
      "message": "Add generic sys_ipc wrapper\n\nAdd a generic implementation of the ipc demultiplexer syscall.  Except for\ns390 and sparc64 all implementations of the sys_ipc are nearly identical.\n\nThere are slight differences in the types of the parameters, where mips\nand powerpc as the only 64-bit architectures with sys_ipc use unsigned\nlong for the \"third\" argument as it gets casted to a pointer later, while\nit traditionally is an \"int\" like most other paramters.  frv goes even\nfurther and uses unsigned long for all parameters execept for \"ptr\" which\nis a pointer type everywhere.  The change from int to unsigned long for\n\"third\" and back to \"int\" for the others on frv should be fine due to the\nin-register calling conventions for syscalls (we already had a similar\nissue with the generic sys_ptrace), but I\u0027d prefer to have the arch\nmaintainers looks over this in details.\n\nExcept for that h8300, m68k and m68knommu lack an impplementation of the\nsemtimedop sub call which this patch adds, and various architectures have\ngets used - at least on i386 it seems superflous as the compat code on\nx86-64 and ia64 doesn\u0027t even bother to implement it.\n\n[akpm@linux-foundation.org: add sys_ipc to sys_ni.c]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2329e392accdb1b277927e8d9cbf568ba3f3856d",
      "tree": "f2484c1e6858e1fb8c4f6a4d0549782c7b8b8d05",
      "parents": [
        "8d8ffefaaf63f0468f17fbd1270165e739cf335e"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue Feb 23 04:04:27 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:48:00 2010 -0500"
      },
      "message": "mqueue: fix typo \"failues\" -\u003e \"failures\"\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d8ffefaaf63f0468f17fbd1270165e739cf335e",
      "tree": "8e6c8c356c98b94775076c93598e485c9a125cf2",
      "parents": [
        "04db0dde0ee1c29110642dff57fba9e438eb805c"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue Feb 23 04:04:26 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:48:00 2010 -0500"
      },
      "message": "mqueue: only set error codes if they are really necessary\n\n... postponing assignments until they\u0027re needed. Doesn\u0027t change code size.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "04db0dde0ee1c29110642dff57fba9e438eb805c",
      "tree": "ca80ec3e48470f70d233fcabf4c8d79c4b3c4bc7",
      "parents": [
        "8834cf796a4320be2d3a70b1e4f9aba732a0f4ee"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue Feb 23 04:04:25 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:48:00 2010 -0500"
      },
      "message": "mqueue: simplify do_open() error handling\n\nIt reduces code size:\ntext    data     bss     dec     hex filename\n9925      72      16   10013    271d ipc/mqueue-BEFORE.o\n9885      72      16    9973    26f5 ipc/mqueue-AFTER.o\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8834cf796a4320be2d3a70b1e4f9aba732a0f4ee",
      "tree": "b8bde5dde82715a3e69cf5fc0e01430c848588f5",
      "parents": [
        "c8308b1c91056b09e96d40dbde4880ea685c377e"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue Feb 23 04:04:24 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:48:00 2010 -0500"
      },
      "message": "mqueue: apply mathematics distributivity on mq_bytes calculation\n\nCode size reduction:\n   text    data     bss     dec     hex filename\n   9941      72      16   10029    272d ipc/mqueue-BEFORE.o\n   9925      72      16   10013    271d ipc/mqueue-AFTER.o\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c8308b1c91056b09e96d40dbde4880ea685c377e",
      "tree": "bfaf1f636ef161f5410cd8ba8a1e3b023fd0c33b",
      "parents": [
        "4294a8eedb17bbc45e1e7447c2a4d05332943248"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue Feb 23 04:04:23 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:47:59 2010 -0500"
      },
      "message": "mqueue: remove unneeded info-\u003emessages initialization\n\n... and abort earlier if we couldn\u0027t allocate the message pointers array,\navoiding the u-\u003emq_bytes accounting logic.\n\nIt reduces code size:\n   text    data     bss     dec     hex filename\n   9949      72      16   10037    2735 ipc/mqueue-BEFORE.o\n   9941      72      16   10029    272d ipc/mqueue-AFTER.o\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4294a8eedb17bbc45e1e7447c2a4d05332943248",
      "tree": "db83b372de61b43208e08a97dd5f0280552d7ffa",
      "parents": [
        "4919c5e45a91b5db5a41695fe0357fbdff0d5767"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Tue Feb 23 04:04:28 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:46:05 2010 -0500"
      },
      "message": "mqueue: fix mq_open() file descriptor leak on user-space processes\n\nWe leak fd on lookup_one_len() failure\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ed5e5894b234ce4793d78078c026915b853e0678",
      "tree": "199db2a5cc821d4de9645418fb00c03d438eae1f",
      "parents": [
        "8ff410daa009c4b44be445ded5b0cec00abc0426"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:32 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:39 2010 -0800"
      },
      "message": "nommu: fix SYSV SHM for NOMMU\n\nCommit c4caa778157dbbf04116f0ac2111e389b5cd7a29 (\"file\n-\u003eget_unmapped_area() shouldn\u0027t duplicate work of get_unmapped_area()\")\nbroke SYSV SHM for NOMMU by taking away the pointer to\nshm_get_unmapped_area() from shm_file_operations.\n\nPut it back conditionally on CONFIG_MMU\u003dn.\n\nfile-\u003ef_ops-\u003eget_unmapped_area() is used to find out the base address for a\nmapping of a mappable chardev device or mappable memory-based file (such as a\nramfs file).  It needs to be called prior to file-\u003ef_ops-\u003emmap() being called.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bac5e54c29f352d962a2447d22735316b347b9f1",
      "tree": "7642993fa93164835ffaa2dacd341388193f1979",
      "parents": [
        "529e89430d6c0d64db8ac474cb95e68e2527c79a",
        "c05c4edd876b7ae92787d1295868afcb89b6a348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)\n  direct I/O fallback sync simplification\n  ocfs: stop using do_sync_mapping_range\n  cleanup blockdev_direct_IO locking\n  make generic_acl slightly more generic\n  sanitize xattr handler prototypes\n  libfs: move EXPORT_SYMBOL for d_alloc_name\n  vfs: force reval of target when following LAST_BIND symlinks (try #7)\n  ima: limit imbalance msg\n  Untangling ima mess, part 3: kill dead code in ima\n  Untangling ima mess, part 2: deal with counters\n  Untangling ima mess, part 1: alloc_file()\n  O_TRUNC open shouldn\u0027t fail after file truncation\n  ima: call ima_inode_free ima_inode_free\n  IMA: clean up the IMA counts updating code\n  ima: only insert at inode creation time\n  ima: valid return code from ima_inode_alloc\n  fs: move get_empty_filp() deffinition to internal.h\n  Sanitize exec_permission_lite()\n  Kill cached_lookup() and real_lookup()\n  Kill path_lookup_open()\n  ...\n\nTrivial conflicts in fs/direct-io.c\n"
    },
    {
      "commit": "b65a9cfc2c38eebc33533280b8ad5841caee8b6e",
      "tree": "d6e5b713615cc5e65c900162ab09235ae4847909",
      "parents": [
        "0552f879d45cecc35d8e372a591fc5ed863bca58"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:27:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 2: deal with counters\n\n* do ima_get_count() in __dentry_open()\n* stop doing that in followups\n* move ima_path_check() to right after nameidata_to_filp()\n* don\u0027t bump counters on it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0552f879d45cecc35d8e372a591fc5ed863bca58",
      "tree": "f3e0d76f7d5e7cf9a11ef4771294c7b4b552cd89",
      "parents": [
        "7715b521222b6ebb6e927fa261ed91ed687fe454"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 04:53:03 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 1: alloc_file()\n\nThere are 2 groups of alloc_file() callers:\n\t* ones that are followed by ima_counts_get\n\t* ones giving non-regular files\nSo let\u0027s pull that ima_counts_get() into alloc_file();\nit\u0027s a no-op in case of non-regular files.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2c48b9c45579a9b5e3e74694eebf3d2451f3dbd3",
      "tree": "cecbf786ae0650368a8136bdd90910e05d9b95c3",
      "parents": [
        "a95161aaa801c18c52b2e7cf3d6b4b141c00a20a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 09 00:52:35 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:42 2009 -0500"
      },
      "message": "switch alloc_file() to passing struct path\n\n... and have the caller grab both mnt and dentry; kill\nleak in infiniband, while we are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e5cc9c7b1a3e7ae4d700d9fce168fb597bcfe9b6",
      "tree": "567e8b359132aa0a542c2d940274727003c0c9f1",
      "parents": [
        "d987f8b213f2cdcc52b2ca9ee67161516e4d256a"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Tue Dec 15 16:47:35 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:10 2009 -0800"
      },
      "message": "ipc: remove unreachable code in sem.c\n\nThis line is unreachable, remove it.\n\n[akpm@linux-foundation.org: remove unneeded initialisation of `err\u0027]\nSigned-off-by: WANG Cong \u003camwang@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": "d987f8b213f2cdcc52b2ca9ee67161516e4d256a",
      "tree": "12ed1a267c8fd3ea0343d6a77f1c332b775d4dfe",
      "parents": [
        "636c6be823870d829b37fc96655bb8820a6a9be9"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Tue Dec 15 16:47:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:10 2009 -0800"
      },
      "message": "ipc/sem.c: optimize single sops when semval is zero\n\nIf multiple simple decrements on the same semaphore are pending, then the\ncurrent code scans all decrement operations, even if the semaphore value\nis already 0.\n\nThe patch optimizes that: if the semaphore value is 0, then there is no\nneed to scan the q-\u003ealter entries.\n\nNote that this is a common case: It happens if 100 decrements by one are\npending and now an increment by one increases the semaphore value from 0\nto 1.  Without this patch, all 100 entries are scanned.  With the patch,\nonly one entry is scanned, then woken up.  Then the new rule triggers and\nthe scanning is aborted, without looking at the remaining 99 tasks.\n\nWith this patch, single sop increment/decrement by 1 are now O(1).\n(same as with Nick\u0027s patch)\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "636c6be823870d829b37fc96655bb8820a6a9be9",
      "tree": "dc17d73ae77e6921ca7c88e6b019fe3d72bb9790",
      "parents": [
        "b97e820ffffbf49e94ed60c9c26f1a54bccae924"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Tue Dec 15 16:47:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:10 2009 -0800"
      },
      "message": "ipc/sem.c: optimize single semop operations\n\nsysv sem has the concept of semaphore arrays that consist out of multiple\nsemaphores.  Atomic operations that affect multiple semaphores are\nsupported.\n\nThe patch optimizes single semaphore operation calls that affect only one\nsemaphore: It\u0027s not necessary to scan all pending operations, it is\nsufficient to scan the per-semaphore list.\n\nThe idea is from Nick Piggin version of an ipc sem improvement, the\nimplementation is different: The code tries to keep as much common code as\npossible.\n\nAs the result, the patch is simpler, but optimizes fewer cases.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "b97e820ffffbf49e94ed60c9c26f1a54bccae924",
      "tree": "195146c43d24051aada20a211f2bb146bfebe9d2",
      "parents": [
        "b6e90822e77cd476c18410f7003197d466e36ac6"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Tue Dec 15 16:47:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:10 2009 -0800"
      },
      "message": "ipc/sem.c: add a per-semaphore pending list\n\nBased on Nick\u0027s findings:\n\nsysv sem has the concept of semaphore arrays that consist out of multiple\nsemaphores.  Atomic operations that affect multiple semaphores are\nsupported.\n\nThe patch is the first step for optimizing simple, single semaphore\noperations: In addition to the global list of all pending operations, a\n2nd, per-semaphore list with the simple operations is added.\n\nNote: this patch does not make sense by itself, the new list is used\nnowhere.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "b6e90822e77cd476c18410f7003197d466e36ac6",
      "tree": "2ff18df8c024ae92e7e8912186c34b10b4b6f4bd",
      "parents": [
        "d4212093dca95c1f52197017d969cc66d5d962aa"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Tue Dec 15 16:47:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:09 2009 -0800"
      },
      "message": "ipc/sem.c: optimize if semops fail\n\nReduce the amount of scanning of the list of pending semaphore operations:\nIf try_atomic_semop failed, then no changes were applied.  Thus no need to\nrestart.\n\nAdditionally, this patch correct an incorrect comment: It\u0027s possible to\nwait for arbitrary semaphore values (do a dec by \u003cx\u003e, wait-for-zero, inc\nby \u003cx\u003e in one atomic operation)\n\nBoth changes are from Nick Piggin, the patch is the result of a different\nsplit of the individual changes.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "d4212093dca95c1f52197017d969cc66d5d962aa",
      "tree": "f52484ae3c7b3034715b5745ae2b7db3906ab022",
      "parents": [
        "9cad200c7686708b326520a45dd680a4147568a6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Dec 15 16:47:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:09 2009 -0800"
      },
      "message": "ipc/sem.c: sem preempt improve\n\nThe strange sysv semaphore wakeup scheme has a kind of busy-wait lock\ninvolved, which could deadlock if preemption is enabled during the \"lock\".\n\nIt is an implementation detail (due to a spinlock being held) that this is\nactually the case.  However if \"spinlocks\" are made preemptible, or if the\nsem lock is changed to a sleeping lock for example, then the wakeup would\nbecome buggy.  So this might be a bugfix for -rt kernels.\n\nImagine waker being preempted by wakee and never clearing IN_WAKEUP -- if\nwakee has higher RT priority then there is a priority inversion deadlock.\nEven if there is not a priority inversion to cause a deadlock, then there\nis still time wasted spinning.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "9cad200c7686708b326520a45dd680a4147568a6",
      "tree": "76a3299679ef23c945e9371f330559d6bc3d0a43",
      "parents": [
        "bf17bb717759d50a2733a7a8157a7c4a25d93abc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Dec 15 16:47:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:09 2009 -0800"
      },
      "message": "ipc/sem.c: sem use list operations\n\nReplace the handcoded list operations in update_queue() with the standard\nlist_for_each_entry macros.\n\nlist_for_each_entry_safe() must be used, because list entries can\ndisappear immediately uppon the wakeup event.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "bf17bb717759d50a2733a7a8157a7c4a25d93abc",
      "tree": "22468665036b37922664529df976c890c5bed2d0",
      "parents": [
        "7d6feeb287c61aafa88f06345387b1188edf4b86"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Dec 15 16:47:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:09 2009 -0800"
      },
      "message": "ipc/sem.c: sem optimise undo list search\n\nAround a month ago, there was some discussion about an improvement of the\nsysv sem algorithm: Most (at least: some important) users only use simple\nsemaphore operations, therefore it\u0027s worthwile to optimize this use case.\n\nThis patch:\n\nMove last looked up sem_undo struct to the head of the task\u0027s undo list.\nAttempt to move common entries to the front of the list so search time is\nreduced.  This reduces lookup_undo on oprofile of problematic SAP workload\nby 30% (see patch 4 for a description of SAP workload).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "7d6feeb287c61aafa88f06345387b1188edf4b86",
      "tree": "b07d1033d8980256d596686d75c2207b1f2cce0a",
      "parents": [
        "1be53963b0519bd3681749a9bed8b83aeb005cca"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue Dec 15 16:47:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:09 2009 -0800"
      },
      "message": "ipc ns: fix memory leak (idr)\n\nWe have apparently had a memory leak since\n7ca7e564e049d8b350ec9d958ff25eaa24226352 \"ipc: store ipcs into IDRs\" in\n2007.  The idr of which 3 exist for each ipc namespace is never freed.\n\nThis patch simply frees them when the ipcns is freed.  I don\u0027t believe any\nidr_remove() are done from rcu (and could therefore be delayed until after\nthis idr_destroy()), so the patch should be safe.  Some quick testing\nshowed no harm, and the memory leak fixed.\n\nCaught by kmemleak.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4caa778157dbbf04116f0ac2111e389b5cd7a29",
      "tree": "d8e26c07bacaaa6b1e6b1e57816fd42da94e15f4",
      "parents": [
        "0ec62d290912bb4b989be7563851bc364ec73b56"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 30 08:38:43 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 11 06:34:09 2009 -0500"
      },
      "message": "file -\u003eget_unmapped_area() shouldn\u0027t duplicate work of get_unmapped_area()\n\n... we should call mm -\u003eget_unmapped_area() instead and let our caller\ndo the final checks.\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "f1970c48ef06ece4e23765501976507ab52b0edd",
      "tree": "b8db16b9b697a3cc33f69ceaf7998c4ad3576e9c",
      "parents": [
        "e9de25dda359c9272998daddeae7788376a44e41"
      ],
      "author": {
        "name": "Felipe Contreras",
        "email": "felipe.contreras@gmail.com",
        "time": "Mon Oct 19 01:54:29 2009 +0300"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:49 2009 +0100"
      },
      "message": "ipc: fix unused variable warning\n\nCommit a0d092f introduced the following warning:\nipc/msg.c: In function ?msgctl_down?:\nipc/msg.c:415: warning: ?msqid64? may be used uninitialized in this function\n\nThe gcc warning in this case is actually bogus, as msqid64 is touched only\niff cmd \u003d\u003d IPC_SET, and in such case, copy_msqid_from_user() initializes\nit properly.\n\nSigned-off-by: Felipe Contreras \u003cfelipe.contreras@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2bc4657c15e4a33d9a192579c7627a397dbcbebc",
      "tree": "c226e2e567fa7c13b68aa3de16fb83f731d22aa5",
      "parents": [
        "a153cf9dd038244b7fd9adad3152b85deec5c4af"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Apr 03 02:51:10 2009 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:04:54 2009 -0800"
      },
      "message": "sysctl ipc: Remove dead binary sysctl support code.\n\nNow that sys_sysctl is a generic wrapper around /proc/sys  .ctl_name\nand .strategy members of sysctl tables are dead code.  Remove them.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\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": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6bfde05bf5c9682e255c6a2c669dc80f91af6296",
      "tree": "3ff62bb87fc12c1ce808a54f789c42c35be7c049",
      "parents": [
        "f8dbf0a7a4c5d98e8b70da9f7f4f6a89f3b7a7bb"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Mon Sep 21 17:03:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "hugetlbfs: allow the creation of files suitable for MAP_PRIVATE on the vfs internal mount\n\nThis patchset adds a flag to mmap that allows the user to request that an\nanonymous mapping be backed with huge pages.  This mapping will borrow\nfunctionality from the huge page shm code to create a file on the kernel\ninternal mount and use it to approximate an anonymous mapping.  The\nMAP_HUGETLB flag is a modifier to MAP_ANONYMOUS and will not work without\nboth flags being preset.\n\nA new flag is necessary because there is no other way to hook into huge\npages without creating a file on a hugetlbfs mount which wouldn\u0027t be\nMAP_ANONYMOUS.\n\nTo userspace, this mapping will behave just like an anonymous mapping\nbecause the file is not accessible outside of the kernel.\n\nThis patchset is meant to simplify the programming model.  Presently there\nis a large chunk of boiler platecode, contained in libhugetlbfs, required\nto create private, hugepage backed mappings.  This patch set would allow\nuse of hugepages without linking to libhugetlbfs or having hugetblfs\nmounted.\n\nUnification of the VM code would provide these same benefits, but it has\nbeen resisted each time that it has been suggested for several reasons: it\nwould break PAGE_SIZE assumptions across the kernel, it makes page-table\nabstractions really expensive, and it does not provide any benefit on\narchitectures that do not support huge pages, incurring fast path\npenalties without providing any benefit on these architectures.\n\nThis patch:\n\nThere are two means of creating mappings backed by huge pages:\n\n        1. mmap() a file created on hugetlbfs\n        2. Use shm which creates a file on an internal mount which essentially\n           maps it MAP_SHARED\n\nThe internal mount is only used for shared mappings but there is very\nlittle that stops it being used for private mappings. This patch extends\nhugetlbfs_file_setup() to deal with the creation of files that will be\nmapped MAP_PRIVATE on the internal hugetlbfs mount. This extended API is\nused in a subsequent patch to implement the MAP_HUGETLB mmap() flag.\n\nSigned-off-by: Eric Munson \u003cebmunson@us.ibm.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b87221de6a4934eda856475a0065688d12973a04",
      "tree": "6bcf0628e106c4833538f4c23d710fbbe3d7609a",
      "parents": [
        "0d54b217a247f39605361f867fefbb9e099a5432"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining super_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2195d2818c37bdf263865f1e9effccdd9fc5f9d4",
      "tree": "3b74a195c2b69d8390c67c7cd46139df0bdd69ec",
      "parents": [
        "69def9f05dfce3281bb06599057e6b8097385d39"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Sat Sep 12 12:21:27 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 17:45:31 2009 -0700"
      },
      "message": "fix undefined reference to user_shm_unlock\n\nMy 353d5c30c666580347515da609dd74a2b8e9b828 \"mm: fix hugetlb bug due to\nuser_shm_unlock call\" broke the CONFIG_SYSVIPC !CONFIG_MMU build of both\n2.6.31 and 2.6.30.6: \"undefined reference to `user_shm_unlock\u0027\".\n\ngcc didn\u0027t understand my comment! so couldn\u0027t figure out to optimize\naway user_shm_unlock() from the error path in the hugetlb-less case, as\nit does elsewhere.  Help it to do so, in a language it understands.\n\nReported-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "353d5c30c666580347515da609dd74a2b8e9b828",
      "tree": "03cf3b5c0bc2ce08a12af303b141503ad833178f",
      "parents": [
        "0257a0c0c1997aac28420e784b3ef8f3ce17f093"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Aug 24 16:30:28 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 24 12:53:01 2009 -0700"
      },
      "message": "mm: fix hugetlb bug due to user_shm_unlock call\n\n2.6.30\u0027s commit 8a0bdec194c21c8fdef840989d0d7b742bb5d4bc removed\nuser_shm_lock() calls in hugetlb_file_setup() but left the\nuser_shm_unlock call in shm_destroy().\n\nIn detail:\nAssume that can_do_hugetlb_shm() returns true and hence user_shm_lock()\nis not called in hugetlb_file_setup(). However, user_shm_unlock() is\ncalled in any case in shm_destroy() and in the following\natomic_dec_and_lock(\u0026up-\u003e__count) in free_uid() is executed and if\nup-\u003e__count gets zero, also cleanup_user_struct() is scheduled.\n\nNote that sched_destroy_user() is empty if CONFIG_USER_SCHED is not set.\nHowever, the ref counter up-\u003e__count gets unexpectedly non-positive and\nthe corresponding structs are freed even though there are live\nreferences to them, resulting in a kernel oops after a lots of\nshmget(SHM_HUGETLB)/shmctl(IPC_RMID) cycles and CONFIG_USER_SCHED set.\n\nHugh changed Stefan\u0027s suggested patch: can_do_hugetlb_shm() at the\ntime of shm_destroy() may give a different answer from at the time\nof hugetlb_file_setup().  And fixed newseg()\u0027s no_id error path,\nwhich has missed user_shm_unlock() ever since it came in 2.6.9.\n\nReported-by: Stefan Huber \u003cshuber2@gmail.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nTested-by: Stefan Huber \u003cshuber2@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46690f3718d95e9bb712b6f2b5c869f8494521de",
      "tree": "3720022762b6df7c635b6a07e5c779e9b01ead63",
      "parents": [
        "4142ac678a864972ce1dfad6d9cb22f075fee5de"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Fri Jun 26 11:24:05 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jun 29 08:56:46 2009 +1000"
      },
      "message": "integrity: ima mq_open imbalance msg fix\n\nThis patch fixes an imbalance message as reported by Sanchin Sant.\nAs we don\u0027t need to measure the message queue, just increment the\ncounters.\n\nReported-by: Sanchin Sant \u003csanchinp@in.ibm.com\u003e\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "232086b19964d0e13359d30d74b11ca31b0751cb",
      "tree": "8f9eabf07c47704c2585f70454190ff531ba4309",
      "parents": [
        "c277331d5fbaae5772ed19862feefa91f4e477d3"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Sat Jun 20 02:23:29 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 21 12:48:43 2009 -0700"
      },
      "message": "ipc: unbreak 32-bit shmctl/semctl/msgctl\n\n31a985f \"ipc: use __ARCH_WANT_IPC_PARSE_VERSION in ipc/util.h\" would\nchoose the implementation of ipc_parse_version() based on a symbol\ndefined in \u003casm/unistd.h\u003e.\n\nBut it failed to also include this header and thus broke\nIPC_64-passing 32-bit userspace because the flag wasn\u0027t masked out\nproperly anymore and the command not understood.\n\nInclude \u003clinux/unistd.h\u003e to give the architecture a chance to ask for\nthe no-no-op ipc_parse_version().\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "665c7741fb63c7ceeb515f1d1ed8b016efe65bf3",
      "tree": "2c7a06e02d444bb773808c497c680a5b2db7af23",
      "parents": [
        "b4188def441197d38f20e0935372780ed7c0e19d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:56 2009 -0700"
      },
      "message": "ipcns: move free_ipcs() proto\n\nFunction is really private to ipc/ and avoid struct kern_ipc_perm\nforward declaration.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4188def441197d38f20e0935372780ed7c0e19d",
      "tree": "483d47961a7c18a9d15f81cb8690f66feeb566bc",
      "parents": [
        "90af90d7d3a7411db64860c9d6e5798ff87cad08"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:56 2009 -0700"
      },
      "message": "ipcns: make free_ipc_ns() static\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "612ce478fac2729ad564ec3f5d3c551674b8e9c2",
      "tree": "a87745acbdac4d4b710006a003287f706a923487",
      "parents": [
        "64424289dd2e37b4800df1f7f2ef4fe550f58729"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "ipcns: extract create_ipc_ns()\n\nclone_ipc_ns() is misnamed, it doesn\u0027t clone anything and doesn\u0027t use\npassed parameter.  Rename it.\n\ncreate_ipc_ns() will be used by C/R to create fresh ipcns.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64424289dd2e37b4800df1f7f2ef4fe550f58729",
      "tree": "15e33fc3c1e46e423b964998785ba45927e1d83b",
      "parents": [
        "4c2a7e72d5937c6a112141c7ff3df0727b3cf3df"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "ipcns: remove useless get/put while CLONE_NEWIPC\n\ncopy_ipcs() doesn\u0027t actually copy anything. If new ipcns is created, it\u0027s\ncreated from scratch, in this case get/put on old ipcns isn\u0027t needed.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a985fbb18c1600955124a1efd2343efa867549",
      "tree": "e0ab5427da93de03871c0a304bd01e3821994100",
      "parents": [
        "371cbb387e33651b4c1326457116568ff01ac422"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jun 17 16:27:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:54 2009 -0700"
      },
      "message": "ipc: use __ARCH_WANT_IPC_PARSE_VERSION in ipc/util.h\n\nThe definition of ipc_parse_version depends on\n__ARCH_WANT_IPC_PARSE_VERSION, but the header file declares it\nconditionally based on the architecture.\n\nUse the macro consistently to make it easier to add new architectures.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3296ca27f50ecbd71db1d808c7a72d311027f919",
      "tree": "833eaa58b2013bda86d4bd95faf6efad7a2d5ca4",
      "parents": [
        "e893123c7378192c094747dadec326b7c000c190",
        "73fbad283cfbbcf02939bdbda31fc4a30e729cca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (44 commits)\n  nommu: Provide mmap_min_addr definition.\n  TOMOYO: Add description of lists and structures.\n  TOMOYO: Remove unused field.\n  integrity: ima audit dentry_open failure\n  TOMOYO: Remove unused parameter.\n  security: use mmap_min_addr indepedently of security models\n  TOMOYO: Simplify policy reader.\n  TOMOYO: Remove redundant markers.\n  SELinux: define audit permissions for audit tree netlink messages\n  TOMOYO: Remove unused mutex.\n  tomoyo: avoid get+put of task_struct\n  smack: Remove redundant initialization.\n  integrity: nfsd imbalance bug fix\n  rootplug: Remove redundant initialization.\n  smack: do not beyond ARRAY_SIZE of data\n  integrity: move ima_counts_get\n  integrity: path_check update\n  IMA: Add __init notation to ima functions\n  IMA: Minimal IMA policy and boot param for TCB IMA policy\n  selinux: remove obsolete read buffer limit from sel_read_bool\n  ...\n"
    },
    {
      "commit": "20f3f3ca499d2c211771ba552685398b65d83859",
      "tree": "41b460196a0860e11d12e33e3172463973cb0078",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "41c51c98f588edcdf6141cff1895df738e03ddd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:03 2009 -0700"
      },
      "message": "Merge branch \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: rcu_sched_grace_period(): kill the bogus flush_signals()\n  rculist: use list_entry_rcu in places where it\u0027s appropriate\n  rculist.h: introduce list_entry_rcu() and list_first_entry_rcu()\n  rcu: Update RCU tracing documentation for __rcu_pending\n  rcu: Add __rcu_pending tracing to hierarchical RCU\n  RCU: make treercu be default\n"
    },
    {
      "commit": "73fbad283cfbbcf02939bdbda31fc4a30e729cca",
      "tree": "7c89fe13e1b4a2c7f2d60f4ea6eaf69c14bccab7",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "35f2c2f6f6ae13ef23c4f68e6d3073753077ca43"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "586c7e6a280580fd94b662bf486f9bb31098d14b",
      "tree": "27547e0dc35c34431f9504ad51b70ccccc55c14f",
      "parents": [
        "13df635f080d411a152c92087a384135c1562fac"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 09 16:26:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 09 16:59:03 2009 -0700"
      },
      "message": "shm: fix unused warnings on nommu\n\nThe massive nommu update (8feae131) resulted in these warnings:\nipc/shm.c: In function `sys_shmdt\u0027:\nipc/shm.c:974: warning: unused variable `size\u0027\nipc/shm.c:972: warning: unused variable `next\u0027\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\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": "c9d9ac525a0285a5b5ad9c3f9aa8b7c1753e6121",
      "tree": "e7fcde1841bf0b1d77a5332656f9cf975509c7b8",
      "parents": [
        "b9fc745db833bbf74b4988493b8cd902a84c9415"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue May 19 13:25:58 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 09:45:33 2009 +1000"
      },
      "message": "integrity: move ima_counts_get\n\nBased on discussion on lkml (Andrew Morton and Eric Paris),\nmove ima_counts_get down a layer into shmem/hugetlb__file_setup().\nResolves drm shmem_file_setup() usage case as well.\n\nHD comment:\n  I still think you\u0027re doing this at the wrong level, but recognize\n  that you probably won\u0027t be persuaded until a few more users of\n  alloc_file() emerge, all wanting your ima_counts_get().\n\n  Resolving GEM\u0027s shmem_file_setup() is an improvement, so I\u0027ll say\n\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b9fc745db833bbf74b4988493b8cd902a84c9415",
      "tree": "45a15174efb3b1c3dcbe5f0dc503e790c4f6fd70",
      "parents": [
        "932995f0ce52525b32ff5127b522c2c164de3810"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue May 19 13:25:57 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 09:43:41 2009 +1000"
      },
      "message": "integrity: path_check update\n\n- Add support in ima_path_check() for integrity checking without\nincrementing the counts. (Required for nfsd.)\n- rename and export opencount_get to ima_counts_get\n- replace ima_shm_check calls with ima_counts_get\n- export ima_path_check\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "05725f7eb4b8acb147c5fc7b91397b1f6bcab00d",
      "tree": "1f22c6bec3429f7ec9ebb8acd25672249e39b380",
      "parents": [
        "72c6a9870f901045f2464c3dc6ee8914bfdc07aa"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Apr 14 20:17:16 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 15 12:05:25 2009 +0200"
      },
      "message": "rculist: use list_entry_rcu in places where it\u0027s appropriate\n\nUse previously introduced list_entry_rcu instead of an open-coded\nlist_entry + rcu_dereference combination.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: dipankar@in.ibm.com\nLKML-Reference: \u003c20090414181715.GA3634@psychotron.englab.brq.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f26ec5baa67524b00311b8ec4626efc0a95925e1",
      "tree": "9ab4040d918356204db0b0acc44648619c677699",
      "parents": [
        "17a5138d204014b00cb9c1d6e8ff311993041b5c"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Mon Apr 13 14:39:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:29 2009 -0700"
      },
      "message": "namespaces: move get_mq() inside #ifdef CONFIG_SYSCTL\n\n| ipc/mq_sysctl.c:26: warning: \u0027get_mq\u0027 defined but not used\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdc8e5f85f9abe2e7c78dcf39d81f9a97178788b",
      "tree": "a25a9d10f3686c4cb309d2477376ee585322ef43",
      "parents": [
        "7eafd7c74c3f2e67c27621b987b28397110d643f"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: mqueue namespace: adapt sysctl\n\nLargely inspired from ipc/ipc_sysctl.c.  This patch isolates the mqueue\nsysctl stuff in its own file.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7eafd7c74c3f2e67c27621b987b28397110d643f",
      "tree": "b4621aab78b6303f20386096c230b993044a4db7",
      "parents": [
        "614b84cf4e4a920d2af32b8f147ea1e3b8c27ea6"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: ipc namespaces: implement support for posix msqueues\n\nImplement multiple mounts of the mqueue file system, and link it to usage\nof CLONE_NEWIPC.\n\nEach ipc ns has a corresponding mqueuefs superblock.  When a user does\nclone(CLONE_NEWIPC) or unshare(CLONE_NEWIPC), the unshare will cause an\ninternal mount of a new mqueuefs sb linked to the new ipc ns.\n\nWhen a user does \u0027mount -t mqueue mqueue /dev/mqueue\u0027, he mounts the\nmqueuefs superblock.\n\nPosix message queues can be worked with both through the mq_* system calls\n(see mq_overview(7)), and through the VFS through the mqueue mount.  Any\nusage of mq_open() and friends will work with the acting task\u0027s ipc\nnamespace.  Any actions through the VFS will work with the mqueuefs in\nwhich the file was created.  So if a user doesn\u0027t remount mqueuefs after\nunshare(CLONE_NEWIPC), mq_open(\"/ab\") will not be reflected in \"ls\n/dev/mqueue\".\n\nIf task a mounts mqueue for ipc_ns:1, then clones task b with a new ipcns,\nipcns:2, and then task a is the last task in ipc_ns:1 to exit, then (1)\nipc_ns:1 will be freed, (2) it\u0027s superblock will live on until task b\numounts the corresponding mqueuefs, and vfs actions will continue to\nsucceed, but (3) sb-\u003es_fs_info will be NULL for the sb corresponding to\nthe deceased ipc_ns:1.\n\nTo make this happen, we must protect the ipc reference count when\n\na) a task exits and drops its ipcns-\u003ecount, since it might be dropping\n   it to 0 and freeing the ipcns\n\nb) a task accesses the ipcns through its mqueuefs interface, since it\n   bumps the ipcns refcount and might race with the last task in the ipcns\n   exiting.\n\nSo the kref is changed to an atomic_t so we can use\natomic_dec_and_lock(\u0026ns-\u003ecount,mq_lock), and every access to the ipcns\nthrough ns \u003d mqueuefs_sb-\u003es_fs_info is protected by the same lock.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "614b84cf4e4a920d2af32b8f147ea1e3b8c27ea6",
      "tree": "52478e38cd400042bd89f123c4101c95943ae492",
      "parents": [
        "909e6d94795654040ed416ac69858d5d2ce66dd3"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: mqueue ns: move mqueue_mnt into struct ipc_namespace\n\nMove mqueue vfsmount plus a few tunables into the ipc_namespace struct.\nThe CONFIG_IPC_NS boolean and the ipc_namespace struct will serve both the\nposix message queue namespaces and the SYSV ipc namespaces.\n\nThe sysctl code will be fixed separately in patch 3.  After just this\npatch, making a change to posix mqueue tunables always changes the values\nin the initial ipc namespace.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\n"
    },
    {
      "commit": "11dea1900931ac73184b2f5163a13d24a4e572ea",
      "tree": "409e081e9afa0cc8f05ae0051942de99a79cd9f0",
      "parents": [
        "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Apr 02 16:58:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "proc_sysctl: use CONFIG_PROC_SYSCTL around ipc and utsname proc_handlers\n\nAs pointed out by Cedric Le Goater (in response to Alexey\u0027s original\ncomment wrt mqns), ipc_sysctl.c and utsname_sysctl.c are using\nCONFIG_PROC_FS, not CONFIG_PROC_SYSCTL, to determine whether to define\nthe proc_handlers.  Change that.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4",
      "tree": "a9dee6eac97d75c688a84d5fe268b2e5a0b73e23",
      "parents": [
        "40e8a10de2c9f87e892dcd5a6f9d1b208329ffea"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Thu Apr 02 16:58:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "ipc: make shm_get_stat() more robust\n\nshm_get_stat() assumes idr_find(\u0026shm_ids(ns).ipcs_idr) returns \"struct\nshmid_kernel *\"; all other callers assume that it returns \"struct\nkern_ipc_perm *\".  This works because \"struct kern_ipc_perm\" is currently\nthe first member of \"struct shmid_kernel\", but it would be better to use\ncontainer_of() to prevent future breakage.\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nCc: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48",
      "tree": "ab952affafe18e604f6aaf6b13315b9435588e60",
      "parents": [
        "f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:08:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New helper - current_umask()\n\ncurrent-\u003efs-\u003eumask is what most of fs_struct users are doing.\nPut that into a helper function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8e9d2089723d08d51e66c5eea49253d76e27941e",
      "tree": "cf15609d5eeb0c1f3a39231d8ce793d3c8ad0ed0",
      "parents": [
        "ba1eb95cf3cc666769afe42eaa15a3a34ae82f94",
        "60aa49243d09afc873f082567d2e3c16634ced84"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:14:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:14:02 2009 -0700"
      },
      "message": "Merge branch \u0027bkl-removal\u0027 of git://git.lwn.net/linux-2.6\n\n* \u0027bkl-removal\u0027 of git://git.lwn.net/linux-2.6:\n  Rationalize fasync return values\n  Move FASYNC bit handling to f_op-\u003efasync()\n  Use f_lock to protect f_flags\n  Rename struct file-\u003ef_ep_lock\n"
    },
    {
      "commit": "703a3cd72817e99201cef84a8a7aecc60b2b3581",
      "tree": "3e943755178ff410694722bb031f523136fbc432",
      "parents": [
        "df7f54c012b92ec93d56b68547351dcdf8a163d3",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "db1dd4d376134eba0e08af523b61cc566a4ea1cd",
      "tree": "8882c673abbaa5713511b7046493fa862b9140d1",
      "parents": [
        "684999149002dd046269666a390458e0acb38280"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Feb 06 15:25:24 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:32:27 2009 -0600"
      },
      "message": "Use f_lock to protect f_flags\n\nTraditionally, changes to struct file-\u003ef_flags have been done under BKL\nprotection, or with no protection at all.  This patch causes all f_flags\nchanges after file open/creation time to be done under protection of\nf_lock.  This allows the removal of some BKL usage and fixes a number of\nlongstanding (if microscopic) races.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb5629b10d64a8006622ce3a52bc887d91057d69",
      "tree": "7c06d8f30783115e3384721046258ce615b129c5",
      "parents": [
        "8920d5ad6ba74ae8ab020e90cc4d976980e68701",
        "f01d1d546abb2f4028b5299092f529eefb01253a"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/namei.c\n\nManually merged per:\n\ndiff --cc fs/namei.c\nindex 734f2b5,bbc15c2..0000000\n--- a/fs/namei.c\n+++ b/fs/namei.c\n@@@ -860,9 -848,8 +849,10 @@@ static int __link_path_walk(const char\n  \t\tnd-\u003eflags |\u003d LOOKUP_CONTINUE;\n  \t\terr \u003d exec_permission_lite(inode);\n  \t\tif (err \u003d\u003d -EAGAIN)\n- \t\t\terr \u003d vfs_permission(nd, MAY_EXEC);\n+ \t\t\terr \u003d inode_permission(nd-\u003epath.dentry-\u003ed_inode,\n+ \t\t\t\t\t       MAY_EXEC);\n +\t\tif (!err)\n +\t\t\terr \u003d ima_path_check(\u0026nd-\u003epath, MAY_EXEC);\n   \t\tif (err)\n  \t\t\tbreak;\n\n@@@ -1525,14 -1506,9 +1509,14 @@@ int may_open(struct path *path, int acc\n  \t\tflag \u0026\u003d ~O_TRUNC;\n  \t}\n\n- \terror \u003d vfs_permission(nd, acc_mode);\n+ \terror \u003d inode_permission(inode, acc_mode);\n  \tif (error)\n  \t\treturn error;\n +\n- \terror \u003d ima_path_check(\u0026nd-\u003epath,\n++\terror \u003d ima_path_check(path,\n +\t\t\t       acc_mode \u0026 (MAY_READ | MAY_WRITE | MAY_EXEC));\n +\tif (error)\n +\t\treturn error;\n  \t/*\n  \t * An append-only file must be opened in append mode for writing.\n  \t */\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1df9f0a73178718969ae47d813b8e7aab2cf073c",
      "tree": "6bd3d8838858f0e93acd8f7969b7d0e5ce2bfb08",
      "parents": [
        "f4bd857bc8ed997c25ec06b56ef8064aafa6d4f3"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:07:02 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:33 2009 +1100"
      },
      "message": "Integrity: IMA file free imbalance\n\nThe number of calls to ima_path_check()/ima_file_free()\nshould be balanced.  An extra call to fput(), indicates\nthe file could have been accessed without first being\nmeasured.\n\nAlthough f_count is incremented/decremented in places other\nthan fget/fput, like fget_light/fput_light and get_file, the\ncurrent task must already hold a file refcnt.  The call to\n__fput() is delayed until the refcnt becomes 0, resulting\nin ima_file_free() flagging any changes.\n\n- add hook to increment opencount for IPC shared memory(SYSV),\n  shmat files, and /dev/zero\n- moved NULL iint test in opencount_get()\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a68e61e8ff2d46327a37b69056998b47745db6fa",
      "tree": "2445097933785b26d91577e6f4b41329e8bcd639",
      "parents": [
        "1f5e31d7e55ac7fbd4ec5e5b20c8868b0e4564c9"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Wed Feb 04 15:12:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM\n\nshm_get_stat() assumes that the inode is a \"struct shmem_inode_info\",\nwhich is incorrect for !CONFIG_SHMEM (see fs/ramfs/inode.c:\nramfs_get_inode() vs.  mm/shmem.c: shmem_get_inode()).\n\nThis bad assumption can cause shmctl(SHM_INFO) to lockup when\nshm_get_stat() tries to spin_lock(\u0026info-\u003elock).  Users of !CONFIG_SHMEM\nmay encounter this lockup simply by invoking the \u0027ipcs\u0027 command.\n\nReported by Jiri Olsa back in February 2008:\nhttp://lkml.org/lkml/2008/2/29/74\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nReported-by: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.everything]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc8744adc870a8d4366908221508bb113d8b72ee",
      "tree": "755f4c4a1cc30567fde4e60c9cc5e6a889c360b0",
      "parents": [
        "33bfad54b58cf05cfe6678c3ec9235d4bc8db4c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 31 15:08:56 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 31 15:08:56 2009 -0800"
      },
      "message": "Stop playing silly games with the VM_ACCOUNT flag\n\nThe mmap_region() code would temporarily set the VM_ACCOUNT flag for\nanonymous shared mappings just to inform shmem_zero_setup() that it\nshould enable accounting for the resulting shm object.  It would then\nclear the flag after calling -\u003emmap (for the /dev/zero case) or doing\nshmem_zero_setup() (for the MAP_ANON case).\n\nThis just resulted in vma merge issues, but also made for just\nunnecessary confusion.  Use the already-existing VM_NORESERVE flag for\nthis instead, and let shmem_{zero|file}_setup() just figure it out from\nthat.\n\nThis also happens to make it obvious that the new DRI2 GEM layer uses a\nnon-reserving backing store for its object allocation - which is quite\npossibly not intentional.  But since I didn\u0027t want to change semantics\nin this patch, I left it alone, and just updated the caller to use the\nnew flag semantics.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4ea37c26a691ad0b7e86aa5884aab27830e95c9",
      "tree": "4a3bd25e61cd3782f535ad2140a01bf3835dca4f",
      "parents": [
        "d5460c9974a321a194aded4a8c4daaac68ea8171"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:28 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:29 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 26\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "d5460c9974a321a194aded4a8c4daaac68ea8171",
      "tree": "26c70e33e9c8ca61a8d2d88422a9672200501754",
      "parents": [
        "e48fbb699f82ef1e80bd7126046394d2dc9ca7e6"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:27 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:28 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 25\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "e48fbb699f82ef1e80bd7126046394d2dc9ca7e6",
      "tree": "d361155949c3c31724946a6d619ece7a093e30a1",
      "parents": [
        "5a8a82b1d306a325d899b67715618413657efda4"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:26 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:28 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 24\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "6673e0c3fbeaed2cd08e2fd4a4aa97382d6fedb0",
      "tree": "eb33a94f5e4b0e035001f7c96ef44cade0fbb489",
      "parents": [
        "ed6bb6194350dc6ae97a65dbf2d621a3dbe6bbe9"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:02 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:18 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrapper special cases\n\nSystem calls with an unsigned long long argument can\u0027t be converted with\nthe standard wrappers since that would include a cast to long, which in\nturn means that we would lose the upper 32 bit on 32 bit architectures.\nAlso semctl can\u0027t use the standard wrapper since it has a \u0027union\u0027\nparameter.\n\nSo we handle them as special case and add some extra wrappers instead.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "2ed7c03ec17779afb4fcfa3b8c61df61bd4879ba",
      "tree": "4e0fefd574bab5470a02edf439727f472a9663c6",
      "parents": [
        "4c696ba7982501d43dea11dbbaabd2aa8a19cc42"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:13:54 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:14 2009 +0100"
      },
      "message": "[CVE-2009-0029] Convert all system calls to return a long\n\nConvert all system calls to return a long. This should be a NOP since all\nconverted types should have the same size anyway.\nWith the exception of sys_exit_group which returned void. But that doesn\u0027t\nmatter since the system call doesn\u0027t return.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "c40f6f8bbc4cbd2902671aacd587400ddca62627",
      "tree": "a991e5521e10943f4457fb7f494e00aec75cc7df",
      "parents": [
        "1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5",
        "cb6ff208076b5f434db1b8c983429269d719cef5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu:\n  NOMMU: Support XIP on initramfs\n  NOMMU: Teach kobjsize() about VMA regions.\n  FLAT: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  FDPIC: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  NOMMU: Improve procfs output using per-MM VMAs\n  NOMMU: Make mmap allocation page trimming behaviour configurable.\n  NOMMU: Make VMAs per MM as for MMU-mode linux\n  NOMMU: Delete askedalloc and realalloc variables\n  NOMMU: Rename ARM\u0027s struct vm_region\n  NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()\n"
    },
    {
      "commit": "a6684999f7c6bddd75cf9755ad7ff44435f72fff",
      "tree": "4275daa54c1868ab289e361fec0ced01c891ec33",
      "parents": [
        "61bce0f1371cfff497fe85594fd39d1a0b15ebe1"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Jan 07 18:08:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:12 2009 -0800"
      },
      "message": "mqueue: fix si_pid value in mqueue do_notify()\n\nIf a process registers for asynchronous notification on a POSIX message\nqueue, it gets a signal and a siginfo_t structure when a message arrives\non the message queue.  The si_pid in the siginfo_t structure is set to the\nPID of the process that sent the message to the message queue.\n\nThe principle is the following:\n. when mq_notify(SIGEV_SIGNAL) is called, the caller registers for\n  notification when a msg arrives. The associated pid structure is stroed into\n  inode_info-\u003enotify_owner. Let\u0027s call this process P1.\n. when mq_send() is called by say P2, P2 sends a signal to P1 to notify\n  him about msg arrival.\n\nThe way .si_pid is set today is not correct, since it doesn\u0027t take into account\nthe fact that the process that is sending the message might not be in the\nsame namespace as the notified one.\n\nThis patch proposes to set si_pid to the sender\u0027s pid into the notify_owner\nnamespace.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Bastian Blank \u003cbastian@waldi.eu.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8feae13110d60cc6287afabc2887366b0eb226c2",
      "tree": "b3188986faab70e753e00ea8670a11ba8ec844c0",
      "parents": [
        "41836382ebb415d68d3ebc4525e78e871fe58baf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make VMAs per MM as for MMU-mode linux\n\nMake VMAs per mm_struct as for MMU-mode linux.  This solves two problems:\n\n (1) In SYSV SHM where nattch for a segment does not reflect the number of\n     shmat\u0027s (and forks) done.\n\n (2) In mmap() where the VMA\u0027s vm_mm is set to point to the parent mm by an\n     exec\u0027ing process when VM_EXECUTABLE is specified, regardless of the fact\n     that a VMA might be shared and already have its vm_mm assigned to another\n     process or a dead process.\n\nA new struct (vm_region) is introduced to track a mapped region and to remember\nthe circumstances under which it may be shared and the vm_list_struct structure\nis discarded as it\u0027s no longer required.\n\nThis patch makes the following additional changes:\n\n (1) Regions are now allocated with alloc_pages() rather than kmalloc() and\n     with no recourse to __GFP_COMP, so the pages are not composite.  Instead,\n     each page has a reference on it held by the region.  Anything else that is\n     interested in such a page will have to get a reference on it to retain it.\n     When the pages are released due to unmapping, each page is passed to\n     put_page() and will be freed when the page usage count reaches zero.\n\n (2) Excess pages are trimmed after an allocation as the allocation must be\n     made as a power-of-2 quantity of pages.\n\n (3) VMAs are added to the parent MM\u0027s R/B tree and mmap lists.  As an MM may\n     end up with overlapping VMAs within the tree, the VMA struct address is\n     appended to the sort key.\n\n (4) Non-anonymous VMAs are now added to the backing inode\u0027s prio list.\n\n (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of\n     the backing region.  The VMA and region structs will be split if\n     necessary.\n\n (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory\n     segment instead of all the attachments at that addresss.  Multiple\n     shmat()\u0027s return the same address under NOMMU-mode instead of different\n     virtual addresses as under MMU-mode.\n\n (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.\n\n (8) /proc/maps is now the global list of mapped regions, and may list bits\n     that aren\u0027t actually mapped anywhere.\n\n (9) /proc/meminfo gains a line (tagged \"MmapCopy\") that indicates the amount\n     of RAM currently allocated by mmap to hold mappable regions that can\u0027t be\n     mapped directly.  These are copies of the backing device or file if not\n     anonymous.\n\nThese changes make NOMMU mode more similar to MMU mode.  The downside is that\nNOMMU mode requires some extra memory to track things over NOMMU without this\npatch (VMAs are no longer shared, and there are now region structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "4c2c3b4aaf3c10a636490438e9648a314ce414f9",
      "tree": "2e9b852fb178d8cb2982829d5a01711575d6d3a5",
      "parents": [
        "e953ac2195659940d0d042f7ac962700a6a0f0e3"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jan 06 14:42:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:29 2009 -0800"
      },
      "message": "ipc/ipc_sysctl.c: move the definition of ipc_auto_callback()\n\nproc_ipcauto_dointvec_minmax() is the only user of ipc_auto_callback(),\nsince the former function is protected by CONFIG_PROC_FS, so should be the\nlatter one.\n\nJust move its definition down.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nCc: Eric Biederman \u003cebiederm@xmision.com\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e953ac2195659940d0d042f7ac962700a6a0f0e3",
      "tree": "68eba3fff785161166b144b1bcf57858976cc9a4",
      "parents": [
        "e8148f7588064e45080bf1120883380a2efe5c9b"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 06 14:42:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:29 2009 -0800"
      },
      "message": "ipc: do not goto to the next line\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nReviewed-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8148f7588064e45080bf1120883380a2efe5c9b",
      "tree": "3696d738d8e118632c456d77f4a0a4afdcfc98e5",
      "parents": [
        "8cd3ac3aca3f2afe8570708066d64d893da468e8"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "wangcong@zeuux.org",
        "time": "Tue Jan 06 14:42:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:29 2009 -0800"
      },
      "message": "ipc: clean up ipc/shm.c\n\nUse the macro shm_ids().\n\nRemove useless check for a userspace pointer, because copy_to_user()\nwill check it.\n\nSome style cleanups.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@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": "520c85346666d4d9a6fcaaa8450542302dc28b91",
      "tree": "9c9cc9e2493b606104dd8602302ae28258ebeac0",
      "parents": [
        "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
        "4ae8978cf92a96257cd8998a49e781be83571d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  inotify: fix type errors in interfaces\n  fix breakage in reiserfs_new_inode()\n  fix the treatment of jfs special inodes\n  vfs: remove duplicate code in get_fs_type()\n  add a vfs_fsync helper\n  sys_execve and sys_uselib do not call into fsnotify\n  zero i_uid/i_gid on inode allocation\n  inode-\u003ei_op is never NULL\n  ntfs: don\u0027t NULL i_op\n  isofs check for NULL -\u003ei_op in root directory is dead code\n  affs: do not zero -\u003ei_op\n  kill suid bit only for regular files\n  vfs: lseek(fd, 0, SEEK_CUR) race condition\n"
    }
  ],
  "next": "046c68842bce6b77509cf56e94a561029124b0ce"
}
