)]}'
{
  "log": [
    {
      "commit": "0551fbd29e16fccd46e41b7d01bf0f8f39b14212",
      "tree": "760783df743eec940d6f6cb848498580ddde03d8",
      "parents": [
        "f61388822a6040ff462c5f7260daa0f1017f2db0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Feb 28 16:59:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] Add mm-\u003etask_size and fix powerpc vdso\n\nThis patch adds mm-\u003etask_size to keep track of the task size of a given mm\nand uses that to fix the powerpc vdso so that it uses the mm task size to\ndecide what pages to fault in instead of the current thread flags (which\nbroke when ptracing).\n\n(akpm: I expect that mm_struct.task_size will become the way in which we\nfinally sort out the confusion between 32-bit processes and 32-bit mm\u0027s.  It\nmay need tweaks, but at this stage this patch is powerpc-only.)\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ecfbae093f0c37311e89b29bfc0c9d586eace87",
      "tree": "eabd0a145af64e26c900578c95175ab313828661",
      "parents": [
        "dadac81b1b86196fcc48fb87620403c4a7174f06"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Feb 15 22:50:10 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 15 11:05:43 2006 -0800"
      },
      "message": "[PATCH] fix zap_thread\u0027s ptrace related problems\n\n1. The tracee can go from ptrace_stop() to do_signal_stop()\n   after __ptrace_unlink(p).\n\n2. It is unsafe to __ptrace_unlink(p) while p-\u003eparent may wait\n   for tasklist_lock in ptrace_detach().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5590ff0d5528b60153c0b4e7b771472b5a95e297",
      "tree": "5fdccf2354269702f71beb8e0a2942e4167fd992",
      "parents": [
        "e2f99018eb7b29954747a2dd78e9fc0c36a60f0f"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jan 18 17:43:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] vfs: *at functions: core\n\nHere is a series of patches which introduce in total 13 new system calls\nwhich take a file descriptor/filename pair instead of a single file\nname.  These functions, openat etc, have been discussed on numerous\noccasions.  They are needed to implement race-free filesystem traversal,\nthey are necessary to implement a virtual per-thread current working\ndirectory (think multi-threaded backup software), etc.\n\nWe have in glibc today implementations of the interfaces which use the\n/proc/self/fd magic.  But this code is rather expensive.  Here are some\nresults (similar to what Jim Meyering posted before).\n\nThe test creates a deep directory hierarchy on a tmpfs filesystem.  Then\nrm -fr is used to remove all directories.  Without syscall support I get\nthis:\n\nreal    0m31.921s\nuser    0m0.688s\nsys     0m31.234s\n\nWith syscall support the results are much better:\n\nreal    0m20.699s\nuser    0m0.536s\nsys     0m20.149s\n\nThe interfaces are for obvious reasons currently not much used.  But they\u0027ll\nbe used.  coreutils (and Jeff\u0027s posixutils) are already using them.\nFurthermore, code like ftw/fts in libc (maybe even glob) will also start using\nthem.  I expect a patch to make follow soon.  Every program which is walking\nthe filesystem tree will benefit.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff678b8da6478d861c1b0ecb3ac14575760e906",
      "tree": "0ca983ce820ac8bb9f6e8b193926e0804116a7e0",
      "parents": [
        "df78488de7befd387e9d060da6e18bb5d1cb882c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 09 20:52:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:38 2006 -0800"
      },
      "message": "[PATCH] hrtimer: switch itimers to hrtimer\n\nswitch itimers to a hrtimers-based implementation\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb6f6dbaa48c53525a7a4f9d4df719c3b0b582af",
      "tree": "d8214a72c61d49e3cb896e0390256f23e9f72eff",
      "parents": [
        "0811af28ce49fab963e3e6b8abcf8c460f971cd4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:55 2006 -0800"
      },
      "message": "[PATCH] do_coredump() should reset group_stop_count earlier\n\n__group_complete_signal() sets -\u003egroup_stop_count in sig_kernel_coredump()\npath and marks the target thread as -\u003egroup_exit_task.  So any thread\nexcept group_exit_task will go to handle_group_stop()-\u003efinish_stop().\n\nHowever, when group_exit_task actually starts do_coredump(), it sets\nSIGNAL_GROUP_EXIT, but does not reset -\u003egroup_stop_count while killing\nother threads.  If we have not yet stopped threads in the same thread\ngroup, they all will spin in kernel mode until group_exit_task sends them\nSIGKILL, because -\u003egroup_stop_count \u003e 0 means:\n\n\trecalc_sigpending_tsk() never clears TIF_SIGPENDING\n\n\tget_signal_to_deliver() goes to handle_group_stop()\n\n\thandle_group_stop() returns when SIGNAL_GROUP_EXIT set\n\n\tsyscall_exit/resume_userspace notice TIF_SIGPENDING,\n\tcall get_signal_to_deliver() again.\n\nSo we are wasting cpu cycles, and if one of these threads is rt_task() this\nmay be a serious problem.\n\nNOTE: do_coredump() holds -\u003emmap_sem, so not stopped threads can\u0027t escape\ncoredumping after clearing -\u003egroup_stop_count.\n\nSee also this thread: http://marc.theaimsgroup.com/?t\u003d112739139900002\n\nSigned-off-by: 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": "4a30131e7dbb17e5fec6958bfac9da9aff1fa29b",
      "tree": "2ff6139b393a9a413e2ea4db4dd2d15eec2201f8",
      "parents": [
        "788540141f4549637e89aadca6e25cf25eb53383"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jan 08 01:02:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:52 2006 -0800"
      },
      "message": "[PATCH] Fix some problems with truncate and mtime semantics.\n\nSUS requires that when truncating a file to the size that it currently\nis:\n  truncate and ftruncate should NOT modify ctime or mtime\n  O_TRUNC SHOULD modify ctime and mtime.\n\nCurrently mtime and ctime are always modified on most local\nfilesystems (side effect of -\u003etruncate) or never modified (on NFS).\n\nWith this patch:\n  ATTR_CTIME|ATTR_MTIME are sent with ATTR_SIZE precisely when\n    an update of these times is required whether size changes or not\n    (via a new argument to do_truncate).  This allows NFS to do\n    the right thing for O_TRUNC.\n  inode_setattr nolonger forces ATTR_MTIME|ATTR_CTIME when the ATTR_SIZE\n    sets the size to it\u0027s current value.  This allows local filesystems\n    to do the right thing for f?truncate.\n\nAlso, the logic in inode_setattr is changed a bit so there are two return\npoints.  One returns the error from vmtruncate if it failed, the other\nreturns 0 (there can be no other failure).\n\nFinally, if vmtruncate succeeds, and ATTR_SIZE is the only change\nrequested, we now fall-through and mark_inode_dirty.  If a filesystem did\nnot have a -\u003etruncate function, then vmtruncate will have changed i_size,\nwithout marking the inode as \u0027dirty\u0027, and I think this is wrong.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e56d090310d7625ecb43a1eeebd479f04affb48b",
      "tree": "2f479215dff4a2d8f3a9ed85200a5bc4f51534be",
      "parents": [
        "4369ef3c3e9d3bd9b879580678778f558d481e90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 08 01:01:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] RCU signal handling\n\nRCU tasklist_lock and RCU signal handling: send signals RCU-read-locked\ninstead of tasklist_lock read-locked.  This is a scalability improvement on\nSMP and a preemption-latency improvement under PREEMPT_RCU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Roland McGrath \u003croland@redhat.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": "9617d95e6e9ffd883cf90a89724fe60d7ab22f9a",
      "tree": "67d555d34d931bd253fbc4959ffdb1e5b904f2b0",
      "parents": [
        "224abf92b2f439a9030f21d2926ec8047d1ffcdb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:27 2006 -0800"
      },
      "message": "[PATCH] mm: rmap optimisation\n\nOptimise rmap functions by minimising atomic operations when we know there\nwill be no concurrent modifications.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "c9cfcddfd65735437a4cb8563d6b66a6da8a5ed6",
      "tree": "618cdf37baafe8b283bcc9923d9dde89d6428fb5",
      "parents": [
        "4168f7a31801bba6acc18662978d24ec850bbbd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:03:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:03:14 2005 -0800"
      },
      "message": "VM: add common helper function to create the page tables\n\nThis logic was duplicated four times, for no good reason.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "962b564cf1ec8041e8890a3c3847e3a630a08f42",
      "tree": "a238616355c02496177e486d78f9a75911e943b6",
      "parents": [
        "8bf1101bd52573e0573e374d56d2feecdbb5e444"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Nov 23 13:37:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 16:08:39 2005 -0800"
      },
      "message": "[PATCH] fix do_wait() vs exec() race\n\nWhen non-leader thread does exec, de_thread adds old leader to the init\u0027s\n-\u003echildren list in EXIT_ZOMBIE state and drops tasklist_lock.\n\nThis means that release_task(leader) in de_thread() is racy vs do_wait()\nfrom init task.\n\nI think de_thread() should set old leader\u0027s state to EXIT_DEAD instead.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: george anzinger \u003cgeorge@mvista.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c744fb83da0771afa04695028e3550b798dad90",
      "tree": "670896a1c2594965099853a6c992907abb3a886f",
      "parents": [
        "e4543eddfd3bf3e0d625841377fa695a519edfd4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 08 21:35:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:59 2005 -0800"
      },
      "message": "[PATCH] add a file_permission helper\n\nA few more callers of permission() just want to check for a different access\npattern on an already open file.  This patch adds a wrapper for permission()\nthat takes a file in preparation of per-mount read-only support and to clean\nup the callers a little.  The helper is not intended for new code, everything\nwithout the interface set in stone should use vfs_permission()\n\nSigned-off-by: 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": "e4543eddfd3bf3e0d625841377fa695a519edfd4",
      "tree": "b62546cb0038529bd8cd583333c556ad799f2081",
      "parents": [
        "e4a53cbabc81f04e24a5570b4aa6a6384bdbfc67"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 08 21:35:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:58 2005 -0800"
      },
      "message": "[PATCH] add a vfs_permission helper\n\nMost permission() calls have a struct nameidata * available.  This helper\ntakes that as an argument and thus makes sure we pass it down for lookup\nintents and prepares for per-mount read-only support where we need a struct\nvfsmount for checking whether a file is writeable.\n\nSigned-off-by: 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": "329f7dba5f7dc3bc9a30ad00cf373d2e83115aa1",
      "tree": "3d8c8b2fd07ad2c1df959421121451207373f78f",
      "parents": [
        "a52e8381c430896d3bd6065a34fda99cb5c74c82"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Nov 07 21:12:43 2005 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 08 12:58:38 2005 -0800"
      },
      "message": "[PATCH] fix de_thread() vs send_group_sigqueue() race\n\nWhen non-leader thread does exec, de_thread calls release_task(leader) before\ncalling exit_itimers(). If local timer interrupt happens in between, it can\noops in send_group_sigqueue() while taking -\u003esighand-\u003esiglock \u003d\u003d NULL.\n\nHowever, we can\u0027t change send_group_sigqueue() to check p-\u003esignal !\u003d NULL,\nbecause sys_timer_create() does get_task_struct() only in SIGEV_THREAD_ID\ncase. So it is possible that this task_struct was already freed and we can\u0027t\ntrust p-\u003esignal.\n\nThis patch changes de_thread() so that leader released after exit_itimers()\ncall.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Chris Wright \u003cchrisw@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc4e69dee4a080f6eae3f410daec2593f4fa6f00",
      "tree": "b9be8984a0be5f7997d836603963dcf8f2e728ff",
      "parents": [
        "481bed454247538e9f57d4ea37b153ccba24ba7b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Nov 07 00:59:49 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:42 2005 -0800"
      },
      "message": "[PATCH] VFS: pass file pointer to filesystem from ftruncate()\n\nThis patch extends the iattr structure with a file pointer memeber, and adds\nan ATTR_FILE validity flag for this member.\n\nThis is set if do_truncate() is invoked from ftruncate() or from\ndo_coredump().\n\nThe change is source and binary compatible.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f46080c41d5f3f7c00b4e169ba4b0b2865258bf",
      "tree": "e2c029ef7f0cd5fb8ea9b78db3f7be5badaf59b1",
      "parents": [
        "49364ce2534418462d681ad99e52e79a00b0f40b"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Nov 07 00:59:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:35 2005 -0800"
      },
      "message": "[PATCH] Process Events Connector\n\nThis patch adds a connector that reports fork, exec, id change, and exit\nevents for all processes to userspace.  It replaces the fork_advisor patch\nthat ELSA is currently using.  Applications that may find these events\nuseful include accounting/auditing (e.g.  ELSA), system activity monitoring\n(e.g.  top), security, and resource management (e.g.  CKRM).\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1291cf4163d21f1b4999d697cbf68d38e7151c28",
      "tree": "0e1c3e3970216c769f91f6077b0e23d47d6fd333",
      "parents": [
        "f7232056bff5fe2d3bfeab35252a66ebaeb5bbde"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:54 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:25 2005 -0800"
      },
      "message": "[PATCH] fix de_thread() vs do_coredump() deadlock\n\nde_thread() sends SIGKILL to all sub-threads and waits them to die in \u0027D\u0027\nstate.  It is possible that one of the threads already dequeued coredump\nsignal.  When de_thread() unlocks -\u003esighand-\u003elock that thread can enter\ndo_coredump()-\u003ecoredump_wait() and cause a deadlock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2384f55f8aa520172c995965bd2f8a9740d53095",
      "tree": "3f2f746529a760824d87f790418bacb94cc5a247",
      "parents": [
        "7407251a0e2ed099e4b12b742b635503e981507c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:23 2005 -0800"
      },
      "message": "[PATCH] coredump_wait() cleanup\n\nThis patch deletes pointless code from coredump_wait().\n\n1. It does useless mm-\u003ecore_waiters inc/dec under mm-\u003emmap_sem,\n   but any changes to -\u003ecore_waiters have no effect until we drop\n   -\u003emmap_sem.\n\n2. It calls yield() for absolutely unknown reason.\n\nSigned-off-by: 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": "932aeafbe8521a9a9d790152d66020e0fef2029b",
      "tree": "09b95edbd9c160962027a9b3dcbf3cb7fc7a2b90",
      "parents": [
        "2f51201662b28dbf8c15fb7eb972bc51c6cc3fa5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] fix de_thread vs it_real_fn() deadlock\n\nde_thread() calls del_timer_sync(-\u003ereal_timer) under -\u003esighand-\u003esiglock.\nThis is deadlockable, it_real_fn sends a signal and needs this lock too.\n\nAlso, delete unneeded -\u003ereal_timer.data assignment.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9e4e23bccb127fac109e765dfb7f9372661cb415",
      "tree": "0031d99431f89d135830b8386d3f0fbff0b57753",
      "parents": [
        "833d304b22edff5cc687ab7e5549c2f0dcdd951a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:01:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] little de_thread() cleanup\n\nTrivial, saves one \u0027if\u0027 branch in de_thread().\n\nSigned-off-by: 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": "c74df32c724a1652ad8399b4891bb02c9d43743a",
      "tree": "5a79d56fdcf7dc2053a277dbf6db7c3b339e9659",
      "parents": [
        "1bb3630e89cb8a7b3d3807629c20c5bad88290ff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc take ptlock\n\nSecond step in pushing down the page_table_lock.  Remove the temporary\nbridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not\nto hold page_table_lock, whether it\u0027s on init_mm or a user mm; take\npage_table_lock internally to check if a racing task already allocated.\n\nConvert their callers from common code.  But avoid coming back to change them\nagain later: instead of moving the spin_lock(\u0026mm-\u003epage_table_lock) down,\nswitch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which\nencapsulate the mapping+locking and unlocking+unmapping together, and in the\nend may use alternatives to the mm page_table_lock itself.\n\nThese callers all hold mmap_sem (some exclusively, some not), so at no level\ncan a page table be whipped away from beneath them; and pte_alloc uses the\n\"atomic\" pmd_present to test whether it needs to allocate.  It appears that on\nall arches we can safely descend without page_table_lock.\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": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\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": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\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": "834f2a4a1554dc5b2598038b3fe8703defcbe467",
      "tree": "d27a000a2dd03029e6e2472c6e13801688185b51",
      "parents": [
        "039c4d7a82d8268ec71f59679460b41d0dd9b225"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:16 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:16 2005 -0700"
      },
      "message": "VFS: Allow the filesystem to return a full file pointer on open intent\n\n This is needed by NFSv4 for atomicity reasons: our open command is in\n fact a lookup+open, so we need to be able to propagate open context\n information from lookup() into the resulting struct file\u0027s\n private_data field.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2fd4ef85e0db9ed75c98e13953257a967ea55e03",
      "tree": "119dfe9f88a832f3db6ff66e631112626f268f18",
      "parents": [
        "fb085cf1d4294824571815d487daccc0609543f0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Sep 14 06:13:02 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 14 11:18:13 2005 -0700"
      },
      "message": "[PATCH] error path in setup_arg_pages() misses vm_unacct_memory()\n\nPavel Emelianov and Kirill Korotaev observe that fs and arch users of\nsecurity_vm_enough_memory tend to forget to vm_unacct_memory when a\nfailure occurs further down (typically in setup_arg_pages variants).\n\nThese are all users of insert_vm_struct, and that reservation will only\nbe unaccounted on exit if the vma is marked VM_ACCOUNT: which in some\ncases it is (hidden inside VM_STACK_FLAGS) and in some cases it isn\u0027t.\n\nSo x86_64 32-bit and ppc64 vDSO ELFs have been leaking memory into\nCommitted_AS each time they\u0027re run.  But don\u0027t add VM_ACCOUNT to them,\nit\u0027s inappropriate to reserve against the very unlikely case that gdb\nbe used to COW a vDSO page - we ought to do something about that in\ndo_wp_page, but there are yet other inconsistencies to be resolved.\n\nThe safe and economical way to fix this is to let insert_vm_struct do\nthe security_vm_enough_memory check when it finds VM_ACCOUNT is set.\n\nAnd the MIPS irix_brk has been calling security_vm_enough_memory before\ncalling do_brk which repeats it, doubly accounting and so also leaking.\nRemove that, and all the fs and arch calls to security_vm_enough_memory:\ngive it a less misleading name later on.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb085cf1d4294824571815d487daccc0609543f0",
      "tree": "e3a704026e65bf6fea0c7747f0fb75a506f54127",
      "parents": [
        "32a3658533c6f4c6bf370dd730213e802464ef9b"
      ],
      "author": {
        "name": "Alexander Nyberg",
        "email": "alexn@telia.com",
        "time": "Wed Sep 14 18:54:06 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 14 10:26:34 2005 -0700"
      },
      "message": "[PATCH] Fix fs/exec.c:788 (de_thread()) BUG_ON\n\nIt turns out that the BUG_ON() in fs/exec.c: de_thread() is unreliable\nand can trigger due to the test itself being racy.\n\nde_thread() does\n \twhile (atomic_read(\u0026sig-\u003ecount) \u003e count) {\n\t}\n\t.....\n\t.....\n\tBUG_ON(!thread_group_empty(current));\n\nbut release_task does\n\twrite_lock_irq(\u0026tasklist_lock)\n\t__exit_signal\n\t\t(this is where atomic_dec(\u0026sig-\u003ecount) is run)\n\t__exit_sighand\n\t__unhash_process\n\t\ttakes write lock on tasklist_lock\n\t\tremove itself out of PIDTYPE_TGID list\n\twrite_unlock_irq(\u0026tasklist_lock)\n\nso there\u0027s a clear (although small) window between the\natomic_dec(\u0026sig-\u003ecount) and the actual PIDTYPE_TGID unhashing of the\nthread.\n\nAnd actually there is no need for all threads to have exited at this\npoint, so we simply kill the BUG_ON.\n\nBig thanks to Marc Lehmann who provided the test-case.\n\nFixes Bug 5170 (http://bugme.osdl.org/show_bug.cgi?id\u003d5170)\n\nSigned-off-by: Alexander Nyberg \u003calexn@telia.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\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": "5323125031799a7fd8602ce150c3902aedfdcba6",
      "tree": "43281ea094cba176e88ba50561e2a04aa8beed8c",
      "parents": [
        "5c888d531823f8ce2853fb717ebefbcca9acdcd0"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Jul 12 13:58:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:01:01 2005 -0700"
      },
      "message": "[PATCH] reset real_timer target on exec leader change\n\nWhen a noninitial thread does exec, it becomes the new group leader.  If\nthere is a ITIMER_REAL timer running, it points at the old group leader and\nwhen it fires it can follow a stale pointer.  The timer data needs to be\nreset to point at the exec\u0027ing thread that is becoming the group leader.\nThis has to synchronize with any concurrent firing of the timer to make\nsure that it_real_fn can never run when the data points to a thread that\nmight have been reaped already.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\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": "c2a0f5943d8935766a42b2d0870aa4c645e3423d",
      "tree": "e3a0b1bd202725989d908cc4686dab4b1d9855d9",
      "parents": [
        "c83d9945c05570ba6b8ec5460c99d1ab7c6e6671"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 18 13:06:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 18 13:06:22 2005 -0700"
      },
      "message": "Clean up subthread exec\n\nMake sure we re-parent itimers, and use BUG_ON() instead of an explicit\nconditional BUG().\n"
    },
    {
      "commit": "3677209239ed71d2654e73eecfab1dbec2af11a9",
      "tree": "125d9d7553c5f6dc6ad030e4c829a5bf71ab3ef5",
      "parents": [
        "291c4a75ce7632ee5c565359fb875ba0597f76be"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Thu May 05 16:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:48 2005 -0700"
      },
      "message": "[PATCH] comments on locking of task-\u003ecomm\n\nAdd some comments about task-\u003ecomm, to explain what it is near its definition\nand provide some important pointers to its uses.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\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"
    }
  ]
}
