)]}'
{
  "log": [
    {
      "commit": "aba76fdb8a5fefba73d3490563bf7c4da37b1a34",
      "tree": "eefa514957d847d1fea1b8a76755907758867aca",
      "parents": [
        "98c4d57decf97bf8ddfe948a3266aa56b38b1a51"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Dec 10 02:19:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:55:41 2006 -0800"
      },
      "message": "[PATCH] io-accounting: report in procfs\n\nAdd a simple /proc/pid/io to show the IO accounting fields.\n\nMaybe this shouldn\u0027t be merged in mainline - the preferred reporting channel\nis taskstats.  But given the poor state of our userspace support for\ntaskstats, this is useful for developer-testing, at least.  And it improves\nthe changes that the procps developers will wire it up into top(1).  Opinions\nare sought.\n\nThe patch also wires up the existing IO-accounting fields.\n\nIt\u0027s a bit racy on 32-bit machines: if process A reads process B\u0027s\n/proc/pid/io while process B is updating one of those 64-bit counters, process\nA could see an intermediate result.\n\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nCc: David Wright \u003cdaw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f4f154fd920b2178382a6a24a236348e4429ebc1",
      "tree": "0bba747eb50b5d7e18d2b828f8c707b2781d7544",
      "parents": [
        "c17bb4951752d3e0f49cd1ea9d2e868422f9e0d6"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Dec 08 02:39:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:02 2006 -0800"
      },
      "message": "[PATCH] fault injection: process filtering for fault-injection capabilities\n\nThis patch provides process filtering feature.\nThe process filter allows failing only permitted processes\nby /proc/\u003cpid\u003e/make-it-fail\n\nPlease see the example that demostrates how to inject slab allocation\nfailures into module init/cleanup code\nin Documentation/fault-injection/fault-injection.txt\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3286ed1169d74fea401367d6d4d6c6ec758a81",
      "tree": "faf5beddb797875bb92855f8606735478267959a",
      "parents": [
        "1ec320afdc9552c92191d5f89fcd1ebe588334ca"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Dec 08 02:37:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] rename struct namespace to struct mnt_namespace\n\nRename \u0027struct namespace\u0027 to \u0027struct mnt_namespace\u0027 to avoid confusion with\nother namespaces being developped for the containers : pid, uts, ipc, etc.\n\u0027namespace\u0027 variables and attributes are also renamed to \u0027mnt_ns\u0027\n\nSigned-off-by: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2fddfeefeed703b7638af97aa3048f82a2d53b03",
      "tree": "a58e1f032b3754d4c55556578a96a32a6f1715ee",
      "parents": [
        "f427f5d5d6b0eb729505a2d9c0a6cad22734a74c"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] proc: change uses of f_{dentry, vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the proc\nfilesystem code.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9711ef9945ce33b2b4ecb51a4db3f65f7d784876",
      "tree": "7292799c068fe4b14c190054e647bf8ffe42db15",
      "parents": [
        "c585646dd1d98caf0a5f2e85c794c1441df6fac1"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:38:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:40 2006 -0800"
      },
      "message": "[PATCH] make fs/proc/base.c:proc_pid_instantiate() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fb4fc68ca391862b061b3d358a288ccf6abed39",
      "tree": "5fb67541fb76957260879812d6d21ead6c4e6852",
      "parents": [
        "3b17979bda74493633364c2c263b452b7788e350"
      ],
      "author": {
        "name": "Guillem Jover",
        "email": "guillem.jover@nokia.com",
        "time": "Wed Dec 06 20:32:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] Allow user processes to raise their oom_adj value\n\nCurrently a user process cannot rise its own oom_adj value (i.e.\nunprotecting itself from the OOM killer).  As this value is stored in the\ntask structure it gets inherited and the unprivileged childs will be unable\nto rise it.\n\nThe EPERM will be handled by the generic proc fs layer, as only processes\nwith the proper caps or the owner of the process will be able to write to\nthe file.  So we allow only the processes with CAP_SYS_RESOURCE to lower\nthe value, otherwise it will get an EACCES which seems more appropriate\nthan EPERM.\n\nSigned-off-by: Guillem Jover \u003cguillem.jover@nokia.com\u003e\nAcked-by: Andrea Arcangeli \u003candrea@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "701e054e0c2db82359f0454c7ed4fd24346d52eb",
      "tree": "af052eb937237414705c425f08502517af52e680",
      "parents": [
        "2d51013ed2f2b6a5d2369b7fbbd989df1f6369e2"
      ],
      "author": {
        "name": "Vasily Tarasov",
        "email": "vtaras@openvz.org",
        "time": "Sat Nov 25 11:09:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Nov 25 13:28:33 2006 -0800"
      },
      "message": "[PATCH] mounstats NULL pointer dereference\n\nOpenVZ developers team has encountered the following problem in 2.6.19-rc6\nkernel. After some seconds of running script\n\nwhile [[ 1 ]]\ndo\n\tfind  /proc -name mountstats | xargs cat\ndone\n\nthis Oops appears:\n\nBUG: unable to handle kernel NULL pointer dereference at virtual address\n00000010\n printing eip:\nc01a6b70\n*pde \u003d 00000000\nOops: 0000 [#1]\nSMP\nModules linked in: xt_length ipt_ttl xt_tcpmss ipt_TCPMSS iptable_mangle\niptable_filter xt_multiport xt_limit ipt_tos ipt_REJECT ip_tables x_tables\nparport_pc lp parport sunrpc af_packet thermal processor fan button battery\nasus_acpi ac ohci_hcd ehci_hcd usbcore i2c_nforce2 i2c_core tg3 floppy\npata_amd\nide_cd cdrom sata_nv libata\nCPU:    1\nEIP:    0060:[\u003cc01a6b70\u003e]    Not tainted VLI\nEFLAGS: 00010246   (2.6.19-rc6 #2)\nEIP is at mountstats_open+0x70/0xf0\neax: 00000000   ebx: e6247030   ecx: e62470f8   edx: 00000000\nesi: 00000000   edi: c01a6b00   ebp: c33b83c0   esp: f4105eb4\nds: 007b   es: 007b   ss: 0068\nProcess cat (pid: 6044, ti\u003df4105000 task\u003df4104a70 task.ti\u003df4105000)\nStack: c33b83c0 c04ee940 f46a4a80 c33b83c0 e4df31b4 c01a6b00 f4105000 c0169231\n       e4df31b4 c33b83c0 c33b83c0 f4105f20 00000003 f4105000 c0169445 f2503cf0\n       f7f8c4c0 00008000 c33b83c0 00000000 00008000 c0169350 f4105f20 00008000\nCall Trace:\n [\u003cc01a6b00\u003e] mountstats_open+0x0/0xf0\n [\u003cc0169231\u003e] __dentry_open+0x181/0x250\n [\u003cc0169445\u003e] nameidata_to_filp+0x35/0x50\n [\u003cc0169350\u003e] do_filp_open+0x50/0x60\n [\u003cc01873d6\u003e] seq_read+0xc6/0x300\n [\u003cc0169511\u003e] get_unused_fd+0x31/0xc0\n [\u003cc01696d3\u003e] do_sys_open+0x63/0x110\n [\u003cc01697a7\u003e] sys_open+0x27/0x30\n [\u003cc01030bd\u003e] sysenter_past_esp+0x56/0x79\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: 45 74 8b 54 24 20 89 44 24 08 8b 42 f0 31 d2 e8 47 cb f8 ff 85 c0 89 c3\n74 51 8d 80 a0 04 00 00 e8 46 06 2c 00 8b 83 48 04 00 00 \u003c8b\u003e 78 10 85 ff 74\n03\nf0 ff 07 b0 01 86 83 a0 04 00 00 f0 ff 4b\nEIP: [\u003cc01a6b70\u003e] mountstats_open+0x70/0xf0 SS:ESP 0068:f4105eb4\n\nThe problem is that task-\u003ensproxy can be equal NULL for some time during\ntask exit. This patch fixes the BUG.\n\nSigned-off-by: Vasily Tarasov \u003cvtaras@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ac773b4f73afa6fd66695131103944b975d5d5c",
      "tree": "7a3ea0d703cde009c5f2e1196d80f06cf5d00d54",
      "parents": [
        "887b95931b4072e60e3bf4253ff7bffe372bca46"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 19 23:28:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:38 2006 -0700"
      },
      "message": "[PATCH] OOM killer meets userspace headers\n\nDespite mm.h is not being exported header, it does contain one thing\nwhich is part of userspace ABI -- value disabling OOM killer for given\nprocess. So,\na) create and export include/linux/oom.h\nb) move OOM_DISABLE define there.\nc) turn bounding values of /proc/$PID/oom_adj into defines and export\n   them too.\n\nNote: mass __KERNEL__ removal will be done later.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0187f879ee8d4b914e74ffa3cc5df268311fc2d2",
      "tree": "6c29aa7911a9a3ffc4497ea319d3fb6d1bfbd55c",
      "parents": [
        "ac08c26492a0ad4d94a25bd47d5630cd38337069"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 17 00:09:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:43 2006 -0700"
      },
      "message": "[PATCH] PROC_NUMBUF is wrong\n\nActually, the decimal representation of a 32-bit signed number can take 12\nbytes, including the \\0.\n\nAnd then some code adds a \\n as well, so let\u0027s give it 13 bytes.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a657f78dcc8ea7c53eaa1f2a45ea2315738c15f",
      "tree": "a19972027792082fed505c8d540f7d877e37c0ab",
      "parents": [
        "1c0d04c9e44f4a248335c33d2be7c7f7b06ff359"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 02 02:18:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:25 2006 -0700"
      },
      "message": "[PATCH] introduce get_task_pid() to fix unsafe get_pid()\n\nproc_pid_make_inode:\n\n\tei-\u003epid \u003d get_pid(task_pid(task));\n\nI think this is not safe.  get_pid() can be preempted after checking \"pid\n!\u003d NULL\".  Then the task exits, does detach_pid(), and RCU frees the pid.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c0d04c9e44f4a248335c33d2be7c7f7b06ff359",
      "tree": "6eb913a14a86311158e9a36cc28cd765b179b023",
      "parents": [
        "5e61feafa2c641c2a013ba94eec56c411011cc94"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:25 2006 -0700"
      },
      "message": "[PATCH] proc: comment what proc_fill_cache does\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e61feafa2c641c2a013ba94eec56c411011cc94",
      "tree": "2d6285e3261b106dc8a98cb9aa522096754c862a",
      "parents": [
        "7bcd6b0efd5216f2f208e92150b0e5b9bea2c210"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:25 2006 -0700"
      },
      "message": "[PATCH] proc: remove the useless SMP-safe comments from /proc\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7bcd6b0efd5216f2f208e92150b0e5b9bea2c210",
      "tree": "c27e9291d2579fe0914133cf9d9c18d853351a5f",
      "parents": [
        "8e95bd936df2d3fc0e773068aa34350306a5c52a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:25 2006 -0700"
      },
      "message": "[PATCH] proc: remove trailing blank entry from pid_entry arrays\n\nIt was pointed out that since I am taking ARRAY_SIZE anyway the trailing empty\nentry is silly and just wastes space.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e95bd936df2d3fc0e773068aa34350306a5c52a",
      "tree": "fe8c3cdeb892d73e2302c2595d4790e49e2ba858",
      "parents": [
        "b0fa9db6abdb2875a6d3069ddc6a2846a73fa5cd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: properly compute TGID_OFFSET\n\nThe value doesn\u0027t change but this ensures I will have the proper value when\nother files are added to proc_base_stuff.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7fbaac005cab2f3b4d6999cdb32fb93d442c5cdb",
      "tree": "5e97a4a30d7659ff688500e997387c38d042faa4",
      "parents": [
        "72d9dcfc7afd80fe98334ec23531b638ee54df8b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: Use pid_task instead of open coding it\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72d9dcfc7afd80fe98334ec23531b638ee54df8b",
      "tree": "63d03e1e77457d479d65a48ac1df11032ad9197f",
      "parents": [
        "61a28784028e6d55755e4d0f39bee8d9bf2ee8d9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: Merge proc_tid_attr and proc_tgid_attr\n\nThe implementation is exactly the same and there is currently nothing to\ndistinguish proc_tid_attr, and proc_tgid_attr.  So it is pointless to have two\nseparate implementations.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61a28784028e6d55755e4d0f39bee8d9bf2ee8d9",
      "tree": "ee114d76871f98da80ab14e9a86416da27a1787e",
      "parents": [
        "444ceed8d186631fdded5e3f24dc20b93d0d3fda"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: Remove the hard coded inode numbers\n\nThe hard coded inode numbers in proc currently limit its maintainability,\nits flexibility, and what can be done with the rest of system.  /proc limits\npid-max to 32768 on 32 bit systems it limits fd-max to 32768 on all systems,\nand placing the pid in the inode number really gets in the way of implementing\nsubdirectories of per process information.\n\nEver since people started adding to the middle of the file type enumeration we\nhaven\u0027t been maintaing the historical inode numbers, all we have really\nsucceeded in doing is keeping the pid in the proc inode number.  The pid is\nalready available in the directory name so no information is lost removing it\nfrom the inode number.\n\nSo if something in user space cares if we remove the inode number from the\n/proc inode it is almost certainly broken.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "444ceed8d186631fdded5e3f24dc20b93d0d3fda",
      "tree": "c543ebbb4d1c8448770502be32c9166f2c3ef485",
      "parents": [
        "801199ce805a2412bbcd9bfe213092ec656013dd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: Factor out an instantiate method from every lookup method\n\nTo remove the hard coded proc inode numbers it is necessary to be able to\ncreate the proc inodes during readdir.  The instantiate methods are the subset\nof lookup that is needed to accomplish that.\n\nThis first step just splits the lookup methods into 2 functions.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "801199ce805a2412bbcd9bfe213092ec656013dd",
      "tree": "18e465cd852cc8a5105fea4e08b6a63503ee8077",
      "parents": [
        "c5f2420a063fcc5a4cd6610c3ef6934827853001"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:18:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: Make the generation of the self symlink table driven\n\nThis patch generalizes the concept of files in /proc that are related to\nprocesses but live in the root directory of /proc\n\nIdeally this would reuse infrastructure from the rest of the process specific\nparts of proc but unfortunately security_task_to_inode must not be called on\nfiles that are not strictly per process.  security_task_to_inode really needs\nto be reexamined as the security label can change in important places that we\nare not currently catching, but I\u0027m not certain that simplifies this problem.\n\nBy at least matching the structure of the rest of proc we get more idiom reuse\nand it becomes easier to spot problems in the way things are put together.\n\nLater things like /proc/mounts are likely to be moved into proc_base as well.\nIf union mounts are ever supported we may be able to make /proc a union mount,\nand properly split it into 2 filesystems.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1651e14e28a2d9f446018ef522882e0709a2ce4f",
      "tree": "401ff78624fdc4b445f3f95174a223acaf6a4ca0",
      "parents": [
        "0437eb594e6e5e699248f865482e61034be846d0"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:20 2006 -0700"
      },
      "message": "[PATCH] namespaces: incorporate fs namespace into nsproxy\n\nThis moves the mount namespace into the nsproxy.  The mount namespace count\nnow refers to the number of nsproxies point to it, rather than the number of\ntasks.  As a result, the unshare_namespace() function in kernel/fork.c no\nlonger checks whether it is being shared.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20cdc894c45d2e4ab0c69e95a56b7c5ed36ae0dd",
      "tree": "889b369ebf1a54a96e8a93c2d8c49921ed2fc4b4",
      "parents": [
        "28a6d67179da6964d1640d379c5e5d4f46dd0042"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:13 2006 -0700"
      },
      "message": "[PATCH] proc: modify proc_pident_lookup to be completely table driven\n\nCurrently proc_pident_lookup gets the names and types from a table and then\nhas a huge switch statement to get the inode and file operations it needs.\nThat is silly and is becoming increasingly hard to maintain so I just put all\nof the information in the table.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28a6d67179da6964d1640d379c5e5d4f46dd0042",
      "tree": "dac1acf4a94f5718699d287603933f49df55d1e5",
      "parents": [
        "0804ef4b0de7121261f77c565b20a11ac694e877"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmisison.com",
        "time": "Mon Oct 02 02:17:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:13 2006 -0700"
      },
      "message": "[PATCH] proc: reorder the functions in base.c\n\nThere were enough changes in my last round of cleaning up proc I had to break\nup the patch series into smaller chunks, and my last chunk never got resent.\n\nThis patchset gives proc dynamic inode numbers (the static inode numbers were\na pain to maintain and prevent all kinds of things), and removes the horrible\nswitch statements that had to be kept in sync with everything else.  Being\nfully table driver takes us 90% of the way of being able to register new\nprocess specific attributes in proc.\n\nThis patch:\n\nGroup the functions by what they implement instead of by type of operation.\nAs it existed base.c was quickly approaching the point where it could not be\nfollowed.\n\nNo functionality or code changes asside from adding/removing forward\ndeclartions are implemented in this patch.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0804ef4b0de7121261f77c565b20a11ac694e877",
      "tree": "ff12e3b999dc2ce66d97fce5d76cd7df073c0d5c",
      "parents": [
        "2bc2d61a9638dab670d8361e928d1a5a291173ef"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:12 2006 -0700"
      },
      "message": "[PATCH] proc: readdir race fix (take 3)\n\nThe problem: An opendir, readdir, closedir sequence can fail to report\nprocess ids that are continually in use throughout the sequence of system\ncalls.  For this race to trigger the process that proc_pid_readdir stops at\nmust exit before readdir is called again.\n\nThis can cause ps to fail to report processes, and it is in violation of\nposix guarantees and normal application expectations with respect to\nreaddir.\n\nCurrently there is no way to work around this problem in user space short\nof providing a gargantuan buffer to user space so the directory read all\nhappens in on system call.\n\nThis patch implements the normal directory semantics for proc, that\nguarantee that a directory entry that is neither created nor destroyed\nwhile reading the directory entry will be returned.  For directory that are\neither created or destroyed during the readdir you may or may not see them.\n Furthermore you may seek to a directory offset you have previously seen.\n\nThese are the guarantee that ext[23] provides and that posix requires, and\nmore importantly that user space expects.  Plus it is a simple semantic to\nimplement reliable service.  It is just a matter of calling readdir a\nsecond time if you are wondering if something new has show up.\n\nThese better semantics are implemented by scanning through the pids in\nnumerical order and by making the file offset a pid plus a fixed offset.\n\nThe pid scan happens on the pid bitmap, which when you look at it is\nremarkably efficient for a brute force algorithm.  Given that a typical\ncache line is 64 bytes and thus covers space for 64*8 \u003d\u003d 200 pids.  There\nare only 40 cache lines for the entire 32K pid space.  A typical system\nwill have 100 pids or more so this is actually fewer cache lines we have to\nlook at to scan a linked list, and the worst case of having to scan the\nentire pid bitmap is pretty reasonable.\n\nIf we need something more efficient we can go to a more efficient data\nstructure for indexing the pids, but for now what we have should be\nsufficient.\n\nIn addition this takes no additional locks and is actually less code than\nwhat we are doing now.\n\nAlso another very subtle bug in this area has been fixed.  It is possible\nto catch a task in the middle of de_thread where a thread is assuming the\nthread of it\u0027s thread group leader.  This patch carefully handles that case\nso if we hit it we don\u0027t fail to return the pid, that is undergoing the\nde_thread dance.\n\nThanks to KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e for\nproviding the first fix, pointing this out and working on it.\n\n[oleg@tv-sign.ru: fix it]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7ca54f486d3b07f48b8bbc92705bde6ba98ee54",
      "tree": "33a464bf15016d5521c1c18f53af5c64a2cc06de",
      "parents": [
        "87d7c8aca8670a772f74766c19e0345a606b67a9"
      ],
      "author": {
        "name": "Frederik Deweerdt",
        "email": "deweerdt@free.fr",
        "time": "Fri Sep 29 02:01:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:19 2006 -0700"
      },
      "message": "[PATCH] fix mem_write() return value\n\nAt the beginning of the routine, \"copied\" is set to 0, but it is no good\nbecause in lines 805 and 812 it is set to other values.  Finally, the\nroutine returns as if it copied 12 (\u003dENOMEM) bytes less than it actually\ndid.\n\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e\nAcked-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d76fa58b050044994fe25f8753b8023f2b36737",
      "tree": "86964d8aeb297fe4346f73d812519646c7fdca20",
      "parents": [
        "92d032855e64834283de5acfb0463232e0ab128e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Sat Jul 15 12:26:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Sat Jul 15 12:26:45 2006 -0700"
      },
      "message": "Don\u0027t allow chmod() on the /proc/\u003cpid\u003e/ files\n\nThis just turns off chmod() on the /proc/\u003cpid\u003e/ files, since there is no\ngood reason to allow it, and had we disallowed it originally, the nasty\n/proc race exploit wouldn\u0027t have been possible.\n\nThe other patches already fixed the problem chmod() could cause, so this\nis really just some final mop-up..\n\nThis particular version is based off a patch by Eugene and Marcel which\nhad much better naming than my original equivalent one.\n\nSigned-off-by: Eugene Teo \u003ceteo@redhat.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ee8ab9fbf21e6b87ad227cd46c0a4be41ab749b",
      "tree": "148cf933d20fdf79096b71d03552c1c511c2db13",
      "parents": [
        "18b0bbd8ca6d3cb90425aa0d77b99a762c6d6de3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:48:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:48:03 2006 -0700"
      },
      "message": "Relax /proc fix a bit\n\nClearign all of i_mode was a bit draconian. We only really care about\nS_ISUID/ISGID, after all.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "18b0bbd8ca6d3cb90425aa0d77b99a762c6d6de3",
      "tree": "b1a9c89bc546a71924ed7253f2f27afdeb82d297",
      "parents": [
        "ab6cf0d0cb96417ef65cc2c2120c0e879edf7a4a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 16:51:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 16:51:34 2006 -0700"
      },
      "message": "Fix nasty /proc vulnerability\n\nWe have a bad interaction with both the kernel and user space being able\nto change some of the /proc file status.  This fixes the most obvious\npart of it, but I expect we\u0027ll also make it harder for users to modify\neven their \"own\" files in /proc.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "42c3e03ef6b298813557cdb997bd6db619cd65a2",
      "tree": "c2fba776ccf7015d45651ff7d2aee89f06da6f42",
      "parents": [
        "c1df7fb88a011b39ea722ac00975c5b8a803261b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Jun 26 00:26:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] SELinux: Add sockcreate node to procattr API\n\nBelow is a patch to add a new /proc/self/attr/sockcreate A process may write a\ncontext into this interface and all subsequent sockets created will be labeled\nwith that context.  This is the same idea as the fscreate interface where a\nprocess can specify the label of a file about to be created.  At this time one\nenvisioned user of this will be xinetd.  It will be able to better label\nsockets for the actual services.  At this time all sockets take the label of\nthe creating process, so all xinitd sockets would just be labeled the same.\n\nI tested this by creating a tcp sender and listener.  The sender was able to\nwrite to this new proc file and then create sockets with the specified label.\nI am able to be sure the new label was used since the avc denial messages\nkicked out by the kernel included both the new security permission\nsetsockcreate and all the socket denials were for the new label, not the label\nof the running process.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c1df7fb88a011b39ea722ac00975c5b8a803261b",
      "tree": "d3cbbe5bde859897993ceb8969a080ae71166a67",
      "parents": [
        "a872ff0cb2218dc9688b990c5ccda064dc40946b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Jun 26 00:26:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] cleanup next_tid()\n\nTry to make next_tid() a bit more readable and deletes unnecessary\n\"pid_alive(pos)\" check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a872ff0cb2218dc9688b990c5ccda064dc40946b",
      "tree": "ff94ae63e668f0229fc7aeed220def7e9708db3a",
      "parents": [
        "cc288738c9ae3c64d3c50b86604044d1f6d22941"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Jun 26 00:26:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] simplify/fix first_tid()\n\nfirst_tid:\n\n\t/* If nr exceeds the number of threads there is nothing todo */\n\tif (nr) {\n\t\tif (nr \u003e\u003d get_nr_threads(leader))\n\t\t\tgoto done;\n\t}\n\nThis is not reliable: sub-threads can exit after this check, so the\n\u0027for\u0027 loop below can overlap and proc_task_readdir() can return an\nalready filldir\u0027ed dirents.\n\n\tfor (; pos \u0026\u0026 pid_alive(pos); pos \u003d next_thread(pos)) {\n\t\tif (--nr \u003e 0)\n\t\t\tcontinue;\n\nOff-by-one error, will return \u0027leader\u0027 when nr \u003d\u003d 1.\n\nThis patch tries to fix these problems and simplify the code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc288738c9ae3c64d3c50b86604044d1f6d22941",
      "tree": "87058616bfa84572647fbe574fe733e81c1d17b6",
      "parents": [
        "df26c40e567356caeefe2861311e19c54444d917"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:26:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] proc: Remove tasklist_lock from proc_task_readdir.\n\nThis is just like my previous removal of tasklist_lock from first_tgid, and\nnext_tgid.  It simply had to wait until it was rcu safe to walk the thread\nlist.\n\nThis should be the last instance of the tasklist_lock in proc.  So user\nprocesses should not be able to influence the tasklist lock hold times.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "df26c40e567356caeefe2861311e19c54444d917",
      "tree": "415527677e85e8b612b916f6fda1645a6207d8e2",
      "parents": [
        "778c1144771f0064b6f51bee865cceb0d996f2f9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] proc: Cleanup proc_fd_access_allowed\n\nIn process of getting proc_fd_access_allowed to work it has developed a few\nwarts.  In particular the special case that always allows introspection and\nthe special case to allow inspection of kernel threads.\n\nThe special case for introspection is needed for /proc/self/mem.\n\nThe special case for kernel threads really should be overridable\nby security modules.\n\nSo consolidate these checks into ptrace.c:may_attach().\n\nThe check to always allow introspection is trivial.\n\nThe check to allow access to kernel threads, and zombies is a little\ntrickier.  mem_read and mem_write already verify an mm exists so it isn\u0027t\nneeded twice.  proc_fd_access_allowed only doesn\u0027t want a check to verify\ntask-\u003emm exits, s it prevents all access to kernel threads.  So just move\nthe task-\u003emm check into ptrace_attach where it is needed for practical\nreasons.\n\nI did a quick audit and none of the security modules in the kernel seem to\ncare if they are passed a task without an mm into security_ptrace.  So the\nabove move should be safe and it allows security modules to come up with\nmore restrictive policy.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "778c1144771f0064b6f51bee865cceb0d996f2f9",
      "tree": "1204e6d84cc5e7e75374544102839e85cfb9eba0",
      "parents": [
        "5b0c1dd38b66e2dd0cf655aa845e341b50b93ddd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] proc: Use sane permission checks on the /proc/\u003cpid\u003e/fd/ symlinks\n\nSince 2.2 we have been doing a chroot check to see if it is appropriate to\nreturn a read or follow one of these magic symlinks.  The chroot check was\nasking a question about the visibility of files to the calling process and\nit was actually checking the destination process, and not the files\nthemselves.  That test was clearly bogus.\n\nIn my first pass through I simply fixed the test to check the visibility of\nthe files themselves.  That naive approach to fixing the permissions was\ntoo strict and resulted in cases where a task could not even see all of\nit\u0027s file descriptors.\n\nWhat has disturbed me about relaxing this check is that file descriptors\nare per-process private things, and they are occasionaly used a user space\ncapability tokens.  Looking a little farther into the symlink path on /proc\nI did find userid checks and a check for capability (CAP_DAC_OVERRIDE) so\nthere were permissions checking this.\n\nBut I was still concerned about privacy.  Besides /proc there is only one\nother way to find out this kind of information, and that is ptrace.  ptrace\nhas been around for a long time and it has a well established security\nmodel.\n\nSo after thinking about it I finally realized that the permission checks\nthat make sense are the permission checks applied to ptrace_attach.  The\nchecks are simple per process, and won\u0027t cause nasty surprises for people\ncoming from less capable unices.\n\nUnfortunately there is one case that the current ptrace_attach test does\nnot cover: Zombies and kernel threads.  Single stepping those kinds of\nprocesses is impossible.  Being able to see which file descriptors are open\non these tasks is important to lsof, fuser and friends.  So for these\nspecial processes I made the rule you can\u0027t find out unless you have\nCAP_SYS_PTRACE.\n\nThese proc permission checks should now conform to the principle of least\nsurprise.  As well as using much less code to implement :)\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5b0c1dd38b66e2dd0cf655aa845e341b50b93ddd",
      "tree": "e8d3341591958d9c3e11400a2f16287a6dd00c46",
      "parents": [
        "13b41b09491e5d75e8027dca1ee78f5e073bc4c0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] proc: optimize proc_check_dentry_visible\n\nThe code doesn\u0027t need to sleep to when making this check so I can just do the\ncomparison and not worry about the reference counts.\n\nTODO: While looking at this I realized that my original cleanup did not push\nthe permission check far enough down into the stack.  The call of\nproc_check_dentry_visible needs to move out of the generic proc\nreadlink/follow link code and into the individual get_link instances.\nOtherwise the shared resources checks are not quite correct (shared\nfiles_struct does not require a shared fs_struct), and there are races with\nunshare.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13b41b09491e5d75e8027dca1ee78f5e073bc4c0",
      "tree": "3f08183a4f59075fc3015165183b8ef17cb562a6",
      "parents": [
        "99f895518368252ba862cc15ce4eb98ebbe1bec6"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] proc: Use struct pid not struct task_ref\n\nIncrementally update my proc-dont-lock-task_structs-indefinitely patches so\nthat they work with struct pid instead of struct task_ref.\n\nMostly this is a straight 1-1 substitution.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99f895518368252ba862cc15ce4eb98ebbe1bec6",
      "tree": "a9dcc01963221d1fd6a7e357b95d361ebfe91c6d",
      "parents": [
        "8578cea7509cbdec25b31d08b48a92fcc3b1a9e3"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: don\u0027t lock task_structs indefinitely\n\nEvery inode in /proc holds a reference to a struct task_struct.  If a\ndirectory or file is opened and remains open after the the task exits this\npinning continues.  With 8K stacks on a 32bit machine the amount pinned per\nfile descriptor is about 10K.\n\nNormally I would figure a reasonable per user process limit is about 100\nprocesses.  With 80 processes, with a 1000 file descriptors each I can trigger\nthe 00M killer on a 32bit kernel, because I have pinned about 800MB of useless\ndata.\n\nThis patch replaces the struct task_struct pointer with a pointer to a struct\ntask_ref which has a struct task_struct pointer.  The so the pinning of dead\ntasks does not happen.\n\nThe code now has to contend with the fact that the task may now exit at any\ntime.  Which is a little but not muh more complicated.\n\nWith this change it takes about 1000 processes each opening up 1000 file\ndescriptors before I can trigger the OOM killer.  Much better.\n\n[mlp@google.com: task_mmu small fixes]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Albert Cahalan \u003cacahalan@gmail.com\u003e\nSigned-off-by: Prasanna Meda \u003cmlp@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8578cea7509cbdec25b31d08b48a92fcc3b1a9e3",
      "tree": "8de6c9bcd4108c3311fab9e66c3be5132e6f854d",
      "parents": [
        "9cc8cbc7f8b7bc3db48bf6d59a731af728e786ce"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: make PROC_NUMBUF the buffer size for holding integers as strings\n\nCurrently in /proc at several different places we define buffers to hold a\nprocess id, or a file descriptor .  In most of them we use either a hard coded\nnumber or a different define.  Modify them all to use PROC_NUMBUF, so the code\nhas a chance of being maintained.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9cc8cbc7f8b7bc3db48bf6d59a731af728e786ce",
      "tree": "fb94d7ee120c14d7a1b56005e8cd67bcba4083e6",
      "parents": [
        "de7587343bfebc186995ad294e3de0da382eb9bc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] simply fix first_tgid\n\nLike the bug Oleg spotted in first_tid there was also a small off by one\nerror in first_tgid, when a seek was done on the /proc directory.  This\nfixes that and changes the code structure to make it a little more obvious\nwhat is going on.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de7587343bfebc186995ad294e3de0da382eb9bc",
      "tree": "db5d696d19c8255bd58929516be79409743c6081",
      "parents": [
        "454cc105ef690f2a0ba7c6b194d55666b4e918ce"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: Remove tasklist_lock from proc_pid_lookup() and proc_task_lookup()\n\nSince we no longer need the tasklist_lock for get_task_struct the lookup\nmethods no longer need the tasklist_lock.\n\nThis just depends on my previous patch that makes get_task_struct() rcu\nsafe.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454cc105ef690f2a0ba7c6b194d55666b4e918ce",
      "tree": "b3e4fef90f42ddd16afc324fcff6371e44f63255",
      "parents": [
        "0bc58a910220be3446eedc8e77fd45c0a16d8f25"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: Remove tasklist_lock from proc_pid_readdir\n\nWe don\u0027t need the tasklist_lock to safely iterate through processes\nanymore.\n\nThis depends on my previous to task patches that make get_task_struct rcu\nsafe, and that make next_task() rcu safe.  I haven\u0027t gotten\nfirst_tid/next_tid yet only because next_thread is missing an\nrcu_dereference.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0bc58a910220be3446eedc8e77fd45c0a16d8f25",
      "tree": "70ffacd6e2e22471034b053e441f305a9507a052",
      "parents": [
        "cd6a3ce9ec040c0b56ea92a81ff710417798c559"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: refactor reading directories of tasks\n\nThere are a couple of problems this patch addresses.\n- /proc/\u003ctgid\u003e/task currently does not work correctly if you stop reading\n  in the middle of a directory.\n\n- /proc/ currently requires a full pass through the task list with\n  the tasklist lock held, to determine there are no more processes to read.\n\n- The hand rolled integer to string conversion does not properly running\n  out of buffer space.\n\n- We seem to be batching reading of pids from the tasklist without reason,\n  and complicating the logic of the code.\n\nThis patch addresses that by changing how tasks are processed.  A\nfirst_\u003ctask_type\u003e function is built that handles restarts, and a\nnext_\u003ctask_type\u003e function is built that just advances to the next task.\n\nfirst_\u003ctask_type\u003e when it detects a restart usually uses find_task_by_pid.  If\nthat doesn\u0027t work because there has been a seek on the directory, or we have\nalready given a complete directory listing, it first checks the number tasks\nof that type, and only if we are under that count does it walk through all of\nthe tasks to find the one we are interested in.\n\nThe code that fills in the directory is simpler because there is only a single\nfor loop.\n\nThe hand rolled integer to string conversion is replaced by snprintf which\nshould handle the the out of buffer case correctly.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd6a3ce9ec040c0b56ea92a81ff710417798c559",
      "tree": "350c0b4bb63a971c9409be8459a45b690ef4ac67",
      "parents": [
        "48e6484d49020dba3578ad117b461e8a391e8f0f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: Close the race of a process dying durning lookup\n\nproc_lookup and task exiting are not synchronized, although some of the\nprevious code may have suggested that.  Every time before we reuse a dentry\nnamei.c calls d_op-\u003ederevalidate which prevents us from reusing a stale dcache\nentry.  Unfortunately it does not prevent us from returning a stale dcache\nentry.  This race has been explicitly plugged in proc_pid_lookup but there is\nnothing to confine it to just that proc lookup function.\n\nSo to prevent the race I call revalidate explictily in all of the proc lookup\nfunctions after I call d_add, and report an error if the revalidate does not\nsucceed.\n\nYears ago Al Viro did something similar but those changes got lost in the\nchurn.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48e6484d49020dba3578ad117b461e8a391e8f0f",
      "tree": "7824ca84bfe71c3fe2c09a1fedc31106fec4f500",
      "parents": [
        "662795deb854b31501e0ffb42b7f0cce802c134a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Rewrite the proc dentry flush on exit optimization\n\nTo keep the dcache from filling up with dead /proc entries we flush them on\nprocess exit.  However over the years that code has gotten hairy with a\ndentry_pointer and a lock in task_struct and misdocumented as a correctness\nfeature.\n\nI have rewritten this code to look and see if we have a corresponding entry in\nthe dcache and if so flush it on process exit.  This removes the extra fields\nin the task_struct and allows me to trivially handle the case of a\n/proc/\u003ctgid\u003e/task/\u003cpid\u003e entry as well as the current /proc/\u003cpid\u003e entries.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "662795deb854b31501e0ffb42b7f0cce802c134a",
      "tree": "d4849ad5ca7383ca9d0c9b6d46db83097d5dba85",
      "parents": [
        "6e66b52bf587f0dd9a8e0a581b9570e5c1969e33"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Move proc_maps_operations into task_mmu.c\n\nAll of the functions for proc_maps_operations are already defined in\ntask_mmu.c so move the operations structure to keep the functionality\ntogether.\n\nSince task_nommu.c implements a dummy version of /proc/\u003cpid\u003e/maps give it a\nsimplified version of proc_maps_operations that it can modify to best suit its\nneeds.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e66b52bf587f0dd9a8e0a581b9570e5c1969e33",
      "tree": "18b630e89490f7e01ee45f07a427fded50a1c6cf",
      "parents": [
        "0f2fe20f55c85f26efaf14feeb69c7c2eb3f7a75"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Fix the link count for /proc/\u003cpid\u003e/task\n\nUse getattr to get an accurate link count when needed.  This is cheaper and\nmore accurate than trying to derive it by walking the thread list of a\nprocess.\n\nEspecially as it happens when needed stat instead of at readdir time.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f2fe20f55c85f26efaf14feeb69c7c2eb3f7a75",
      "tree": "93649d0579bed2ed43e69f03c06b325bdb0c312e",
      "parents": [
        "22c2c5d75e6ad4b9ac41269476b32ba8c9fe263f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Properly filter out files that are not visible to a process\n\nLong ago and far away in 2.2 we started checking to ensure the files we\ndisplayed in /proc were visible to the current process.  It was an\nunsophisticated time and no one was worried about functions full of FIXMES in\na stable kernel.  As time passed the function became sacred and was enshrined\nin the shrine of how things have always been.  The fixes came in but only to\nkeep the function working no one really remembering or documenting why we did\nthings that way.\n\nThe intent and the functionality make a lot of sense.  Don\u0027t let /proc be an\naccess point for files a process can see no other way.  The implementation\nhowever is completely wrong.\n\nWe are currently checking the root directories of the two processes, we are\nnot checking the actual file descriptors themselves.\n\nWe are strangely checking with a permission method instead of just when we use\nthe data.\n\nThis patch fixes the logic to actually check the file descriptors and make a\nnote that implementing a permission method for this part of /proc almost\ncertainly indicates a bug in the reasoning.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22c2c5d75e6ad4b9ac41269476b32ba8c9fe263f",
      "tree": "568754afe4d00da3ecaee4a960021e596d0e4beb",
      "parents": [
        "68602066c3327fa340899609d715781eda423751"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Kill proc_mem_inode_operations\n\nThe inode operations only exist to support the proc_permission function.\nCurrently mem_read and mem_write have all the same permission checks as\nptrace.  The fs check makes no sense in this context, and we can trivially get\naround it by calling ptrace.\n\nSo simply the code by killing the strange weird case.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68602066c3327fa340899609d715781eda423751",
      "tree": "fdd1db5b08755bf2c353364b56a778f62e5009f4",
      "parents": [
        "aed7a6c476d90660ac5af860158407ae9fe61c68"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Remove bogus proc_task_permission\n\nFirst we can access every /proc/\u003ctgid\u003e/task/\u003cpid\u003e directory as /proc/\u003cpid\u003e so\nproc_task_permission is not usefully limiting visibility.\n\nSecond having related filesystems information should have nothing to do with\nprocess visibility.  kill does not implement any checks like that.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aed7a6c476d90660ac5af860158407ae9fe61c68",
      "tree": "b8b92412f457598a2348de0eb304b9b4ec204157",
      "parents": [
        "87bfbf679ffb1e95dd9ada694f66aafc4bfa5959"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Replace proc_inode.type with proc_inode.fd\n\nThe sole renaming use of proc_inode.type is to discover the file descriptor\nnumber, so just store the file descriptor number and don\u0027t wory about\nprocessing this field.  This removes any /proc limits on the maximum number of\nfile descriptors, and clears the path to make the hard coded /proc inode\nnumbers go away.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "87bfbf679ffb1e95dd9ada694f66aafc4bfa5959",
      "tree": "f4f549435f64bd1c42594dcb4d27d9de92e379f6",
      "parents": [
        "167965495153ba9829d0a34b6800dbf5d94de8c8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:23 2006 -0700"
      },
      "message": "[PATCH] proc: Simplify the ownership rules for /proc\n\nCurrently in /proc if the task is dumpable all of files are owned by the tasks\neffective users.  Otherwise the files are owned by root.  Unless it is the\n/proc/\u003ctgid\u003e/ or /proc/\u003ctgid\u003e/task/\u003cpid\u003e directory in that case we always make\nthe directory owned by the effective user.\n\nHowever the special case for directories is pointless except as a way to read\nthe effective user, because the permissions on both of those directories are\nworld readable, and executable.\n\n/proc/\u003ctgid\u003e/status provides a much better way to read a processes effecitve\nuserid, so it is silly to try to provide that on the directory.\n\nSo this patch simplifies the code by removing a pointless special case and\ngets us one step closer to being able to remove the hard coded /proc inode\nnumbers.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "167965495153ba9829d0a34b6800dbf5d94de8c8",
      "tree": "ee923581fc2fb1a9bcae7920a8a362fed7b55705",
      "parents": [
        "ff9724a3f7a69f7b443c05981f84e28017c2fc5a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:23 2006 -0700"
      },
      "message": "[PATCH] proc: Remove unnecessary and misleading assignments from proc_pid_make_inode\n\nThe removed fields are already set by proc_alloc_inode.  Initializing them in\nproc_alloc_inode implies they need it for proper cleanup.  At least ei-\u003epde\nwas not set on all paths making it look like proc_alloc_inode was buggy.  So\njust remove the redundant assignments.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ff9724a3f7a69f7b443c05981f84e28017c2fc5a",
      "tree": "2c3fae763eb68d18645b4820e2189dc5d0ceabf5",
      "parents": [
        "5634708b5fce807bdf2091cfafc2fb24d791f0c8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:23 2006 -0700"
      },
      "message": "[PATCH] proc: Remove useless BKL in proc_pid_readlink\n\nWe already call everything except do_proc_readlink outside of the BKL in\nproc_pid_followlink, and there appears to be nothing in do_proc_readlink that\nneeds any special protection.\n\nSo remove this leftover from one of the BKL cleanup efforts.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5634708b5fce807bdf2091cfafc2fb24d791f0c8",
      "tree": "dc383be7cd284c9364d90147bdea981b3d9cb5d4",
      "parents": [
        "f05e15b59467d97c30fbffed80db9e00b73d640b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:23 2006 -0700"
      },
      "message": "[PATCH] proc: Fix the .. inode number on /proc/\u003cpid\u003e/fd\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4eb582cf1fbd7b9e5f466e3718a59c957e75254e",
      "tree": "4387e460a50efa8d46a54526d0cf0959c0e3b428",
      "parents": [
        "06ec7be557a1259611d6093a00463c42650dc71a"
      ],
      "author": {
        "name": "Michael LeMay",
        "email": "mdlemay@epoch.ncsc.mil",
        "time": "Mon Jun 26 00:24:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:18 2006 -0700"
      },
      "message": "[PATCH] keys: add a way to store the appropriate context for newly-created keys\n\nAdd a /proc/\u003cpid\u003e/attr/keycreate entry that stores the appropriate context for\nnewly-created keys.  Modify the selinux_key_alloc hook to make use of the new\nentry.  Update the flask headers to include a new \"setkeycreate\" permission\nfor processes.  Update the flask headers to include a new \"create\" permission\nfor keys.  Use the create permission to restrict which SIDs each task can\nassign to newly-created keys.  Add a new parameter to the security hook\n\"security_key_alloc\" to indicate whether it is being invoked by the kernel, or\nfrom userspace.  If it is being invoked by the kernel, the security hook\nshould never fail.  Update the documentation to reflect these changes.\n\nSigned-off-by: Michael LeMay \u003cmdlemay@epoch.ncsc.mil\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0182909297da8d38a5d473ae7bee3d0324632a1",
      "tree": "0c5c06bac1d626ba66aba1142f439b0f34c75282",
      "parents": [
        "ac03221a4fdda9bfdabf99bcd129847f20fc1d80"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 18 08:28:02 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:24 2006 -0400"
      },
      "message": "[PATCH] proc_loginuid_write() uses simple_strtoul() on non-terminated array\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ca99c1da080345e227cfb083c330a184d42e27f3",
      "tree": "e417b4c456ae31dc1dde8027b6be44a1a9f19395",
      "parents": [
        "fb30d64568fd8f6a21afef987f11852a109723da"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Tue Apr 18 22:21:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:51 2006 -0700"
      },
      "message": "[PATCH] Fix file lookup without ref\n\nThere are places in the kernel where we look up files in fd tables and\naccess the file structure without holding refereces to the file.  So, we\nneed special care to avoid the race between looking up files in the fd\ntable and tearing down of the file in another CPU.  Otherwise, one might\nsee a NULL f_dentry or such torn down version of the file.  This patch\nfixes those special places where such a race may happen.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4e5d3fc80d26ed26ebe42907b224f08d7eccfbf",
      "tree": "081fc0bb38f91caa3b546ae030c03b87e3807b04",
      "parents": [
        "158d9ebd19280582da172626ad3edda1a626dace"
      ],
      "author": {
        "name": "Herbert Poetzl",
        "email": "herbert@13thfloor.at",
        "time": "Fri Mar 31 02:31:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] cleanup in proc_check_chroot()\n\nproc_check_chroot() does the check in a very unintuitive way (keeping a\ncopy of the argument, then modifying the argument), and has uncommented\nsideeffects.\n\nSigned-off-by: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b4629fe2f094b719847f31be1ee5ab38300038b2",
      "tree": "158b3aabf291ef9462e3e02493fb4c45265f9e8e",
      "parents": [
        "1356b8c28d67cafd74f7e7dcfb39bf53681790a5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "message": "VFS: New /proc file /proc/self/mountstats\n\nCreate a new file under /proc/self, called mountstats, where mounted file\nsystems can export information (configuration options, performance counters,\nand so on).  Use a mechanism similar to /proc/mounts and s_ops-\u003eshow_options.\n\nThis mechanism does not violate namespace security, and is safe to use while\nother processes are unmounting file systems.\n\nThanks to Mike Waychison for his review and comments.\n\nTest-plan:\nTest concurrent mount/unmount operations while cat\u0027ing /proc/self/mountstats.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16f7e0fe2ecc30f30652e8185e1772cdebe39109",
      "tree": "e668703267c7b02f1af3cc1581bb4366a5370fdd",
      "parents": [
        "c59ede7b78db329949d9cdcd7064e22d357560ef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (fs/)\n\nfs: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5addc5dd8836aa061f6efc4a0d9ba6323726297a",
      "tree": "a5ce3703bbb421c93482b6043ebd57137276808f",
      "parents": [
        "1abe77b0fc4b485927f1f798ae81a752677e1d05"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 07 17:15:49 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] make /proc/mounts pollable\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63c6764ce4c650245a41a95a2235207d25ca4fde",
      "tree": "7d719c49948440bb23cb07b6cb8938507b1c16e2",
      "parents": [
        "2d1f87a728a5ddd9ee0418e14a12e5cb0372fad1"
      ],
      "author": {
        "name": "Yoshinori Sato",
        "email": "ysato@users.sourceforge.jp",
        "time": "Fri Oct 14 15:59:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 14 17:10:13 2005 -0700"
      },
      "message": "[PATCH] nommu build error fix\n\n\"proc_smaps_operations\" is not defined in case of \"CONFIG_MMU\u003dn\".\n\nSigned-off-by: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0678e5feaab8b359b18858e8532bb6017edb112b",
      "tree": "41b09ba42b40f75afebd2408d5e101ef214000b5",
      "parents": [
        "e53897e2fb48526a62116ef8e72d7441d5ee8752"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Sep 22 21:43:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:33 2005 -0700"
      },
      "message": "[PATCH] proc_task_root_link c99 fix\n\nfs/proc/base.c: In function `proc_task_root_link\u0027:\nfs/proc/base.c:364: warning: ISO C90 forbids mixed declarations and code\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66dcca062847bcd261ebb3ac96d51101f31a8630",
      "tree": "12f23a499ae0af8107d0c4a3afcff75e6697fa3b",
      "parents": [
        "d79e743e9fcf03f521300a970eb1ab69641910ba"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Mon Sep 19 18:26:12 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 21 09:15:34 2005 -0700"
      },
      "message": "[PATCH] Fix invisible threads problem\n\nWhen the main thread of a thread group has done pthread_exit() and died,\nthe other threads are still happily running, but will not be visible\nunder /proc because their leader is no longer accessible.\n\nThis fixes the access control so that we can see the sub-threads again.\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nAcked-by: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b835996f628eadb55c5fb222ba46fe9395bf73c7",
      "tree": "d63d80585d197e1ffc299af4a0034049790fb197",
      "parents": [
        "ab2af1f5005069321c5d130f09cce577b03f43ef"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: lock-free fd look-up\n\nWith the use of RCU in files structure, the look-up of files using fds can now\nbe lock-free.  The lookup is protected by rcu_read_lock()/rcu_read_unlock().\nThis patch changes the readers to use lock-free lookup.\n\nSigned-off-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran_th@gmail.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab8d11beb46f0bd0617e04205c01f5c1fe845b61",
      "tree": "33b5aa5b63268b8f4d1428d74547fd351bb37113",
      "parents": [
        "5e21ccb136047e556acf0fdf227cab5db05c1c25"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] remove duplicated code from proc and ptrace\n\nExtract common code used by ptrace_attach() and may_ptrace_attach()\ninto a separate function.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e21ccb136047e556acf0fdf227cab5db05c1c25",
      "tree": "9d488f2e24b939f61c52563eaeff8b6e718ba3b6",
      "parents": [
        "0494f6ec5d3a015d53b57e37280b93c19446676a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] fix enum pid_directory_inos in proc/base.c\n\nThis patch fixes wrongly placed elements in the pid_directory_inos\nenum.  Also add comment so this mistake is not repeated.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0494f6ec5d3a015d53b57e37280b93c19446676a",
      "tree": "b48855ab886d962d50807047eeff086ee50b882a",
      "parents": [
        "09dd17d3e5e43ea6d3f3a12829108c4ca13ff810"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] use get_fs_struct() in proc\n\nThis patch cleans up proc_cwd_link() and proc_root_link() by factoring\nout common code into get_fs_struct().\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e070ad49f31155d872d8e96cab2142840993e3c0",
      "tree": "16d5bfd3d7627d6616c6b1008fac80e4cf77379e",
      "parents": [
        "00e145b6d59a16dd7740197a18f7abdb3af004a9"
      ],
      "author": {
        "name": "Mauricio Lin",
        "email": "mauriciolin@gmail.com",
        "time": "Sat Sep 03 15:55:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:49 2005 -0700"
      },
      "message": "[PATCH] add /proc/pid/smaps\n\nAdd a \"smaps\" entry to /proc/pid: show howmuch memory is resident in each\nmapping.\n\nPeople that want to perform a memory consumption analysing can use it\nmainly if someone needs to figure out which libraries can be reduced for\nembedded systems.  So the new features are the physical size of shared and\nclean [or dirty]; private and clean [or dirty].\n\nTake a look the example below:\n\n# cat /proc/4576/smaps\n\n08048000-080dc000 r-xp /bin/bash\nSize:               592 KB\nRss:                500 KB\nShared_Clean:       500 KB\nShared_Dirty:         0 KB\nPrivate_Clean:        0 KB\nPrivate_Dirty:        0 KB\n080dc000-080e2000 rw-p /bin/bash\nSize:                24 KB\nRss:                 24 KB\nShared_Clean:         0 KB\nShared_Dirty:         0 KB\nPrivate_Clean:        0 KB\nPrivate_Dirty:       24 KB\n080e2000-08116000 rw-p\nSize:               208 KB\nRss:                208 KB\nShared_Clean:         0 KB\nShared_Dirty:         0 KB\nPrivate_Clean:        0 KB\nPrivate_Dirty:      208 KB\nb7e2b000-b7e34000 r-xp /lib/tls/libnss_files-2.3.2.so\nSize:                36 KB\nRss:                 12 KB\nShared_Clean:        12 KB\nShared_Dirty:         0 KB\nPrivate_Clean:        0 KB\nPrivate_Dirty:        0 KB\n...\n\n(Includes a cleanup from \"Richard Purdie\" \u003crpurdie@rpsys.net\u003e)\n\nFrom: Torsten Foertsch \u003ctorsten.foertsch@gmx.net\u003e\n\nshow_smap calls first show_map and then prints its additional information to\nthe seq_file.  show_map checks if all it has to print fits into the buffer and\nif yes marks the current vma as written.  While that is correct for show_map\nit is not for show_smap.  Here the vma should be marked as written only after\nthe additional information is also written.\n\nThe attached patch cures the problem.  It moves the functionality of the\nshow_map function to a new function show_map_internal that is called with an\nadditional struct mem_size_stats* argument.  Then show_map calls\nshow_map_internal with NULL as struct mem_size_stats* whereas show_smap calls\nit with a real pointer.  Now the final\n\n\tif (m-\u003ecount \u003c m-\u003esize)  /* vma is copied successfully */\n\t\tm-\u003eversion \u003d (vma !\u003d get_gate_vma(task))? vma-\u003evm_start: 0;\n\nis done only if the whole entry fits into the buffer.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e21c8f145f5052c1c2fb4a4b41bee01c848159b",
      "tree": "0b956cfbd67636c19be79fc0cbe0a5ed89fb6b9a",
      "parents": [
        "839b9685e80592809d6dfdd865986cd1b5ddc2fb"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Sep 03 15:54:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:43 2005 -0700"
      },
      "message": "[PATCH] /proc/\u003cpid\u003e/numa_maps to show on which nodes pages reside\n\nThis patch was recently discussed on linux-mm:\nhttp://marc.theaimsgroup.com/?t\u003d112085728500002\u0026r\u003d1\u0026w\u003d2\n\nI inherited a large code base from Ray for page migration.  There was a\nsmall patch in there that I find to be very useful since it allows the\ndisplay of the locality of the pages in use by a process.  I reworked that\npatch and came up with a /proc/\u003cpid\u003e/numa_maps that gives more information\nabout the vma\u0027s of a process.  numa_maps is indexes by the start address\nfound in /proc/\u003cpid\u003e/maps.  F.e.  with this patch you can see the page use\nof the \"getty\" process:\n\nmargin:/proc/12008 # cat maps\n00000000-00004000 r--p 00000000 00:00 0\n2000000000000000-200000000002c000 r-xp 00000000 08:04 516                /lib/ld-2.3.3.so\n2000000000038000-2000000000040000 rw-p 00028000 08:04 516                /lib/ld-2.3.3.so\n2000000000040000-2000000000044000 rw-p 2000000000040000 00:00 0\n2000000000058000-2000000000260000 r-xp 00000000 08:04 54707842           /lib/tls/libc.so.6.1\n2000000000260000-2000000000268000 ---p 00208000 08:04 54707842           /lib/tls/libc.so.6.1\n2000000000268000-2000000000274000 rw-p 00200000 08:04 54707842           /lib/tls/libc.so.6.1\n2000000000274000-2000000000280000 rw-p 2000000000274000 00:00 0\n2000000000280000-20000000002b4000 r--p 00000000 08:04 9126923            /usr/lib/locale/en_US.utf8/LC_CTYPE\n2000000000300000-2000000000308000 r--s 00000000 08:04 60071467           /usr/lib/gconv/gconv-modules.cache\n2000000000318000-2000000000328000 rw-p 2000000000318000 00:00 0\n4000000000000000-4000000000008000 r-xp 00000000 08:04 29576399           /sbin/mingetty\n6000000000004000-6000000000008000 rw-p 00004000 08:04 29576399           /sbin/mingetty\n6000000000008000-600000000002c000 rw-p 6000000000008000 00:00 0          [heap]\n60000fff7fffc000-60000fff80000000 rw-p 60000fff7fffc000 00:00 0\n60000ffffff44000-60000ffffff98000 rw-p 60000ffffff44000 00:00 0          [stack]\na000000000000000-a000000000020000 ---p 00000000 00:00 0                  [vdso]\n\ncat numa_maps\n2000000000000000 default MaxRef\u003d43 Pages\u003d11 Mapped\u003d11 N0\u003d4 N1\u003d3 N2\u003d2 N3\u003d2\n2000000000038000 default MaxRef\u003d1 Pages\u003d2 Mapped\u003d2 Anon\u003d2 N0\u003d2\n2000000000040000 default MaxRef\u003d1 Pages\u003d1 Mapped\u003d1 Anon\u003d1 N0\u003d1\n2000000000058000 default MaxRef\u003d43 Pages\u003d61 Mapped\u003d61 N0\u003d14 N1\u003d15 N2\u003d16 N3\u003d16\n2000000000268000 default MaxRef\u003d1 Pages\u003d2 Mapped\u003d2 Anon\u003d2 N0\u003d2\n2000000000274000 default MaxRef\u003d1 Pages\u003d3 Mapped\u003d3 Anon\u003d3 N0\u003d3\n2000000000280000 default MaxRef\u003d8 Pages\u003d3 Mapped\u003d3 N0\u003d3\n2000000000300000 default MaxRef\u003d8 Pages\u003d2 Mapped\u003d2 N0\u003d2\n2000000000318000 default MaxRef\u003d1 Pages\u003d1 Mapped\u003d1 Anon\u003d1 N2\u003d1\n4000000000000000 default MaxRef\u003d6 Pages\u003d2 Mapped\u003d2 N1\u003d2\n6000000000004000 default MaxRef\u003d1 Pages\u003d1 Mapped\u003d1 Anon\u003d1 N0\u003d1\n6000000000008000 default MaxRef\u003d1 Pages\u003d1 Mapped\u003d1 Anon\u003d1 N0\u003d1\n60000fff7fffc000 default MaxRef\u003d1 Pages\u003d1 Mapped\u003d1 Anon\u003d1 N0\u003d1\n60000ffffff44000 default MaxRef\u003d1 Pages\u003d1 Mapped\u003d1 Anon\u003d1 N0\u003d1\n\ngetty uses ld.so.  The first vma is the code segment which is used by 43\nother processes and the pages are evenly distributed over the 4 nodes.\n\nThe second vma is the process specific data portion for ld.so.  This is\nonly one page.\n\nThe display format is:\n\n\u003cstartaddress\u003e\t Links to information in /proc/\u003cpid\u003e/map\n\u003cmemory policy\u003e  This can be \"default\" \"interleave\u003d{}\", \"prefer\u003d\u003cnode\u003e\" or \"bind\u003d{\u003czones\u003e}\"\nMaxRef\u003d\t\t\u003cmaximum reference to a page in this vma\u003e\nPages\u003d\t\t\u003cNr of pages in use\u003e\nMapped\u003d\t\t\u003cNr of pages with mapcount \u003e\nAnon\u003d\t\t\u003cnr of anonymous pages\u003e\nNx\u003d\t\t\u003cNr of pages on Node x\u003e\n\nThe content of the proc-file is self-evident.  If this would be tied into\nthe sparsemem system then the contents of this file would not be too\nuseful.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "008b150a3c4d971cd65d02d107b8fcc860bc959c",
      "tree": "8594c24dbb13dc253f41ef885a8ac899f0e434c1",
      "parents": [
        "cc314eef0128a807e50fa03baf2d0abc0647952c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sat Aug 20 00:17:39 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 19 18:08:21 2005 -0700"
      },
      "message": "[PATCH] Fix up symlink function pointers\n\nThis fixes up the symlink functions for the calling convention change:\n\n * afs, autofs4, befs, devfs, freevxfs, jffs2, jfs, ncpfs, procfs,\n   smbfs, sysvfs, ufs, xfs - prototype change for -\u003efollow_link()\n * befs, smbfs, xfs - same for -\u003eput_link()\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6e711448137ca3301512cec41a2c2ce852b3d0a",
      "tree": "f0765ebd90fdbdf270c05fcd7f3d32b24ba56681",
      "parents": [
        "8b0914ea7475615c7c8965c1ac8fe4069270f25c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 23 00:09:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] setuid core dump\n\nAdd a new `suid_dumpable\u0027 sysctl:\n\nThis value can be used to query and set the core dump mode for setuid\nor otherwise protected/tainted binaries. The modes are\n\n0 - (default) - traditional behaviour.  Any process which has changed\n    privilege levels or is execute only will not be dumped\n\n1 - (debug) - all processes dump core when possible.  The core dump is\n    owned by the current user and no security is applied.  This is intended\n    for system debugging situations only.  Ptrace is unchecked.\n\n2 - (suidsafe) - any binary which normally would not be dumped is dumped\n    readable by root only.  This allows the end user to remove such a dump but\n    not access it directly.  For security reasons core dumps in this mode will\n    not overwrite one another or other files.  This mode is appropriate when\n    adminstrators are attempting to debug problems in a normal environment.\n\n(akpm:\n\n\u003e \u003e +EXPORT_SYMBOL(suid_dumpable);\n\u003e\n\u003e EXPORT_SYMBOL_GPL?\n\nNo problem to me.\n\n\u003e \u003e  \tif (current-\u003eeuid \u003d\u003d current-\u003euid \u0026\u0026 current-\u003eegid \u003d\u003d current-\u003egid)\n\u003e \u003e  \t\tcurrent-\u003emm-\u003edumpable \u003d 1;\n\u003e\n\u003e Should this be SUID_DUMP_USER?\n\nActually the feedback I had from last time was that the SUID_ defines\nshould go because its clearer to follow the numbers. They can go\neverywhere (and there are lots of places where dumpable is tested/used\nas a bool in untouched code)\n\n\u003e Maybe this should be renamed to `dump_policy\u0027 or something.  Doing that\n\u003e would help us catch any code which isn\u0027t using the #defines, too.\n\nFair comment. The patch was designed to be easy to maintain for Red Hat\nrather than for merging. Changing that field would create a gigantic\ndiff because it is used all over the place.\n\n)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27b030d58c8e72fc7a95187a791bd9406e350f02",
      "tree": "ab3bab7f39a5ce5bab65578a7e08fa4dfdeb198c",
      "parents": [
        "79d20b14a0d651f15b0ef9a22b6cf12d284a6d38",
        "6628465e33ca694bd8fd5c3cf4eb7ff9177bc694"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Tue May 03 08:14:09 2005 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Tue May 03 08:14:09 2005 +0100"
      },
      "message": "Merge with master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n\n"
    },
    {
      "commit": "67be2dd1bace0ec7ce2dbc1bba3f8df3d7be597e",
      "tree": "317d114a0288d3b19ef9902f94b536a5a8731dbd",
      "parents": [
        "6013d5445f9a6d0b28090027868f455c5012d1cc"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "message": "[PATCH] DocBook: fix some descriptions\n\nSome KernelDoc descriptions are updated to match the current code.\nNo code changes.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4dc3b16ba18c0f967ad100c52fa65b01a4f76ff0",
      "tree": "fa038ad8969980eec6cef5b737872fda9feb4c6a",
      "parents": [
        "333f981720d619e2038b980a55ad01b10580eb9f"
      ],
      "author": {
        "name": "Pavel Pisa",
        "email": "pisa@cmp.felk.cvut.cz",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "message": "[PATCH] DocBook: changes and extensions to the kernel documentation\n\nI have recompiled Linux kernel 2.6.11.5 documentation for me and our\nuniversity students again.  The documentation could be extended for more\nsources which are equipped by structured comments for recent 2.6 kernels.  I\nhave tried to proceed with that task.  I have done that more times from 2.6.0\ntime and it gets boring to do same changes again and again.  Linux kernel\ncompiles after changes for i386 and ARM targets.  I have added references to\nsome more files into kernel-api book, I have added some section names as well.\n So please, check that changes do not break something and that categories are\nnot too much skewed.\n\nI have changed kernel-doc to accept \"fastcall\" and \"asmlinkage\" words reserved\nby kernel convention.  Most of the other changes are modifications in the\ncomments to make kernel-doc happy, accept some parameters description and do\nnot bail out on errors.  Changed \u003cpid\u003e to @pid in the description, moved some\n#ifdef before comments to correct function to comments bindings, etc.\n\nYou can see result of the modified documentation build at\n  http://cmp.felk.cvut.cz/~pisa/linux/lkdb-2.6.11.tar.gz\n\nSome more sources are ready to be included into kernel-doc generated\ndocumentation.  Sources has been added into kernel-api for now.  Some more\nsection names added and probably some more chaos introduced as result of quick\ncleanup work.\n\nSigned-off-by: Pavel Pisa \u003cpisa@cmp.felk.cvut.cz\u003e\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f246315e1ab96c40978777d1e159820ecca45aa8",
      "tree": "32ed8f99da48313838d5aa863f5d3e7ed984213f",
      "parents": [
        "bcf88e1163623e8e8ef2ba7feface9c826a890c9"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Sun May 01 08:59:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:03 2005 -0700"
      },
      "message": "[PATCH] procfs: Fix hardlink counts for /proc/\u003cPID\u003e/task\n\nThe current logic assumes that a /proc/\u003cPID\u003e/task directory should have a\nhardlink count of 3, probably counting \".\", \"..\", and a directory for a\nsingle child task.\n\nIt\u0027s fairly obvious that this doesn\u0027t work out correctly when a PID has\nmore than one child task, which is quite often the case.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bcf88e1163623e8e8ef2ba7feface9c826a890c9",
      "tree": "b385deef7d18d781d8f9e02af40c7bce3f43885d",
      "parents": [
        "7f261b5f0dccd53ed3a9a95b55c36e24a698a92a"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Sun May 01 08:59:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:03 2005 -0700"
      },
      "message": "[PATCH] procfs: Fix hardlink counts\n\nThe pid directories in /proc/ currently return the wrong hardlink count - 3,\nwhen there are actually 4 : \".\", \"..\", \"fd\", and \"task\".\n\nThis is easy to notice using find(1):\n\tcd /proc/\u003cpid\u003e\n\tfind\n\nIn the output, you\u0027ll see a message similar to:\n\nfind: WARNING: Hard link count is wrong for .: this may be a bug in your\nfilesystem driver.  Automatically turning on find\u0027s -noleaf option.\nEarlier results may have failed to include directories that should have\nbeen searched.\n\nhttp://bugs.gentoo.org/show_bug.cgi?id\u003d86031\n\nI also noticed that CONFIG_SECURITY can add a 5th: attr, and performed a\nsimilar fix on the task directories too.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "456be6cd90dbbb9b0ea01d56932d56d110d51cf7",
      "tree": "27f0d001610f686d11ff460cb6c848a599c8ca4f",
      "parents": [
        "37509e749dc2072e667db806ef24b9e897f61b8a"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Fri Apr 29 17:30:07 2005 +0100"
      },
      "committer": {
        "name": "",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Fri Apr 29 17:30:07 2005 +0100"
      },
      "message": "[AUDIT] LOGIN message credentials\n\nAttached is a new patch that solves the issue of getting valid credentials \ninto the LOGIN message. The current code was assuming that the audit context \nhad already been copied. This is not always the case for LOGIN messages.\n\nTo solve the problem, the patch passes the task struct to the function that \nemits the message where it can get valid credentials.\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "79befd0c08c4766f8fa27e37ac2a70e40840a56a",
      "tree": "d0600c289b1a54902e3b78eec0729dc7011569a3",
      "parents": [
        "d345734267dbec642f4e34a9d392d2fd85b5fa9b"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sat Apr 16 15:24:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:24:05 2005 -0700"
      },
      "message": "[PATCH] oom-killer disable for iscsi/lvm2/multipath userland critical sections\n\niscsi/lvm2/multipath needs guaranteed protection from the oom-killer, so\nmake the magical value of -17 in /proc/\u003cpid\u003e/oom_adj defeat the oom-killer\naltogether.\n\n(akpm: we still need to document oom_adj and friends in\nDocumentation/filesystems/proc.txt!)\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
