)]}'
{
  "log": [
    {
      "commit": "a0db701a6bf767320e4471bd55e70702d230f6fb",
      "tree": "dee103b4f56be01e908ee39edada7c26450dcc8e",
      "parents": [
        "bec419404afe8b0d60000118ca90ada4c69a3a6d"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Mar 04 11:23:50 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 04 11:28:36 2008 +0100"
      },
      "message": "block/genhd.c: proper externs\n\nThis patch adds proper externs for two structs in include/linux/genhd.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "13d77c37cab2bb906022309e1e7182c327e49916",
      "tree": "e63f3a56dc443f3a2807b85102464d04934d06db",
      "parents": [
        "d6643d12cb0885d06a1491b16c1476abcbd53d40"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Feb 20 16:53:29 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 25 16:34:18 2008 +0100"
      },
      "message": "latencytop: change /proc task_struct access method\n\nChange getting task_struct by get_proc_task() at read or write time,\nand returns -ESRCH if get_proc_task() returns NULL.\nThis is same behavior as other /proc files.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6643d12cb0885d06a1491b16c1476abcbd53d40",
      "tree": "f342c01a278486e47a973cc84ffac72c43b57c64",
      "parents": [
        "ae0027869db7d28563cd783865fab04ffd18419c"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Thu Feb 14 10:27:00 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 25 16:34:17 2008 +0100"
      },
      "message": "latencytop: fix memory leak on latency proc file\n\nAt lstats_open(), calling get_proc_task() gets task struct, but it never put.\nput_task_struct() should be called when releasing.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae0027869db7d28563cd783865fab04ffd18419c",
      "tree": "9d57da1dd823e9413fd539a4a60e09df6fe630f8",
      "parents": [
        "2d07b255c7b8a9723010e5c74778e058dc05162e"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Thu Feb 14 10:26:24 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 25 16:34:17 2008 +0100"
      },
      "message": "latencytop: fix kernel panic while reading latency proc file\n\nReading /proc/\u003cpid\u003e/latency or /proc/\u003cpid\u003e/task/\u003ctid\u003e/latency could cause\nNULL pointer dereference.\n\nIn lstats_open(), get_proc_task() can return NULL, in which case the kernel\nwill oops at lstats_show_proc() because m-\u003eprivate is NULL.\n\nWhen get_proc_task() returns NULL, the kernel should return -ENOENT.\n\nThis can be reproduced by the following script.\nwhile :\ndo\n        date\n        bash -c \u0027ls \u003e ls.$$\u0027 \u0026\n        pid\u003d$!\n        cat /proc/$pid/latency \u0026\n        cat /proc/$pid/latency \u0026\n        cat /proc/$pid/latency \u0026\n        cat /proc/$pid/latency\ndone\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8808117ca571fd63e188a2306baae86cca9fce7a",
      "tree": "2cccec386bb732f0a14378dac298846f40fd691d",
      "parents": [
        "45254b4fb2aef51c94a7397df1e481c4137b4b97"
      ],
      "author": {
        "name": "Eugene Teo",
        "email": "eugeneteo@kernel.sg",
        "time": "Sat Feb 23 15:23:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:12:15 2008 -0800"
      },
      "message": "proc: add RLIMIT_RTTIME to /proc/\u003cpid\u003e/limits\n\nRLIMIT_RTTIME was introduced to allow the user to set a runtime timeout on\nreal-time tasks: http://lkml.org/lkml/2007/12/18/218. This patch updates\n/proc/\u003cpid\u003e/limits with the new rlimit.\n\nSigned-off-by: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "745329c4a2a25efbf5ba6cd7842e07840e4e9775",
      "tree": "832467aaac5c2a7905cd0d08a47026e5158fb35d",
      "parents": [
        "8936b6dba234c994dc4c168818376197abc2faac"
      ],
      "author": {
        "name": "Hans Rosenfeld",
        "email": "hans.rosenfeld@amd.com",
        "time": "Sat Feb 23 15:23:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:12:13 2008 -0800"
      },
      "message": "/proc/pid/pagemap: fix PM_SPECIAL macro\n\nThere seems to be a bug in the PM_SPECIAL macro for /proc/pid/pagemap.  I\nthink masking out those other bits makes more sense then setting all those\nmask bits.\n\nSigned-off-by: Hans Rosenfeld \u003cHans.Rosenfeld@amd.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "cf28b4863f9ee8f122e8ff3ac0d403e07ba9c6d9",
      "tree": "65c91f6911b34c32e517938289621ce0e7baeaf3",
      "parents": [
        "c32c2f63a9d6c953aaf168c0b2551da9734f76d2"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:09 2008 -0800"
      },
      "message": "d_path: Make d_path() use a struct path\n\nd_path() is used on a \u003cdentry,vfsmount\u003e pair.  Lets use a struct path to\nreflect this.\n\n[akpm@linux-foundation.org: fix build in mm/memory.c]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@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": "c32c2f63a9d6c953aaf168c0b2551da9734f76d2",
      "tree": "14eca3083f3de4a87a95359ab66109c10add1ae7",
      "parents": [
        "e83aece3afad4d56cc01abe069d3519e851cd2de"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "d_path: Make seq_path() use a struct path argument\n\nseq_path() is always called with a dentry and a vfsmount from a struct path.\nMake seq_path() take it directly as an argument.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dcd25f37cfe2943beca93f41f50994108248a60",
      "tree": "38fbe59fc60f6dd2bc88dcb0cbe5c265f5892e8a",
      "parents": [
        "44707fdf5938ad269ea5d6c5744d82f6a7328746"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "d_path: Make proc_get_link() use a struct path argument\n\nproc_get_link() is always called with a dentry and a vfsmount from a struct\npath.  Make proc_get_link() take it directly as an argument.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ac08c39a16f72c2d3e845cb6849a1392fa03e80",
      "tree": "d7603571e9ab3ea4b57b7901211320e48d0c5ed8",
      "parents": [
        "5dd784d04924be5d8bc066aded0ec3274b20e612"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Use struct path in fs_struct\n\n* Use struct path in fs_struct.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@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": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: 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": "b55fcb22d445a7460cbbc138ceae096d5617715a",
      "tree": "0b4ef31edaec10ad8b87a36b66a853e5d0020675",
      "parents": [
        "0cf975e16927fd70f34cee20d3856246c13bb4c8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 15:00:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 15:33:32 2008 -0800"
      },
      "message": "revert \"proc: fix the threaded proc self\"\n\nRevert commit c6caeb7c4544608e8ae62731334661fc396c7f85 (\"proc: fix the\nthreaded /proc/self\"), since Eric says \"The patch really is wrong.\nThere is at least one corner case in procps that cares.\"\n\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Guillaume Chazarain\" \u003cguichaz@yahoo.fr\u003e\nCc: \"Pavel Emelyanov\" \u003cxemul@openvz.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@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": "03a44825be987d720df854f63b2f7bd30e46bdde",
      "tree": "6ac01a425ff2201db972fd3b836efc9b0ab6eaec",
      "parents": [
        "ec26e11740cdff8c3c8330ea235478704ffb4a71"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Fri Feb 08 04:21:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:38 2008 -0800"
      },
      "message": "procfs: constify function pointer tables\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1eb114112381eb66ebacdace1b6e70d30d603f9c",
      "tree": "3b97926b1a90aa996f99a23281809c3d960fd3d8",
      "parents": [
        "7fa3031500ec9b0a7460c8c23751799006ffee74"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "aout: remove unnecessary inclusions of {asm, linux}/a.out.h\n\nRemove now unnecessary inclusions of {asm,linux}/a.out.h.\n\n[akpm@linux-foundation.org: fix alpha build]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3a4e3666325a9709cc8ea2e88151394e8f20fc",
      "tree": "c3e75289de8c824f5e2bb2e97d4b6853d48da3f3",
      "parents": [
        "c6caeb7c4544608e8ae62731334661fc396c7f85"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: fix -\u003eopen\u0027less usage due to -\u003eproc_fops flip\n\nTypical PDE creation code looks like:\n\n\tpde \u003d create_proc_entry(\"foo\", 0, NULL);\n\tif (pde)\n\t\tpde-\u003eproc_fops \u003d \u0026foo_proc_fops;\n\nNotice that PDE is first created, only then -\u003eproc_fops is set up to\nfinal value. This is a problem because right after creation\na) PDE is fully visible in /proc , and\nb) -\u003eproc_fops are proc_file_operations which do not have -\u003eopen callback. So, it\u0027s\n   possible to -\u003eread without -\u003eopen (see one class of oopses below).\n\nThe fix is new API called proc_create() which makes sure -\u003eproc_fops are\nset up before gluing PDE to main tree. Typical new code looks like:\n\n\tpde \u003d proc_create(\"foo\", 0, NULL, \u0026foo_proc_fops);\n\tif (!pde)\n\t\treturn -ENOMEM;\n\nFix most networking users for a start.\n\nIn the long run, create_proc_entry() for regular files will go.\n\nBUG: unable to handle kernel NULL pointer dereference at virtual address 00000024\nprinting eip: c1188c1b *pdpt \u003d 000000002929e001 *pde \u003d 0000000000000000\nOops: 0002 [#1] PREEMPT SMP DEBUG_PAGEALLOC\nlast sysfs file: /sys/block/sda/sda1/dev\nModules linked in: foo af_packet ipv6 cpufreq_ondemand loop serio_raw psmouse k8temp hwmon sr_mod cdrom\n\nPid: 24679, comm: cat Not tainted (2.6.24-rc3-mm1 #2)\nEIP: 0060:[\u003cc1188c1b\u003e] EFLAGS: 00210002 CPU: 0\nEIP is at mutex_lock_nested+0x75/0x25d\nEAX: 000006fe EBX: fffffffb ECX: 00001000 EDX: e9340570\nESI: 00000020 EDI: 00200246 EBP: e9340570 ESP: e8ea1ef8\n DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess cat (pid: 24679, ti\u003dE8EA1000 task\u003dE9340570 task.ti\u003dE8EA1000)\nStack: 00000000 c106f7ce e8ee05b4 00000000 00000001 458003d0 f6fb6f20 fffffffb\n       00000000 c106f7aa 00001000 c106f7ce 08ae9000 f6db53f0 00000020 00200246\n       00000000 00000002 00000000 00200246 00200246 e8ee05a0 fffffffb e8ee0550\nCall Trace:\n [\u003cc106f7ce\u003e] seq_read+0x24/0x28a\n [\u003cc106f7aa\u003e] seq_read+0x0/0x28a\n [\u003cc106f7ce\u003e] seq_read+0x24/0x28a\n [\u003cc106f7aa\u003e] seq_read+0x0/0x28a\n [\u003cc10818b8\u003e] proc_reg_read+0x60/0x73\n [\u003cc1081858\u003e] proc_reg_read+0x0/0x73\n [\u003cc105a34f\u003e] vfs_read+0x6c/0x8b\n [\u003cc105a6f3\u003e] sys_read+0x3c/0x63\n [\u003cc10025f2\u003e] sysenter_past_esp+0x5f/0xa5\n [\u003cc10697a7\u003e] destroy_inode+0x24/0x33\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nINFO: lockdep is turned off.\nCode: 75 21 68 e1 1a 19 c1 68 87 00 00 00 68 b8 e8 1f c1 68 25 73 1f c1 e8 84 06 e9 ff e8 52 b8 e7 ff 83 c4 10 9c 5f fa e8 28 89 ea ff \u003cf0\u003e fe 4e 04 79 0a f3 90 80 7e 04 00 7e f8 eb f0 39 76 34 74 33\nEIP: [\u003cc1188c1b\u003e] mutex_lock_nested+0x75/0x25d SS:ESP 0068:e8ea1ef8\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6caeb7c4544608e8ae62731334661fc396c7f85",
      "tree": "3afabe64dedd7bf7d0f88f7612e5f468c8d55c1d",
      "parents": [
        "488e5bc4560d0b510c1ddc451c51a6cc14e3a930"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: fix the threaded /proc/self\n\nLong ago when the CLONE_THREAD support first went it someone thought it\nwould be wise to point /proc/self at /proc/\u003ctgid\u003e instead of /proc/\u003cpid\u003e.\n\nGiven that /proc/\u003ctgid\u003e can return information about a very different task\n(if enough things have been unshared) then our current process /proc/\u003ctgid\u003e\nseems blatantly wrong.  So far I have yet to think up an example where the\ncurrent behavior would be advantageous, and I can see several places where\nit is seriously non-intuitive.\n\nWe may be stuck with the current broken behavior for backwards\ncompatibility reasons but lets try fixing our ancient bug for the 2.6.25\ntime frame and see if anyone screams.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Guillaume Chazarain\" \u003cguichaz@yahoo.fr\u003e\nCc: \"Pavel Emelyanov\" \u003cxemul@openvz.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@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": "488e5bc4560d0b510c1ddc451c51a6cc14e3a930",
      "tree": "0b0df343406ff47578280e01388fc997064c8aa9",
      "parents": [
        "df5f8314ca30d6a76735748e5ba4ca9809c0f434"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: proper pidns handling for /proc/self\n\nCurrently if you access a /proc that is not mounted with your processes\ncurrent pid namespace /proc/self will point at a completely random task.\n\nThis patch fixes /proc/self to point to the current process if it is\navailable in the particular mount of /proc or to return -ENOENT if the\ncurrent process is not visible.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df5f8314ca30d6a76735748e5ba4ca9809c0f434",
      "tree": "e0a6157b1666a320e69586a81c77a3fe83b36a2a",
      "parents": [
        "a56d3fc74c0178c5f41c48315604d62cff4e746d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: seqfile convert proc_pid_status to properly handle pid namespaces\n\nCurrently we possibly lookup the pid in the wrong pid namespace.  So\nseq_file convert proc_pid_status which ensures the proper pid namespaces is\npassed in.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: s390 build fix]\n[akpm@linux-foundation.org: fix task_name() output]\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a56d3fc74c0178c5f41c48315604d62cff4e746d",
      "tree": "a6049be18c706090b8c65dc4f6ff9398f880199d",
      "parents": [
        "ee992744ea53db0a90c986fd0a70fbbf91e7f8bd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "seqfile convert proc_pid_statm\n\nThis conversion is just for code cleanliness, uniformity, and general safety.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "ee992744ea53db0a90c986fd0a70fbbf91e7f8bd",
      "tree": "2d15727e92c407bb22c4842923cbfb2dfda82306",
      "parents": [
        "be614086a4aff163d5aa0dc160638d1193b59cde"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: rewrite do_task_stat to correctly handle pid namespaces.\n\nCurrently (as pointed out by Oleg) do_task_stat has a race when calling\ntask_pid_nr_ns with the task exiting.  In addition do_task_stat is not\ncurrently displaying information in the context of the pid namespace that\nmounted the /proc filesystem.  So \"cut -d\u0027 \u0027 -f 1 /proc/\u003cpid\u003e/stat\" may not\nequal \u003cpid\u003e.\n\nThis patch fixes the problem by converting to a single_open seq_file show\nmethod.  Getting the pid namespace from the filesystem superblock instead of\ncurrent, and simply using the the struct pid from the inode instead of\nattempting to get that same pid from the task.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "be614086a4aff163d5aa0dc160638d1193b59cde",
      "tree": "f60781ec8485fa7c1a5324a9767ec762e38b7447",
      "parents": [
        "94413d8807a3c511a3675be4ce27a4d16d6408ee"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: implement proc_single_file_operations\n\nCurrently many /proc/pid files use a crufty precursor to the current seq_file\napi, and they don\u0027t have direct access to the pid_namespace or the pid of for\nwhich they are displaying data.\n\nSo implement proc_single_file_operations to make the seq_file routines easy to\nuse, and to give access to the full state of the pid of we are displaying data\nfor.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "94413d8807a3c511a3675be4ce27a4d16d6408ee",
      "tree": "d20800024bdfe15d4f6ae1e7cc63a537127afab4",
      "parents": [
        "fd2cbe48883a01f710c2a639877e3b3e4eba6e59"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Fri Feb 08 04:18:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: detect duplicate names on registration\n\nPrint a warning if PDE is registered with a name which already exists in\ntarget directory.\n\nBug report and a simple fix can be found here:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8798\n\n[\\n fixlet and no undescriptive variable usage --adobriyan]\n[akpm@linux-foundation.org: make printk comprehensible]\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd2cbe48883a01f710c2a639877e3b3e4eba6e59",
      "tree": "d358e9de25cb8abf06b0f6fb334d6121da19ae07",
      "parents": [
        "76df0c25d0c34eba9fbb8a44106ed096553ba0e8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: remove useless check on symlink removal\n\nproc symlinks always have valid -\u003edata containing destination of symlink.  No\nneed to check it on removal -- proc_symlink() already done it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76df0c25d0c34eba9fbb8a44106ed096553ba0e8",
      "tree": "a68241a860699f952a1cfcf22e50ddbc19bba7c9",
      "parents": [
        "4237e0d3de38da640d7c977d68f5f7f1d207a631"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: simplify function prototypes\n\nMove code around so as to reduce the number of forward-declarations.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4237e0d3de38da640d7c977d68f5f7f1d207a631",
      "tree": "0bf02984aef945c5d97a5929b82e7ecd6b7f39ed",
      "parents": [
        "5b3fe63b19e00f3b2a14a09c979e84163029e390"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: less LOCK operations during lookup\n\nPseudo-code for lookup effectively is:\n\n\tLOCK kernel\n\tLOCK proc_subdir_lock\n\t\tfind PDE\n\t\tUNLOCK proc_subdir_lock\n\n\t\tget inode\n\n\t\tLOCK proc_subdir_lock\n\t\tgoto unlock\n\tUNLOCK proc_subdir_lock\n\tUNLOCK kernel\n\nWe can get rid of LOCK/UNLOCK pair after getting inode simply by jumping\nto unlock_kernel() directly.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b3fe63b19e00f3b2a14a09c979e84163029e390",
      "tree": "c37ded3ef5db617e01db1dc9efc29e0bb7095c31",
      "parents": [
        "cbdc73873229754ab3e673ea8c82eaf9ae3c646f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: remove MODULE_LICENSE\n\nproc is not modular, so MODULE_LICENSE just expands to empty space.  proc\nwithout doubts remains GPLed.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1d4aebbfa91c55a6b0c629a9ccf6369be0c6e95",
      "tree": "2478c7be46b86b30c86666f72a8816c910c7a7d4",
      "parents": [
        "a90a088021f8f1e9a9cd83f06ac90e1f3aada4d4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:28 2008 -0800"
      },
      "message": "iget: stop PROCFS from using iget() and read_inode()\n\nStop the PROCFS filesystem from using iget() and read_inode().  Merge\nprocfs_read_inode() into procfs_get_inode(), and have that call iget_locked()\ninstead of iget().\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07a154b2bb9b528a39ddc777399482c1fa27fdb8",
      "tree": "64355093ab4f470e67a301fb53e7d078ad4000f9",
      "parents": [
        "0a76fe8e50ee93a9d4a1badb1ec995852a6bcaf1"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "mschmidt@redhat.com",
        "time": "Wed Feb 06 01:37:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:04 2008 -0800"
      },
      "message": "proc: loadavg reading race\n\nThe avenrun[] values are supposed to be protected by xtime_lock.\nloadavg_read_proc does not use it.  Theoretically this may result in an\noccasional glitch when the value read from /proc/loadavg would be as much\nas 1\u003c\u003c11 times higher than it should be.\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "011e3fcd1e1f14ef54db30b93404ab7caa726477",
      "tree": "2d8b5dc618f370cb8f2aafd16f15e324fca872bb",
      "parents": [
        "c166f23cb56a76983ce860739d95c8296e57d6b3"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "proper prototype for get_filesystem_list()\n\nAd a proper prototype for migration_init() in include/linux/fs.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "f74596d07957235ad9da5120029348b372224a27",
      "tree": "72089ad3368af0e674952866dd9db69b1bcb42f9",
      "parents": [
        "0b03cfb25fa944bc106e816146846dcb48b2e907"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "proper show_interrupts() prototype\n\nAdd a proper prototype for show_interrupts() in include/linux/interrupt.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "e338d263a76af78fe8f38a72131188b58fceb591",
      "tree": "f3f046fc6fd66de43de7191830f0daf3bc4ec8eb",
      "parents": [
        "8f6936f4d29aa14e54a2470b954a2e1f96322988"
      ],
      "author": {
        "name": "Andrew Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Feb 04 22:29:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "Add 64-bit capability support to the kernel\n\nThe patch supports legacy (32-bit) capability userspace, and where possible\ntranslates 32-bit capabilities to/from userspace and the VFS to 64-bit\nkernel space capabilities.  If a capability set cannot be compressed into\n32-bits for consumption by user space, the system call fails, with -ERANGE.\n\nFWIW libcap-2.00 supports this change (and earlier capability formats)\n\n http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/\n\n[akpm@linux-foundation.org: coding-syle fixes]\n[akpm@linux-foundation.org: use get_task_comm()]\n[ezk@cs.sunysb.edu: build fix]\n[akpm@linux-foundation.org: do not initialise statics to 0 or NULL]\n[akpm@linux-foundation.org: unused var]\n[serue@us.ibm.com: export __cap_ symbols]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7766755a2f249e7e0dabc5255a0a3d151ff79821",
      "tree": "0f9d130d3f8107c77ed61b75f4745dc86e36d457",
      "parents": [
        "195cf453d2c3d789cbe80e3735755f860c2fb222"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Mon Feb 04 22:29:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "Fix /proc dcache deadlock in do_exit\n\nThis patch fixes a sles9 system hang in start_this_handle from a customer\nwith some heavy workload where all tasks are waiting on kjournald to commit\nthe transaction, but kjournald waits on t_updates to go down to zero (it\nnever does).\n\nThis was reported as a lowmem shortage deadlock but when checking the debug\ndata I noticed the VM wasn\u0027t under pressure at all (well it was really\nunder vm pressure, because lots of tasks hanged in the VM prune_dcache\nmethods trying to flush dirty inodes, but no task was hanging in GFP_NOFS\nmode, the holder of the journal handle should have if this was a vm issue\nin the first place).\n\nNo task was apparently holding the leftover handle in the committing\ntransaction, so I deduced t_updates was stuck to 1 because a journal_stop\nwas never run by some path (this turned out to be correct).  With a debug\npatch adding proper reverse links and stack trace logging in ext3 deployed\nin production, I found journal_stop is never run because\nmark_inode_dirty_sync is called inside release_task called by do_exit.\n(that was quite fun because I would have never thought about this\nsubtleness, I thought a regular path in ext3 had a bug and it forgot to\ncall journal_stop)\n\ndo_exit-\u003erelease_task-\u003emark_inode_dirty_sync-\u003eschedule() (will never\ncome back to run journal_stop)\n\nThe reason is that shrink_dcache_parent is racy by design (feature not\na bug) and it can do blocking I/O in some case, but the point is that\ncalling shrink_dcache_parent at the last stage of do_exit isn\u0027t safe\nfor self-reaping tasks.\n\nI guess the memory pressure of the unbalanced highmem system allowed\nto trigger this more easily.\n\nNow mainline doesn\u0027t have this line in iput (like sles9 has):\n\n    \t     if (inode-\u003ei_state \u0026 I_DIRTY_DELAYED)\n\t     \t\t\tmark_inode_dirty_sync(inode);\n\nso it will probably not crash with ext3, but for example ext2 implements an\nI/O-blocking ext2_put_inode that will lead to similar screwups with\next2_free_blocks never coming back and it\u0027s definitely wrong to call\nblocking-IO paths inside do_exit.  So this should fix a subtle bug in\nmainline too (not verified in practice though).  The equivalent fix for\next3 is also not verified yet to fix the problem in sles9 but I don\u0027t have\ndoubt it will (it usually takes days to crash, so it\u0027ll take weeks to be\nsure).\n\nAn alternate fix would be to offload that work to a kernel thread, but I\ndon\u0027t think a reschedule for this is worth it, the vm should be able to\ncollect those entries for the synchronous release_task.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "1e88328111aae3ea408f346763ba9f9bad71f876",
      "tree": "22be92057a7426ca5b6c8ee9b136bbc417c902a8",
      "parents": [
        "304daa8132a95e998b6716d4b7bd8bd76aa152b2"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "maps4: make page monitoring /proc file optional\n\nMake /proc/ page monitoring configurable\n\nThis puts the following files under an embedded config option:\n\n/proc/pid/clear_refs\n/proc/pid/smaps\n/proc/pid/pagemap\n/proc/kpagecount\n/proc/kpageflags\n\n[akpm@linux-foundation.org: Kconfig fix]\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "304daa8132a95e998b6716d4b7bd8bd76aa152b2",
      "tree": "21f37f8eb40518b3300b5c0967cf3867c7f18aae",
      "parents": [
        "161f47bf41c5ece90ac53cbb6a4cb9bf74ce0ef6"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "maps4: add /proc/kpageflags interface\n\nThis makes a subset of physical page flags available to userspace. Together\nwith /proc/pid/kpagemap, this allows tracking of a wide variety of VM behaviors.\n\nExported flags are decoupled from the kernel\u0027s internal flags. This\nallows us to reorder flag bits, and synthesize any bits that get\nredefined in terms of other bits.\n\n[akpm@linux-foundation.org: remove unneeded access_ok()]\n[akpm@linux-foundation.org: s/0/NULL/]\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "161f47bf41c5ece90ac53cbb6a4cb9bf74ce0ef6",
      "tree": "f6f18c3eb74faf8b2b8de27b42241e9986bd6dc9",
      "parents": [
        "85863e475e59afb027b0113290e3796ee6020b7d"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "maps4: add /proc/kpagecount interface\n\nThis makes physical page map counts available to userspace. Together\nwith /proc/pid/pagemap and /proc/pid/clear_refs, this can be used to\nmonitor memory usage on a per-page basis.\n\n[akpm@linux-foundation.org: remove unneeded access_ok()]\n[bunk@stusta.de: make struct proc_kpagemap static]\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Dave Hansen \u003chaveblue@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": "85863e475e59afb027b0113290e3796ee6020b7d",
      "tree": "047cc687b98c0261bd3c083f17c090fbf082355f",
      "parents": [
        "a6198797cc3fd659b2d81cdf6bb6b9bba9cd93e9"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: add /proc/pid/pagemap interface\n\nThis interface provides a mapping for each page in an address space to its\nphysical page frame number, allowing precise determination of what pages are\nmapped and what pages are shared between processes.\n\nNew in this version:\n\n- headers gone again (as recommended by Dave Hansen and Alan Cox)\n- 64-bit entries (as per discussion with Andi Kleen)\n- swap pte information exported (from Dave Hansen)\n- page walker callback for holes (from Dave Hansen)\n- direct put_user I/O (as suggested by Rusty Russell)\n\nThis patch folds in cleanups and swap PTE support from Dave Hansen\n\u003chaveblue@us.ibm.com\u003e.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "a6198797cc3fd659b2d81cdf6bb6b9bba9cd93e9",
      "tree": "da256154b9c764067aadd2738d9083d38a6f1882",
      "parents": [
        "f248dcb34d7b7ac255db70071a20be9d9c6ad491"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: regroup task_mmu by interface\n\nReorder source so that all the code and data for each interface is together.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "f248dcb34d7b7ac255db70071a20be9d9c6ad491",
      "tree": "ec7c7fb115e40b4a337af98a6f9f2ad5db9af1f0",
      "parents": [
        "4752c369789250eafcd7813e11c8fb689235b0d2"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: move clear_refs code to task_mmu.c\n\nThis puts all the clear_refs code where it belongs and probably lets things\ncompile on MMU-less systems as well.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "4752c369789250eafcd7813e11c8fb689235b0d2",
      "tree": "24fda864f4962f18fd8e118271f1d8c4ec633024",
      "parents": [
        "b3ae5acbbb98d95c1300c8ced56d15f97d09c506"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: simplify interdependence of maps and smaps\n\nThis pulls the shared map display code out of show_map and puts it in\nshow_smap where it belongs.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "b3ae5acbbb98d95c1300c8ced56d15f97d09c506",
      "tree": "e8a159c7c3309564458f7dea955b6a9daf948b61",
      "parents": [
        "e6473092bd9116583ce9ab8cf1b6570e1aa6fc83"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: use pagewalker in clear_refs and smaps\n\nUse the generic pagewalker for smaps and clear_refs\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "ec4dd3eb35759f9fbeb5c1abb01403b2fde64cc9",
      "tree": "0eaf4d91180556df61da6300463d946390ce55fb",
      "parents": [
        "61d5048f149572434daee0cce5e1374a8a7cf3e8"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Mon Feb 04 22:28:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: add proportional set size accounting in smaps\n\nThe \"proportional set size\" (PSS) of a process is the count of pages it has\nin memory, where each page is divided by the number of processes sharing\nit.  So if a process has 1000 pages all to itself, and 1000 shared with one\nother process, its PSS will be 1500.\n\n               - lwn.net: \"ELC: How much memory are applications really using?\"\n\nThe PSS proposed by Matt Mackall is a very nice metic for measuring an\nprocess\u0027s memory footprint.  So collect and export it via\n/proc/\u003cpid\u003e/smaps.\n\nMatt Mackall\u0027s pagemap/kpagemap and John Berthels\u0027s exmap can also do the\njob.  They are comprehensive tools.  But for PSS, let\u0027s do it in the simple\nway.\n\nCc: John Berthels \u003cjjberthels@gmail.com\u003e\nCc: Bernardo Innocenti \u003cbernie@codewiz.org\u003e\nCc: Padraig Brady \u003cP@draigBrady.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "9e2779fa281cfda13ac060753d674bbcaa23367e",
      "tree": "e2af17d69b71e0f8b3f00fe949cb8abfba4298ed",
      "parents": [
        "0b7a96114bd5991d355a1f1c1d3d9c0c9d9c1cfc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "is_vmalloc_addr(): Check if an address is within the vmalloc boundaries\n\nChecking if an address is a vmalloc address is done in a couple of places.\nDefine a common version in mm.h and replace the other checks.\n\nAgain the include structures suck.  The definition of VMALLOC_START and\nVMALLOC_END is not available in vmalloc.h since highmem.c cannot be included\nthere.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c11b9428f619ab377c92eff2f160a834a6585dd",
      "tree": "35b573715ad5730a77d067486838345132771a7a",
      "parents": [
        "24e1c13c93cbdd05e4b7ea921c0050b036555adc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 10 04:20:52 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 01 14:04:59 2008 -0500"
      },
      "message": "[PATCH] switch audit_get_loginuid() to task_struct *\n\nall callers pass something-\u003eaudit_context\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75659ca0c10992dcb39258518368a0f6f56e935d",
      "tree": "5d014ceb2f10158061a23d0d976f9a613d85e659",
      "parents": [
        "fbdde7bd274d74729954190f99afcb1e3d9bbfba",
        "2dfe485a2c8afa54cb069fcf48476f6c90ea3fdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "message": "Merge branch \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits)\n  Remove commented-out code copied from NFS\n  NFS: Switch from intr mount option to TASK_KILLABLE\n  Add wait_for_completion_killable\n  Add wait_event_killable\n  Add schedule_timeout_killable\n  Use mutex_lock_killable in vfs_readdir\n  Add mutex_lock_killable\n  Use lock_page_killable\n  Add lock_page_killable\n  Add fatal_signal_pending\n  Add TASK_WAKEKILL\n  exit: Use task_is_*\n  signal: Use task_is_*\n  sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL\n  ptrace: Use task_is_*\n  power: Use task_is_*\n  wait: Use TASK_NORMAL\n  proc/base.c: Use task_is_*\n  proc/array.c: Use TASK_REPORT\n  perfmon: Use task_is_*\n  ...\n\nFixed up conflicts in NFS/sunrpc manually..\n"
    },
    {
      "commit": "e5d69b9f4a6ce17f0d09595da45e37b870fee5ae",
      "tree": "fa6ddbf9a5dbf674e8c7ec668edec2f36d34176a",
      "parents": [
        "8cced9eff1d413c28efac9c5ac5a75793c9251cf"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 10 03:51:41 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:36 2008 -0800"
      },
      "message": "[ATM]: Oops reading net/atm/arp\n\ncat /proc/net/atm/arp causes the NULL pointer dereference in the\nget_proc_net+0xc/0x3a. This happens as proc_get_net believes that the\nparent proc dir entry contains struct net.\n\nFix this assumption for \"net/atm\" case.\n\nThe problem is introduced by the commit c0097b07abf5f92ab135d024dd41bd2aada1512f\nfrom Eric W. Biederman/Daniel Lezcano.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e372c41401993b45c721c4d92730e7e0a79f7c1b",
      "tree": "8f062f506c0578fc83b7d05c8751a7ccac96e50e",
      "parents": [
        "097e66c578459f79e3a2128c54e9df5194e1419a"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Nov 19 22:31:54 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:28 2008 -0800"
      },
      "message": "[NET]: Consolidate net namespace related proc files creation.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9745512ce79de686df354dc70a8d1a74d801892d",
      "tree": "9b64e2b2e6d2ae534beef136922082f21701c7b9",
      "parents": [
        "326587b840785c60f5dc18557235a23bafefd620"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: latencytop support\n\nLatencyTOP kernel infrastructure; it measures latencies in the\nscheduler and tracks it system wide and per process.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a98fdcef941e107eeabae622d85a1f476f25a160",
      "tree": "1702a6e810016eea5e995eb7c91a101688e8c59c",
      "parents": [
        "4fd3670eb1d3c33e8952cf1e79edbb2d517dcfb5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Jan 15 00:02:37 2008 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 14 13:23:00 2008 -0800"
      },
      "message": "fix the \"remove task_ppid_nr_ns\" commit\n\nCommit 84427eaef1fb91704c7112bdb598c810003b99f3 (remove task_ppid_nr_ns)\nmoved the task_tgid_nr_ns(task-\u003ereal_parent) outside of lock_task_sighand().\nThis is wrong, -\u003ereal_parent could be freed/reused.\n\nBoth -\u003eparent/real_parent point to nothing after __exit_signal() because\nwe remove the child from -\u003echildren list, and thus the child can\u0027t be\nreparented when its parent exits.\n\nrcu_read_lock() protects -\u003eparent/real_parent, but _only_ if we know it was\nvalid before we take rcu lock.\n\nRevert this part of the patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84427eaef1fb91704c7112bdb598c810003b99f3",
      "tree": "bf22a7186295fcb6dc6bced34cfa73aa74b27300",
      "parents": [
        "974a9f0b47da74e28f68b9c8645c3786aa5ace1a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jan 10 12:52:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jan 13 09:56:43 2008 -0800"
      },
      "message": "remove task_ppid_nr_ns\n\ntask_ppid_nr_ns is called in three places.  One of these should never\nhave called it.  In the other two, using it broke the existing\nsemantics.  This was presumably accidental.  If the function had not\nbeen there, it would have been much more obvious to the eye that those\npatches were changing the behavior.  We don\u0027t need this function.\n\nIn task_state, the pid of the ptracer is not the ppid of the ptracer.\n\nIn do_task_stat, ppid is the tgid of the real_parent, not its pid.\nI also moved the call outside of lock_task_sighand, since it doesn\u0027t\nneed it.\n\nIn sys_getppid, ppid is the tgid of the real_parent, not its pid.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "831830b5a2b5d413407adf380ef62fe17d6fcbf2",
      "tree": "b08f54f15374b5b98b0b3bea20a1d2ea8d1f50e0",
      "parents": [
        "ac40532ef0b8649e6f7f83859ea0de1c4ed08a19"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Jan 02 14:09:57 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jan 02 13:13:27 2008 -0800"
      },
      "message": "restrict reading from /proc/\u003cpid\u003e/maps to those who share -\u003emm or can ptrace pid\n\nContents of /proc/*/maps is sensitive and may become sensitive after\nopen() (e.g.  if target originally shares our -\u003emm and later does exec\non suid-root binary).\n\nCheck at read() (actually, -\u003estart() of iterator) time that mm_struct\nwe\u0027d grabbed and locked is\n - still the -\u003emm of target\n - equal to reader\u0027s -\u003emm or the target is ptracable by reader.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "158a962422e4a54dc256b6a9b9562f3d30d34d9c",
      "tree": "21a71d7d671d12388f4b085e31b0258d1047f125",
      "parents": [
        "6b6adc22a01941165d5af9a3e69e28e948b28f47"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jan 02 13:04:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jan 02 13:04:48 2008 -0800"
      },
      "message": "Unify /proc/slabinfo configuration\n\nBoth SLUB and SLAB really did almost exactly the same thing for\n/proc/slabinfo setup, using duplicate code and per-allocator #ifdef\u0027s.\n\nThis just creates a common CONFIG_SLABINFO that is enabled by both SLUB\nand SLAB, and shares all the setup code.  Maybe SLOB will want this some\nday too.\n\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b6adc22a01941165d5af9a3e69e28e948b28f47",
      "tree": "d37ec1318df41660573e09b19282e96288d9acaf",
      "parents": [
        "dc512814b5f8b7b80c74d6170b93a606ae4f36c5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jan 02 13:07:25 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jan 02 10:42:39 2008 -0800"
      },
      "message": "slub: register slabinfo to procfs\n\nWe need to register slabinfo to procfs when CONFIG_SLUB is enabled to\nmake the file actually visible to user-space.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3790ee4bd86396558eedd86faac1052cb782e4e1",
      "tree": "b5e3142205713d37d23003233352ee7221947c1a",
      "parents": [
        "d84248bf46582a406116c55b94405c05193773b1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Dec 10 15:49:36 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 10 19:43:55 2007 -0800"
      },
      "message": "proc: remove/Fix proc generic d_revalidate\n\nUltimately to implement /proc perfectly we need an implementation of\nd_revalidate because files and directories can be removed behind the back\nof the VFS, and d_revalidate is the only way we can let the VFS know that\nthis has happened.\n\nUnfortunately the linux VFS can not cope with anything in the path to a\nmount point going away.  So a proper d_revalidate method that calls d_drop\nalso needs to call have_submounts which is moderately expensive, so you\nreally don\u0027t want a d_revalidate method that unconditionally calls it, but\ninstead only calls it when the backing object has really gone away.\n\nproc generic entries only disappear on module_unload (when not counting the\nfledgling network namespace) so it is quite rare that we actually encounter\nthat case and has not actually caused us real world trouble yet.\n\nSo until we get a proper test for keeping dentries in the dcache fix the\ncurrent d_revalidate method by completely removing it.  This returns us to\nthe current status quo.\n\nSo with CONFIG_NETNS\u003dn things should look as they have always looked.\n\nFor CONFIG_NETNS\u003dy things work most of the time but there are a few rare\ncorner cases that don\u0027t behave properly.  As the network namespace is\nbarely present in 2.6.24 this should not be a problem.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"Denis V. Lunev\" \u003cden@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d8982d9b8f4b771754335f1398e406cc72003c3",
      "tree": "02209faf6ae4c1a8e6aa5f069aaa0968a4c6dd6a",
      "parents": [
        "1587e2b1880632d959db6ac9e79cb1d99a73c656"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:04:01 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:20:35 2007 -0500"
      },
      "message": "proc/base.c: Use task_is_*\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "1587e2b1880632d959db6ac9e79cb1d99a73c656",
      "tree": "083188c4df42d49156618b1cabec341951554661",
      "parents": [
        "21498223daad359d048b35b0ee4d1b93300ef258"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:03:36 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:20:28 2007 -0500"
      },
      "message": "proc/array.c: Use TASK_REPORT\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "5a622f2d0f86b316b07b55a4866ecb5518dd1cf7",
      "tree": "f89bb875b5b440dced320336db6cac24b9e4d8b7",
      "parents": [
        "d4beaf4ab5f89496f2bcf67db62ad95d99bfeff6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Dec 04 23:45:28 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Dec 05 09:21:20 2007 -0800"
      },
      "message": "proc: fix proc_dir_entry refcounting\n\nCreating PDEs with refcount 0 and \"deleted\" flag has problems (see below).\nSwitch to usual scheme:\n* PDE is created with refcount 1\n* every de_get does +1\n* every de_put() and remove_proc_entry() do -1\n* once refcount reaches 0, PDE is freed.\n\nThis elegantly fixes at least two following races (both observed) without\nintroducing new locks, without abusing old locks, without spreading\nlock_kernel():\n\n1) PDE leak\n\nremove_proc_entry\t\t\tde_put\n-----------------\t\t\t------\n\t\t\t[refcnt \u003d 1]\nif (atomic_read(\u0026de-\u003ecount) \u003d\u003d 0)\n\t\t\t\t\tif (atomic_dec_and_test(\u0026de-\u003ecount))\n\t\t\t\t\t\tif (de-\u003edeleted)\n\t\t\t\t\t\t\t/* also not taken! */\n\t\t\t\t\t\t\tfree_proc_entry(de);\nelse\n\tde-\u003edeleted \u003d 1;\n\t\t[refcount\u003d0, deleted\u003d1]\n\n2) use after free\n\nremove_proc_entry\t\t\tde_put\n-----------------\t\t\t------\n\t\t\t[refcnt \u003d 1]\n\n\t\t\t\t\tif (atomic_dec_and_test(\u0026de-\u003ecount))\nif (atomic_read(\u0026de-\u003ecount) \u003d\u003d 0)\n\tfree_proc_entry(de);\n\t\t\t\t\t\t/* boom! */\n\t\t\t\t\t\tif (de-\u003edeleted)\n\t\t\t\t\t\t\tfree_proc_entry(de);\n\nBUG: unable to handle kernel paging request at virtual address 6b6b6b6b\nprinting eip: c10acdda *pdpt \u003d 00000000338f8001 *pde \u003d 0000000000000000\nOops: 0000 [#1] PREEMPT SMP\nModules linked in: af_packet ipv6 cpufreq_ondemand loop serio_raw psmouse k8temp hwmon sr_mod cdrom\nPid: 23161, comm: cat Not tainted (2.6.24-rc2-8c0863403f109a43d7000b4646da4818220d501f #4)\nEIP: 0060:[\u003cc10acdda\u003e] EFLAGS: 00210097 CPU: 1\nEIP is at strnlen+0x6/0x18\nEAX: 6b6b6b6b EBX: 6b6b6b6b ECX: 6b6b6b6b EDX: fffffffe\nESI: c128fa3b EDI: f380bf34 EBP: ffffffff ESP: f380be44\n DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess cat (pid: 23161, ti\u003df380b000 task\u003df38f2570 task.ti\u003df380b000)\nStack: c10ac4f0 00000278 c12ce000 f43cd2a8 00000163 00000000 7da86067 00000400\n       c128fa20 00896b18 f38325a8 c128fe20 ffffffff 00000000 c11f291e 00000400\n       f75be300 c128fa20 f769c9a0 c10ac779 f380bf34 f7bfee70 c1018e6b f380bf34\nCall Trace:\n [\u003cc10ac4f0\u003e] vsnprintf+0x2ad/0x49b\n [\u003cc10ac779\u003e] vscnprintf+0x14/0x1f\n [\u003cc1018e6b\u003e] vprintk+0xc5/0x2f9\n [\u003cc10379f1\u003e] handle_fasteoi_irq+0x0/0xab\n [\u003cc1004f44\u003e] do_IRQ+0x9f/0xb7\n [\u003cc117db3b\u003e] preempt_schedule_irq+0x3f/0x5b\n [\u003cc100264e\u003e] need_resched+0x1f/0x21\n [\u003cc10190ba\u003e] printk+0x1b/0x1f\n [\u003cc107c8ad\u003e] de_put+0x3d/0x50\n [\u003cc107c8f8\u003e] proc_delete_inode+0x38/0x41\n [\u003cc107c8c0\u003e] proc_delete_inode+0x0/0x41\n [\u003cc1066298\u003e] generic_delete_inode+0x5e/0xc6\n [\u003cc1065aa9\u003e] iput+0x60/0x62\n [\u003cc1063c8e\u003e] d_kill+0x2d/0x46\n [\u003cc1063fa9\u003e] dput+0xdc/0xe4\n [\u003cc10571a1\u003e] __fput+0xb0/0xcd\n [\u003cc1054e49\u003e] filp_close+0x48/0x4f\n [\u003cc1055ee9\u003e] sys_close+0x67/0xa5\n [\u003cc10026b6\u003e] sysenter_past_esp+0x5f/0x85\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCode: c9 74 0c f2 ae 74 05 bf 01 00 00 00 4f 89 fa 5f 89 d0 c3 85 c9 57 89 c7 89 d0 74 05 f2 ae 75 01 4f 89 f8 5f c3 89 c1 89 c8 eb 06 \u003c80\u003e 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 c3 90 90 90 57 83 c9\nEIP: [\u003cc10acdda\u003e] strnlen+0x6/0x18 SS:ESP 0068:f380be44\n\nAlso, remove broken usage of -\u003edeleted from reiserfs: if sget() succeeds,\nmodule is already pinned and remove_proc_entry() can\u0027t happen \u003d\u003e nobody\ncan mark PDE deleted.\n\nDummy proc root in netns code is not marked with refcount 1. AFAICS, we\nnever get it, it\u0027s just for proper /proc/net removal. I double checked\nCLONE_NETNS continues to work.\n\nPatch survives many hours of modprobe/rmmod/cat loops without new bugs\nwhich can be attributed to refcounting.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8002cedc1adbf51e2d56091534ef7551b88329b4",
      "tree": "2c65c82b2b5300eac581a0ee794d98f0b61593b6",
      "parents": [
        "e87cb5db0dc357473ac71801051954ddd6ff604f",
        "d523a328fb0271e1a763e985a21f2488fd816e7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 03 08:15:36 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 03 08:15:36 2007 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/net-2.6: (27 commits)\n  [INET]: Fix inet_diag dead-lock regression\n  [NETNS]: Fix /proc/net breakage\n  [TEXTSEARCH]: Do not allow zero length patterns in the textsearch infrastructure\n  [NETFILTER]: fix forgotten module release in xt_CONNMARK and xt_CONNSECMARK\n  [NETFILTER]: xt_TCPMSS: remove network triggerable WARN_ON\n  [DECNET]: dn_nl_deladdr() almost always returns no error\n  [IPV6]: Restore IPv6 when MTU is big enough\n  [RXRPC]: Add missing select on CRYPTO\n  mac80211: rate limit wep decrypt failed messages\n  rfkill: fix double-mutex-locking\n  mac80211: drop unencrypted frames if encryption is expected\n  mac80211: Fix behavior of ieee80211_open and ieee80211_close\n  ieee80211: fix unaligned access in ieee80211_copy_snap\n  mac80211: free ifsta-\u003eextra_ie and clear IEEE80211_STA_PRIVACY_INVOKED\n  SCTP: Fix build issues with SCTP AUTH.\n  SCTP: Fix chunk acceptance when no authenticated chunks were listed.\n  SCTP: Fix the supported extensions paramter\n  SCTP: Fix SCTP-AUTH to correctly add HMACS paramter.\n  SCTP: Fix the number of HB transmissions.\n  [TCP] illinois: Incorrect beta usage\n  ...\n"
    },
    {
      "commit": "2b1e300a9dfc3196ccddf6f1d74b91b7af55e416",
      "tree": "3181bf4f2c27d185c78b26642f35ed00cb280943",
      "parents": [
        "e03ba84adb62fbc6049325a5bc00ef6932fa5e39"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Dec 02 00:33:17 2007 +1100"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Dec 02 00:33:17 2007 +1100"
      },
      "message": "[NETNS]: Fix /proc/net breakage\n\nWell I clearly goofed when I added the initial network namespace support\nfor /proc/net.  Currently things work but there are odd details visible to\nuser space, even when we have a single network namespace.\n\nSince we do not cache proc_dir_entry dentries at the moment we can just\nmodify -\u003elookup to return a different directory inode depending on the\nnetwork namespace of the process looking at /proc/net, replacing the\ncurrent technique of using a magic and fragile follow_link method.\n\nTo accomplish that this patch:\n- introduces a shadow_proc method to allow different dentries to\n  be returned from proc_lookup.\n- Removes the old /proc/net follow_link magic\n- Fixes a weakness in our not caching of proc generic dentries.\n\nAs shadow_proc uses a task struct to decided which dentry to return we can\ngo back later and fix the proc generic caching without modifying any code\nthat uses the shadow_proc method.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "19fd4bb2a0cfede054e4904e0b167e0ca4f36cc7",
      "tree": "e37d0ee2c7ea08f6d8721a4e9e807f85994b608a",
      "parents": [
        "c895078355b6b6e05c60aa205892526dd3390f0a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 28 16:21:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:52 2007 -0800"
      },
      "message": "proc: remove races from proc_id_readdir()\n\nOleg noticed that the call of task_pid_nr_ns() in proc_pid_readdir\nis racy with respect to tasks exiting.\n\nAfter a bit of examination it also appears that the call itself\nis completely unnecessary.\n\nSo to fix the problem this patch modifies next_tgid() to return\nboth a tgid and the task struct in question.\n\nA structure is introduced to return these values because it is\nslightly cleaner and easier to optimize, and the resulting code\nis a little shorter.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "c2319540cd7330fa9066e5b9b84d357a2c8631a2",
      "tree": "e63a0aeae5a9951a9cbc705fdb48eecc7ec62110",
      "parents": [
        "a7839e960675b549f06209d18283d5cee2ce9261"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Wed Nov 28 16:21:23 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:52 2007 -0800"
      },
      "message": "proc: fix NULL -\u003ei_fop oops\n\nproc_kill_inodes() can clear -\u003ei_fop in the middle of vfs_readdir resulting in\nNULL dereference during \"file-\u003ef_op-\u003ereaddir(file, buf, filler)\".\n\nThe solution is to remove proc_kill_inodes() completely:\n\na) we don\u0027t have tricky modules implementing their tricky readdir hooks which\n   could keeping this revoke from hell.\n\nb) In a situation when module is gone but PDE still alive, standard\n   readdir will return only \".\" and \"..\", because pde-\u003enext was cleared by\n   remove_proc_entry().\n\nc) the race proc_kill_inode() destined to prevent is not completely\n   fixed, just race window made smaller, because vfs_readdir() is run\n   without sb_lock held and without file_list_lock held.  Effectively,\n   -\u003ei_fop is cleared at random moment, which can\u0027t fix properly anything.\n\nBUG: unable to handle kernel NULL pointer dereference at virtual address 00000018\nprinting eip: c1061205 *pdpt \u003d 0000000005b22001 *pde \u003d 0000000000000000\nOops: 0000 [#1] PREEMPT SMP\nModules linked in: foo af_packet ipv6 cpufreq_ondemand loop serio_raw sr_mod k8temp cdrom hwmon amd_rng\nPid: 2033, comm: find Not tainted (2.6.24-rc1-b1d08ac064268d0ae2281e98bf5e82627e0f0c56 #2)\nEIP: 0060:[\u003cc1061205\u003e] EFLAGS: 00010246 CPU: 0\nEIP is at vfs_readdir+0x47/0x74\nEAX: c6b6a780 EBX: 00000000 ECX: c1061040 EDX: c5decf94\nESI: c6b6a780 EDI: fffffffe EBP: c9797c54 ESP: c5decf78\n DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess find (pid: 2033, ti\u003dc5dec000 task\u003dc64bba90 task.ti\u003dc5dec000)\nStack: c5decf94 c1061040 fffffff7 0805ffbc 00000000 c6b6a780 c1061295 0805ffbc\n       00000000 00000400 00000000 00000004 0805ffbc 4588eff4 c5dec000 c10026ba\n       00000004 0805ffbc 00000400 0805ffbc 4588eff4 bfdc6c70 000000dc 0000007b\nCall Trace:\n [\u003cc1061040\u003e] filldir64+0x0/0xc5\n [\u003cc1061295\u003e] sys_getdents64+0x63/0xa5\n [\u003cc10026ba\u003e] sysenter_past_esp+0x5f/0x85\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCode: 49 83 78 18 00 74 43 8d 6b 74 bf fe ff ff ff 89 e8 e8 b8 c0 12 00 f6 83 2c 01 00 00 10 75 22 8b 5e 10 8b 4c 24 04 89 f0 8b 14 24 \u003cff\u003e 53 18 f6 46 1a 04 89 c7 75 0b 8b 56 0c 8b 46 08 e8 c8 66 00\nEIP: [\u003cc1061205\u003e] vfs_readdir+0x47/0x74 SS:ESP 0068:c5decf78\n\nhch: \"Nice, getting rid of this is a very good step formwards.\n      Unfortunately we have another copy of this junk in\n      security/selinux/selinuxfs.c:sel_remove_entries() which would need the\n      same treatment.\"\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08e4570a4a393bcc241f78dfc444cb0b07995fc0",
      "tree": "e151f5d5ae0e9cb361e91a08c4d0fb8a7171b8ce",
      "parents": [
        "5e8869bb699d50be5c0733edfc71cfcd5b43e10a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 26 21:21:49 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 26 21:21:49 2007 +0100"
      },
      "message": "sched: fix prev_stime calculation\n\nSrivatsa Vaddagiri noticed occasionally incorrect CPU usage\nvalues in top and tracked it down to stime going below 0 in\ntask_stime(). Negative values are possible there due to the\nsampled nature of stime/utime.\n\nFix suggested by Balbir Singh.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nReviewed-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9fcc2d15b14894aa53e5e8b7fd5d6e3ca558e5df",
      "tree": "bc58ea7711b0a51c5b810ca1320fed53ed201772",
      "parents": [
        "c0f2a9d75aed1a4be40c3975b94fd39066bd11bb"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 14 17:00:07 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:42 2007 -0800"
      },
      "message": "proc: simplify and correct proc_flush_task\n\nCurrently we special case when we have only the initial pid namespace.\nUnfortunately in doing so the copied case for the other namespaces was\nbroken so we don\u0027t properly flush the thread directories :(\n\nSo this patch removes the unnecessary special case (removing a usage of\nproc_mnt) and corrects the flushing of the thread directories.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1a1c997afe907e6ec4799e4be0f38cffd8b418c",
      "tree": "3c1154a95c0a44a1015f3bfeb7e73d19024924cb",
      "parents": [
        "7105458563213b6f6fb523065474cfe1d6c22a67"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 14 16:59:08 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:38 2007 -0800"
      },
      "message": "proc: fix proc_kill_inodes to kill dentries on all proc superblocks\n\nIt appears we overlooked support for removing generic proc files\nwhen we added support for multiple proc super blocks.  Handle\nthat now.\n\n[akpm@linux-foundation.org: coding-style cleanups]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@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": "022cbae611a37eda80d498f8f379794c8ac3be47",
      "tree": "c6fe8fe45748127c916d32ec97601c435065d5cb",
      "parents": [
        "ed160e839d2e1118529e58b04d52dba703ca629c"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Nov 13 03:23:50 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 13 03:23:50 2007 -0800"
      },
      "message": "[NET]: Move unneeded data to initdata section.\n\nThis patch reverts Eric\u0027s commit 2b008b0a8e96b726c603c5e1a5a7a509b5f61e35\n\nIt diets .text \u0026 .data section of the kernel if CONFIG_NET_NS is not set.\nThis is safe after list operations cleanup.\n\nSigned-of-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "44656ba1286d82b5a5f8817eb2e4ea744143c3ca",
      "tree": "930e4ba8b30618eb58b4123f676120573e0be18c",
      "parents": [
        "33120b30cc3b8665204d4fcde7288638b0dd04d5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:10:52 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:10:52 2007 -0800"
      },
      "message": "[NET]: Kill proc_net_create()\n\nThere are no more users.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9301899be75b464ef097f0b5af7af6d9bd8f68a7",
      "tree": "a7053c5c0babcdbad6d4baff0551d60e5c4308af",
      "parents": [
        "82798a17ad40df827d465329a20ace80497f9b32"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "message": "sched: fix /proc/\u003cPID\u003e/stat stime/utime monotonicity, part 2\n\nExtend Peter\u0027s patch to fix accounting issues, by keeping stime\nmonotonic too.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\n"
    },
    {
      "commit": "73a2bcb0edb9ffb0b007b3546b430e2c6e415eee",
      "tree": "dd84f61589c7dd21b7be973c288611ffe547f21b",
      "parents": [
        "f7402e0361d4472535e07cfca648f2fa81d85cd2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: keep utime/stime monotonic\n\nkeep utime/stime monotonic.\n\ncpustats use utime/stime as a ratio against sum_exec_runtime, as a\nconsequence it can happen - when the ratio changes faster than time\naccumulates - that either can be appear to go backwards.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2b008b0a8e96b726c603c5e1a5a7a509b5f61e35",
      "tree": "80d71a763d3e8365805203cf22093783e64e1bbc",
      "parents": [
        "72998d8c84247817c4b8b05b0256f29453e435f5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Oct 26 22:54:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 26 22:54:53 2007 -0700"
      },
      "message": "[NET]: Marking struct pernet_operations __net_initdata was inappropriate\n\nIt is not safe to to place struct pernet_operations in a special section.\nWe need struct pernet_operations to last until we call unregister_pernet_subsys.\nWhich doesn\u0027t happen until module unload.\n\nSo marking struct pernet_operations is a disaster for modules in two ways.\n- We discard it before we call the exit method it points to.\n- Because I keep struct pernet_operations on a linked list discarding\n  it for compiled in code removes elements in the middle of a linked\n  list and does horrible things for linked insert.\n\nSo this looks safe assuming __exit_refok is not discarded\nfor modules.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "253879e62f997d0027500f4b71ef290f37e306ee",
      "tree": "dd73852dbfd21f7f162f71f36cce24d25d785289",
      "parents": [
        "c8d90dca3211966ba5189e0f3d4bccd558d9ae08"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 26 03:55:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 26 03:55:44 2007 -0700"
      },
      "message": "[NET] fs/proc/proc_net.c: make a struct static\n\nStruct proc_net_ns_ops can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a2da53b181bdafcdecb43c457735ee2892ae885",
      "tree": "34f3a05c5db9f2b4d1b911316d97a363b5152e9f",
      "parents": [
        "de48844398f81cfdf087d56e12c920d620dae8d5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 25 15:27:40 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 25 15:16:49 2007 -0700"
      },
      "message": "Fix pointer mismatches in proc_sysctl.c\n\nFix pointer mismatches in proc_sysctl.c.  The proc_handler() method returns a\nsize_t through an arg pointer, but is given a pointer to a ssize_t to return\ninto.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0895e91d60ef9bdef426d1ce14bb94bd5875870d",
      "tree": "9ca0dbc19cf72a95977253af606a4311cc8e9403",
      "parents": [
        "481968f44e81aac3b1b4863baf2c497ec46388f6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Oct 21 21:00:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 22 19:40:02 2007 -0700"
      },
      "message": "procfs: fix kernel-doc param warnings\n\nFix mnt_flush_task() misplaced kernel-doc.\nFix typos in some of the doc text.\n\nWarning(linux-2.6.23-git17//fs/proc/base.c:2280): No description found for parameter \u0027mnt\u0027\nWarning(linux-2.6.23-git17//fs/proc/base.c:2280): No description found for parameter \u0027pid\u0027\nWarning(linux-2.6.23-git17//fs/proc/base.c:2280): No description found for parameter \u0027tgid\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec2626815bf9a9922e49820b03e670e833f3ca3c",
      "tree": "c1d6ff9559a62c5636adaae7a6c7cac397762f42",
      "parents": [
        "0a4908e19fd016d60403fc76cf38b2d08d21e2d2",
        "f9e26291be31cb494c1845e356daba84b39ab059"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 12:07:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 12:07:03 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  sched: fix guest time accounting going faster than user time accounting\n"
    },
    {
      "commit": "457c25107b83bc6456b3a18a25511418dc25da69",
      "tree": "608586f887981c72d5bdf2ca1c390dbd624b4456",
      "parents": [
        "19c5870c0eefd27c6d09d867465e0571262e05d0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Remove unused variables from fs/proc/base.c\n\nWhen removing the explicit task_struct-\u003epid usage I found that\nproc_readfd_common() and proc_pident_readdir() get this field, but do not\nuse it at all.  So this cleanup is a cheap help with the task_struct-\u003epid\nisolation.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "270f722d4d5f94b02fd48eed47e57917ab00a858",
      "tree": "f6f58a0730c8968d2b4b983965b4409761616ab2",
      "parents": [
        "d85f50d5e1aa99ab082035f94265847521819e58"
      ],
      "author": {
        "name": "Eugene Teo",
        "email": "eugeneteo@kernel.sg",
        "time": "Thu Oct 18 23:40:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:42 2007 -0700"
      },
      "message": "Fix tsk-\u003eexit_state usage\n\ntsk-\u003eexit_state can only be 0, EXIT_ZOMBIE, or EXIT_DEAD.  A non-zero test\nis the same as tsk-\u003eexit_state \u0026 (EXIT_ZOMBIE | EXIT_DEAD), so just testing\ntsk-\u003eexit_state is sufficient.\n\nSigned-off-by: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d85f50d5e1aa99ab082035f94265847521819e58",
      "tree": "e0c96611352d760dfa54199e706fc76ce8975871",
      "parents": [
        "14ed9d23aa9acd79210a92ac561a728b42a8e281"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Thu Oct 18 23:40:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:42 2007 -0700"
      },
      "message": "proc: export a processes resource limits via /proc/pid\n\nCurrently, there exists no method for a process to query the resource\nlimits of another process.  They can be inferred via some mechanisms but\nthey cannot be explicitly determined.  Given that this information can be\nusefull to know during the debugging of an application, I\u0027ve written this\npatch which exports all of a processes limits via /proc/\u003cpid\u003e/limits.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bac0abd6174e427404dd197cdbefece31e97329b",
      "tree": "68ed6bd8619552c921c9fb99e83cb04fcb235a39",
      "parents": [
        "19b9b9b54e5f115907efd56be2c3799775a46561"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Isolate some explicit usage of task-\u003etgid\n\nWith pid namespaces this field is now dangerous to use explicitly, so hide\nit behind the helpers.\n\nAlso the pid and pgrp fields o task_struct and signal_struct are to be\ndeprecated.  Unfortunately this patch cannot be sent right now as this\nleads to tons of warnings, so start isolating them, and deprecate later.\n\nActually the p-\u003etgid \u003d\u003d pid has to be changed to has_group_leader_pid(),\nbut Oleg pointed out that in case of posix cpu timers this is the same, and\nthread_group_leader() is more preferable.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f4e643353aea52d80f33960bd88954a7c074f0f",
      "tree": "5b7e452f7e31be89f06a52a2c077183b7fe74c3b",
      "parents": [
        "130f77ecb2e7d5ac3e53e620f55e374f4a406b20"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: initialize the namespace\u0027s proc_mnt\n\nThe namespace\u0027s proc_mnt must be kern_mount-ed to make this pointer always\nvalid, independently of whether the user space mounted the proc or not.  This\nsolves raced in proc_flush_task, etc.  with the proc_mnt switching from NULL\nto not-NULL.\n\nThe initialization is done after the init\u0027s pid is created and hashed to make\nproc_get_sb() finr it and get for root inode.\n\nSice the namespace holds the vfsmnt, vfsmnt holds the superblock and the\nsuperblock holds the namespace we must explicitly break this circle to destroy\nall the stuff.  This is done after the init of the namespace dies.  Running a\nfew steps forward - when init exits it will kill all its children, so no\nproc_mnt will be needed after its death.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "130f77ecb2e7d5ac3e53e620f55e374f4a406b20",
      "tree": "3ae9670713a2f503faee3f77666a10dadbe87920",
      "parents": [
        "30e49c263e36341b60b735cbef5ca37912549264"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: make proc_flush_task() actually from entries from multiple namespaces\n\nThis means that proc_flush_task_mnt() is to be called for many proc mounts and\nwith different ids, depending on the namespace this pid is to be flushed from.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07543f5c75cee744b791cf7716c69571486fe753",
      "tree": "3e0d78f869114e5a6e2629fc157ee8f9023316bd",
      "parents": [
        "425fb2b4bf5dde24be4a82e9a2c344bb49ac92e4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: make proc have multiple superblocks - one for each namespace\n\nEach pid namespace have to be visible through its own proc mount.  Thus we\nneed to have per-namespace proc trees with their own superblocks.\n\nWe cannot easily show different pid namespace via one global proc tree, since\neach pid refers to different tasks in different namespaces.  E.g.  pid 1\nrefers to the init task in the initial namespace and to some other task when\nseeing from another namespace.  Moreover - pid, exisintg in one namespace may\nnot exist in the other.\n\nThis approach has one move advantage is that the tasks from the init namespace\ncan see what tasks live in another namespace by reading entries from another\nproc tree.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "198fe21b0a17fe9c68cb519ecc566534b04f122b",
      "tree": "690825669858d0f458fc137e42adf77cdf370ea4",
      "parents": [
        "7af5729474b5b8ad385adadab78d6e723e7655a3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: helpers to find the task by its numerical ids\n\nWhen searching the task by numerical id on may need to find it using global\npid (as it is done now in kernel) or by its virtual id, e.g.  when sending a\nsignal to a task from one namespace the sender will specify the task\u0027s virtual\nid and we should find the task by this value.\n\n[akpm@linux-foundation.org: fix gfs2 linkage]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60347f6716aa49831ac311e04d77ccdc50dc024a",
      "tree": "82e666fef22f43550da42ad368a61a5e9a59ef96",
      "parents": [
        "8bf9725c29f2589237dd696d06a204230add0ba3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: prepare proc_flust_task() to flush entries from multiple proc trees\n\nThe first part is trivial - we just make the proc_flush_task() to operate on\narbitrary vfsmount with arbitrary ids and pass the pid and global proc_mnt to\nit.\n\nThe other change is more tricky: I moved the proc_flush_task() call in\nrelease_task() higher to address the following problem.\n\nWhen flushing task from many proc trees we need to know the set of ids (not\njust one pid) to find the dentries\u0027 names to flush.  Thus we need to pass the\ntask\u0027s pid to proc_flush_task() as struct pid is the only object that can\nprovide all the pid numbers.  But after __exit_signal() task has detached all\nhis pids and this information is lost.\n\nThis creates a tiny gap for proc_pid_lookup() to bring some dentries back to\ntree and keep them in hash (since pids are still alive before __exit_signal())\ntill the next shrink, but since proc_flush_task() does not provide a 100%\nguarantee that the dentries will be flushed, this is OK to do so.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf7b708c8d1d7a27736771bcf4c457b332b0f818",
      "tree": "10f80257b052313b283f18ddfe35145882e0b47f",
      "parents": [
        "a6f5e06378970a2687332c2d54046245fcff1e7e"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "Make access to task\u0027s nsproxy lighter\n\nWhen someone wants to deal with some other taks\u0027s namespaces it has to lock\nthe task and then to get the desired namespace if the one exists.  This is\nslow on read-only paths and may be impossible in some cases.\n\nE.g.  Oleg recently noticed a race between unshare() and the (sent for\nreview in cgroups) pid namespaces - when the task notifies the parent it\nhas to know the parent\u0027s namespace, but taking the task_lock() is\nimpossible there - the code is under write locked tasklist lock.\n\nOn the other hand switching the namespace on task (daemonize) and releasing\nthe namespace (after the last task exit) is rather rare operation and we\ncan sacrifice its speed to solve the issues above.\n\nThe access to other task namespaces is proposed to be performed\nlike this:\n\n     rcu_read_lock();\n     nsproxy \u003d task_nsproxy(tsk);\n     if (nsproxy !\u003d NULL) {\n             / *\n               * work with the namespaces here\n               * e.g. get the reference on one of them\n               * /\n     } / *\n         * NULL task_nsproxy() means that this task is\n         * almost dead (zombie)\n         * /\n     rcu_read_unlock();\n\nThis patch has passed the review by Eric and Oleg :) and,\nof course, tested.\n\n[clg@fr.ibm.com: fix unshare()]\n[ebiederm@xmission.com: Update get_net_ns_by_pid]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.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": "2894d650cd9715d00ca196c711265819ef6ebd2d",
      "tree": "dbfe07c3276c2b6aa7d9a4be633da7fa1e12d97b",
      "parents": [
        "baf8f0f82dd79e374bf6fa9e996393df2bae3c21"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:39:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: define and use task_active_pid_ns() wrapper\n\nWith multiple pid namespaces, a process is known by some pid_t in every\nancestor pid namespace.  Every time the process forks, the child process also\ngets a pid_t in every ancestor pid namespace.\n\nWhile a process is visible in \u003e\u003d1 pid namespaces, it can see pid_t\u0027s in only\none pid namespace.  We call this pid namespace it\u0027s \"active pid namespace\",\nand it is always the youngest pid namespace in which the process is known.\n\nThis patch defines and uses a wrapper to find the active pid namespace of a\nprocess.  The implementation of the wrapper will be changed in when support\nfor multiple pid namespaces are added.\n\nChangelog:\n\t2.6.22-rc4-mm2-pidns1:\n\t- [Pavel Emelianov, Alexey Dobriyan] Back out the change to use\n\t  task_active_pid_ns() in child_reaper() since task-\u003ensproxy\n\t  can be NULL during task exit (so child_reaper() continues to\n\t  use init_pid_ns).\n\n\t  to implement child_reaper() since init_pid_ns.child_reaper to\n\t  implement child_reaper() since tsk-\u003ensproxy can be NULL during exit.\n\n\t2.6.21-rc6-mm1:\n\t- Rename task_pid_ns() to task_active_pid_ns() to reflect that a\n\t  process can have multiple pid namespaces.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47afb0f9d794d525a372c8d69902147cc88222a",
      "tree": "7bd67280e2edc1c3b1803d4a93bee794088e9342",
      "parents": [
        "858d72ead4864da0fb0b89b919524125ce998e27"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: round up the API\n\nThe set of functions process_session, task_session, process_group and\ntask_pgrp is confusing, as the names can be mixed with each other when looking\nat the code for a long time.\n\nThe proposals are to\n* equip the functions that return the integer with _nr suffix to\n  represent that fact,\n* and to make all functions work with task (not process) by making\n  the common prefix of the same name.\n\nFor monotony the routines signal_session() and set_signal_session() are\nreplaced with task_session_nr() and set_task_session(), especially since they\nare only used with the explicit task-\u003esignal dereference.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@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": "8793d854edbc2774943a4b0de3304dc73991159a",
      "tree": "380b3403a0fedfcce61d9af5af1ffbcc71017abf",
      "parents": [
        "81a6a5cdd2c5cd70874b88afe524ab09e9e869af"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: make cpusets a client of cgroups\n\nRemove the filesystem support logic from the cpusets system and makes cpusets\na cgroup subsystem\n\nThe \"cpuset\" filesystem becomes a dummy filesystem; attempts to mount it get\npassed through to the cgroup filesystem with the appropriate options to\nemulate the old cpuset filesystem behaviour.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "a424316ca154317367c7ddf89997d1c80e4a8051",
      "tree": "ed349926c41aad5be6d62c9074ff72a0d9ac32c2",
      "parents": [
        "697f41610863c9264a7ae26dac9a387c9dda8c84"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add procfs interface\n\nAdd:\n\n/proc/cgroups - general system info\n\n/proc/*/cgroup - per-task cgroup membership info\n\n[a.p.zijlstra@chello.nl: cgroups: bdi init hooks]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9e26291be31cb494c1845e356daba84b39ab059",
      "tree": "8c64fdbdb0c01aa2b73e41c5aefc06b80254dac2",
      "parents": [
        "4fa4d23fa20de67df919030c1216295664866ad7"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Oct 19 20:52:40 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 19 20:52:40 2007 +0200"
      },
      "message": "sched: fix guest time accounting going faster than user time accounting\n\ncputime_add already adds, dont do it twice.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "315e28c8d61560e90c7d9c7c56c1b661187ab307",
      "tree": "21edcc6d63a5cfb55cadfbfba9f205bb557d343c",
      "parents": [
        "3ad90ec0908e453ba89947fcf7b5f6821b6c1e0c"
      ],
      "author": {
        "name": "James Pearson",
        "email": "james-p@moving-picture.com",
        "time": "Tue Oct 16 23:30:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:00 2007 -0700"
      },
      "message": "Don\u0027t truncate /proc/PID/environ at 4096 characters\n\n/proc/PID/environ currently truncates at 4096 characters, patch based on\nthe /proc/PID/mem code.\n\nSigned-off-by: James Pearson \u003cjames-p@moving-picture.com\u003e\nCc: Anton Arapov \u003caarapov@redhat.com\u003e\nCc: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b47c3611de05c585e2d81204f6c7e3e255a3461",
      "tree": "24a14614fb9bf507b4b6ad3fa6a7cfa5a92318fb",
      "parents": [
        "41d10da3717409de33d5441f2f6d8f072ab3fbb6"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Tue Oct 16 23:27:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:53 2007 -0700"
      },
      "message": "Fix f_version type: should be u64 instead of unsigned long\n\nFix f_version type: should be u64 instead of long\n\nThere is a type inconsistency between struct inode i_version and struct file\nf_version.\n\nfs.h:\n\nstruct inode\n  u64                     i_version;\n\nand\n\nstruct file\n  unsigned long           f_version;\n\nUsers do:\n\nfs/ext3/dir.c:\n\nif (filp-\u003ef_version !\u003d inode-\u003ei_version) {\n\nSo why isn\u0027t f_version a u64 ? It becomes a problem if versions gets\nhigher than 2^32 and we are on an architecture where longs are 32 bits.\n\nThis patch changes the f_version type to u64, and updates the users accordingly.\n\nIt applies to 2.6.23-rc2-mm2.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f13ef7754f724842dbf5ae6d85d0604fff0d1a84",
      "tree": "cb2b9d5b9bbe9650df9c8a14871302dd6a5e3193",
      "parents": [
        "af49d9248fca6f26cbdb01918334f71d9040df80"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Tue Oct 16 23:26:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "report the per-irq statistics on all arches\n\nCommit 4004c69ad68dd03733179277280ea2946990ba36 avoids too many remote cpu\nreferences while reporting per-irq stats.  Since we will not have the same\nperformance penalty of bringing in remote cpu cachelines while reporting\nper-irq stats anymore, we can now afford to be consistent and report this\nstatistic on all arches, all configs.\n\nakpm: affects ia64, alpha and ppc64, mainly.\n\nKiran earlier said:\n\nRead to /proc/stat takes:\nPlain: \t2.622832\nWith speedup patch: 0.013194\nWith the per-irq stats commented out: 0.008124\n\nSo the performance problems which originally caused those architectures to\ndisable this statistic should now be fixed up.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andi Kleen \u003cak@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": "87400c04753674f546c7779abf536d2a3b5e0b7e",
      "tree": "7e4707ad13a24add92498290c942d2fe207245bd",
      "parents": [
        "9bf084f70ffde6521d113593b89461a5bd2a303b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Oct 16 23:26:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:48 2007 -0700"
      },
      "message": "fs/proc/mmu.c: headers butchery\n\nfs/proc/mmu.c consists of only one function which uses only:\n1) struct vmalloc_info *\n2) struct vm_struct *\n3) struct vmalloc_info\n4) vmlist\n5) VMALLOC_TOTAL, VMALLOC_START, VMALLOC_END\n6) read_lock, read_unlock\n7) vmlist_lock\n8) struct vm_struct\n\nThis gives us linux/spinlock.h, asm/pgtable.h, \"internal.h\", linux/vmalloc.h.\nasm/pgtable.h uses PKMAP_BASE on i386, for which asm/highmem.h is needed.\nBut, linux/highmem.h is actually used to make it compile everywhere.\nI\u0027ll deal later with this particular i386 surprise.\n\nCross-compile tested on many archs and configs.\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": "040b5c6f9503f2d6b35c335f8537bb3035d35547",
      "tree": "71f1693fbcaf9e2a953e66fdf13bbbc20510b60e",
      "parents": [
        "c4f3b63fe15b4629aa1ec163c95ab30423d0f76a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Oct 16 23:26:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:47 2007 -0700"
      },
      "message": "SLAB_PANIC more (proc, posix-timers, shmem)\n\nThese aren\u0027t modular, so SLAB_PANIC is OK.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "467c996c1e1910633fa8e7adc9b052aa3ed5f97c",
      "tree": "09e0e70160386be1bdaa12801afddf287e12c8a1",
      "parents": [
        "d9c2340052278d8eb2ffb16b0484f8f794def4de"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 16 01:26:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:00 2007 -0700"
      },
      "message": "Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo\n\nThis patch provides fragmentation avoidance statistics via /proc/pagetypeinfo.\n The information is collected only on request so there is no runtime overhead.\n The statistics are in three parts:\n\nThe first part prints information on the size of blocks that pages are\nbeing grouped on and looks like\n\nPage block order: 10\nPages per block:  1024\n\nThe second part is a more detailed version of /proc/buddyinfo and looks like\n\nFree pages count per migrate type at order       0      1      2      3      4      5      6      7      8      9     10\nNode    0, zone      DMA, type    Unmovable      0      0      0      0      0      0      0      0      0      0      0\nNode    0, zone      DMA, type  Reclaimable      1      0      0      0      0      0      0      0      0      0      0\nNode    0, zone      DMA, type      Movable      0      0      0      0      0      0      0      0      0      0      0\nNode    0, zone      DMA, type      Reserve      0      4      4      0      0      0      0      1      0      1      0\nNode    0, zone   Normal, type    Unmovable    111      8      4      4      2      3      1      0      0      0      0\nNode    0, zone   Normal, type  Reclaimable    293     89      8      0      0      0      0      0      0      0      0\nNode    0, zone   Normal, type      Movable      1      6     13      9      7      6      3      0      0      0      0\nNode    0, zone   Normal, type      Reserve      0      0      0      0      0      0      0      0      0      0      4\n\nThe third part looks like\n\nNumber of blocks type     Unmovable  Reclaimable      Movable      Reserve\nNode 0, zone      DMA            0            1            2            1\nNode 0, zone   Normal            3           17           94            4\n\nTo walk the zones within a node with interrupts disabled, walk_zones_in_node()\nis introduced and shared between /proc/buddyinfo, /proc/zoneinfo and\n/proc/pagetypeinfo to reduce code duplication.  It seems specific to what\nvmstat.c requires but could be broken out as a general utility function in\nmmzone.c if there were other other potential users.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e12ba74d8ff3e2f73a583500d7095e406df4d093",
      "tree": "a0d3385b65f0b3e1e00b0bbf11b75e7538a93edb",
      "parents": [
        "c361be55b3128474aa66d31092db330b07539103"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 16 01:25:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:00 2007 -0700"
      },
      "message": "Group short-lived and reclaimable kernel allocations\n\nThis patch marks a number of allocations that are either short-lived such as\nnetwork buffers or are reclaimable such as inode allocations.  When something\nlike updatedb is called, long-lived and unmovable kernel allocations tend to\nbe spread throughout the address space which increases fragmentation.\n\nThis patch groups these allocations together as much as possible by adding a\nnew MIGRATE_TYPE.  The MIGRATE_RECLAIMABLE type is for allocations that can be\nreclaimed on demand, but not moved.  i.e.  they can be migrated by deleting\nthem and re-reading the information from elsewhere.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "541010e4b8921cd781ff02ae68028501457045b6",
      "tree": "58bd529d4c6e69899a0aa20afa2d7f1c23326417",
      "parents": [
        "e457f790d8b05977853aa238bbc667b3bb375671",
        "5e7fc436426b1f9e106f511a049de91c82ec2c53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "message": "Merge branch \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: remove IS_ISMNDLCK macro\n  Rework /proc/locks via seq_files and seq_list helpers\n  fs/locks.c: use list_for_each_entry() instead of list_for_each()\n  NFS: clean up explicit check for mandatory locks\n  AFS: clean up explicit check for mandatory locks\n  9PFS: clean up explicit check for mandatory locks\n  GFS2: clean up explicit check for mandatory locks\n  Cleanup macros for distinguishing mandatory locks\n  Documentation: move locks.txt in filesystems/\n  locks: add warning about mandatory locking races\n  Documentation: move mandatory locking documentation to filesystems/\n  locks: Fix potential OOPS in generic_setlease()\n  Use list_first_entry in locks_wake_up_blocks\n  locks: fix flock_lock_file() comment\n  Memory shortage can result in inconsistent flocks state\n  locks: kill redundant local variable\n  locks: reverse order of posix_locks_conflict() arguments\n"
    },
    {
      "commit": "9ac52315d4cf5f561f36dabaf0720c00d3553162",
      "tree": "afe7284f34a65d2540fcb2a9b764834f9d790fa7",
      "parents": [
        "5e84cfde51cf303d368fcb48f22059f37b3872de"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "message": "sched: guest CPU accounting: add guest-CPU /proc/\u003cpid\u003e/stat fields\n\nlike for cpustat, introduce the \"gtime\" (guest time of the task) and\n\"cgtime\" (guest time of the task children) fields for the\ntasks. Modify signal_struct and task_struct.\n\nModify /proc/\u003cpid\u003e/stat to display these new fields.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nAcked-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e84cfde51cf303d368fcb48f22059f37b3872de",
      "tree": "59a55bbc56944e06c8e5940a58ff667939b92f69",
      "parents": [
        "6323469f9b72530eb90c96ba162cc70f2f4611de"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "message": "sched: guest CPU accounting: add guest-CPU /proc/stat field\n\nas recent CPUs introduce a third running state, after \"user\" and\n\"system\", we need a new field, \"guest\", in cpustat to store the time\nused by the CPU to run virtual CPU. Modify /proc/stat to display this\nnew field.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nAcked-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "2d72376b3af1e7d4d4515ebfd0f4383f2e92c343"
}
