)]}'
{
  "log": [
    {
      "commit": "354a1f4d99240f53980275416ca3e1ac2ee73d5d",
      "tree": "2c595555d897a5cc09b6449cb0cd3aac9c11ac79",
      "parents": [
        "487798df6d25e76ed6558b3e17c44cf0458cc6f3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Apr 30 00:54:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "alloc_uid: cleanup\n\nUse kmem_cache_zalloc(), remove large amounts of initialisation code and\nifdeffery.\n\nNote: this assumes that memset(*atomic_t, 0) correctly initialises the\natomic_t.  This is true for all present archtiectures and if it becomes false\nfor a future architecture then we\u0027ll need to make large changes all over the\nplace anyway.\n\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69664cf16af4f31cd54d77948a4baf9c7e0ca7b9",
      "tree": "3ff4ecae21c140a2beed25cfa9e55b788f9814ac",
      "parents": [
        "6b79ccb5144f9ffb4d4596c23e7570238dd12abc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Apr 29 01:01:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:17 2008 -0700"
      },
      "message": "keys: don\u0027t generate user and user session keyrings unless they\u0027re accessed\n\nDon\u0027t generate the per-UID user and user session keyrings unless they\u0027re\nexplicitly accessed.  This solves a problem during a login process whereby\nset*uid() is called before the SELinux PAM module, resulting in the per-UID\nkeyrings having the wrong security labels.\n\nThis also cures the problem of multiple per-UID keyrings sometimes appearing\ndue to PAM modules (including pam_keyinit) setuiding and causing user_structs\nto come into and go out of existence whilst the session keyring pins the user\nkeyring.  This is achieved by first searching for extant per-UID keyrings\nbefore inventing new ones.\n\nThe serial bound argument is also dropped from find_keyring_by_name() as it\u0027s\nnot currently made use of (setting it to 0 disables the feature).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003ckwc@citi.umich.edu\u003e\nCc: \u003carunsr@cse.iitk.ac.in\u003e\nCc: \u003cdwalsh@redhat.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eff766a65c60237bfa865160c3129de31fab591b",
      "tree": "c003be272be4bd614485606c77893295f3b175a2",
      "parents": [
        "ec7dc8ac73e4a56ed03b673f026f08c0d547f597"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: fix the task_group hierarchy for UID grouping\n\nUID grouping doesn\u0027t actually have a task_group representing the root of\nthe task_group tree. Add one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec7dc8ac73e4a56ed03b673f026f08c0d547f597",
      "tree": "851dd612f2c80e4643d10c18bb33ab5b2df9aa70",
      "parents": [
        "354d60c2ff72d86627dfe2089d186824abf4bb8e"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "sched: allow the group scheduler to have multiple levels\n\nThis patch makes the group scheduler multi hierarchy aware.\n\n[a.p.zijlstra@chello.nl: rt-parts and assorted fixes]\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d0b27fa77854b149ad4af08b0fe47fe712a47ade",
      "tree": "2f4487c108a5132e8d52456567b4a67e78fbb4a6",
      "parents": [
        "57d3da2911787a101a384532f4519f9640bae883"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "message": "sched: rt-group: synchonised bandwidth period\n\nVarious SMP balancing algorithms require that the bandwidth period\nrun in sync.\n\nPossible improvements are moving the rt_bandwidth thing into root_domain\nand keeping a span per rt_bandwidth which marks throttled cpus.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "052f1dc7eb02300b05170ae341ccd03b76207778",
      "tree": "f58630b7876ae9e4308c0577e36aa13318b7bcfc",
      "parents": [
        "9f0c1e560c43327b70998e6c702b2f01321130d9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:40 2008 +0100"
      },
      "message": "sched: rt-group: make rt groups scheduling configurable\n\nMake the rt group scheduler compile time configurable.\nKeep it experimental for now.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f0c1e560c43327b70998e6c702b2f01321130d9",
      "tree": "b2cc7ef5bb0dc9d7d2912de339bff3e0db3530c9",
      "parents": [
        "23b0fdfc9299b137bd126e9dc22f62a59dae546d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "message": "sched: rt-group: interface\n\nChange the rt_ratio interface to rt_runtime_us, to match rt_period_us.\nThis avoids picking a granularity for the ratio.\n\nExtend the /sys/kernel/uids/\u003cuid\u003e/ interface to allow setting\nthe group\u0027s rt_runtime.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aee16ce73c71a241190cef3aaa265f6a3ab8e035",
      "tree": "ccfded2678d36af2d4ba9ad106240acf65173b28",
      "parents": [
        "ae5e1b22f17983da929a0d0178896269e19da186"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: cleanup the code managed with the USER_NS option\n\nMake the user_namespace.o compilation depend on this option and move the\ninit_user_ns into user.c file to make the kernel compile and work without the\nnamespaces support.  This make the user namespace code be organized similar to\nother namespaces\u0027.\n\nAlso mask the USER_NS option as \"depend on NAMESPACES\".\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8eb703e4f33488bf75829564d51d427e17f7cd4c",
      "tree": "ee520bf5f1b6c5b61f3b2b6b950ecb4108fc22fc",
      "parents": [
        "dc938520d2bf343b239795cfa24e4f44649358dc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "message": "uids: merge multiple error paths in alloc_uid() into one\n\nThere are already 4 error paths in alloc_uid() that do incremental rollbacks.\nI think it\u0027s time to merge them.  This costs us 8 lines of code :)\n\nMaybe it would be better to merge this patch with the previous one, but I\nremember that some time ago I sent a similar patch (fixing the error path and\ncleaning it), but I was told to make two patches in such cases.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf15126b3d4511e06e5299781ab74922590900be",
      "tree": "6049b91759b2e80c79ba4340d4cd83f7befd3778",
      "parents": [
        "e43b9192c59402685bd1f809068dd13aa5931570"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Dec 17 23:05:35 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:31 2008 -0800"
      },
      "message": "Kobject: convert kernel/user.c to use kobject_init/add_ng()\n\nThis converts the code to use the new kobject functions, cleaning up the\nlogic in doing so.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0ff21e46630abce11fdaaffabd72bbd4eed5ac2c",
      "tree": "cc49671622ef90775bf12a91d20b8286aa346e6f",
      "parents": [
        "5c03c7ab886859eb195440dbb6ccb8c30c4e84cc"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Nov 06 10:36:58 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:24 2008 -0800"
      },
      "message": "kobject: convert kernel_kset to be a kobject\n\nkernel_kset does not need to be a kset, but a much simpler kobject now\nthat we have kobj_attributes.\n\nWe also rename kernel_kset to kernel_kobj to catch all users of this\nsymbol with a build error instead of an easy-to-ignore build warning.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "eb41d9465cdafee45e0cb30f3b7338646221908e",
      "tree": "a2e5d62c8b1bd48d5b20515b541096709fe184e0",
      "parents": [
        "386f275f5d097758f867bc99ddeaeb7a03b6b190"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Nov 02 13:47:53 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:18 2008 -0800"
      },
      "message": "fix struct user_info export\u0027s sysfs interaction\n\nClean up the use of ksets and kobjects. Kobjects are instances of\nobjects (like struct user_info), ksets are collections of objects of a\nsimilar type (like the uids directory containing the user_info directories).\nSo, use kobjects for the user_info directories, and a kset for the \"uids\"\ndirectory.\n\nOn object cleanup, the final kobject_put() was missing.\n\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "bd35b93d8049ab47b5bfaf6b10ba39badf21d1c3",
      "tree": "bac82e14d960b2c7011b7f660a93f07e922f8a97",
      "parents": [
        "e5e38a86c0bbe8475543f10f0a48393a45df5182"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 29 20:13:17 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:14 2008 -0800"
      },
      "message": "kset: convert kernel_subsys to use kset_create\n\nDynamically create the kset instead of declaring it statically.  We also\nrename kernel_subsys to kernel_kset to catch all users of this symbol\nwith a build error instead of an easy-to-ignore build warning.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5e8869bb699d50be5c0733edfc71cfcd5b43e10a",
      "tree": "5ce6e7b25ffb2c78bb876861e4b0c83fd6f9b565",
      "parents": [
        "2ffbb8377c7a0713baf6644e285adc27a5654582"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Nov 26 21:21:49 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 26 21:21:49 2007 +0100"
      },
      "message": "sched: don\u0027t forget to unlock uids_mutex on error paths\n\nThe commit\n\n commit 5cb350baf580017da38199625b7365b1763d7180\n Author: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\n Date:   Mon Oct 15 17:00:14 2007 +0200\n\n    sched: group scheduling, sysfs tunables\n\nintroduced the uids_mutex and the helpers to lock/unlock it.\nUnfortunately, the error paths of alloc_uid() were not patched\nto unlock it.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0f846aa76c3e03d54c1700a87cab3a46ccd71e2",
      "tree": "bd3a536ce6b8de9165e51d23688ac5d184e7c123",
      "parents": [
        "2b01dfe37203e825edd8417ad3993d01cbbb527e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: make cpu_shares_{show,store}() static\n\ncpu_shares_{show,store}() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6d5a11dad44b8ae18ca8fc4ecb72ccccfa0a2d2",
      "tree": "7e3837c8f28e2e969a7b7d040b00676c90bf72c7",
      "parents": [
        "b6257a9036f06878a0f02354d5a07f155e1cfee0",
        "b9dca1e0fcb696716840a3bc8f20a6941b484dbf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 09:11:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 09:11:18 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  sched: fix new task startup crash\n  sched: fix !SYSFS build breakage\n  sched: fix improper load balance across sched domain\n  sched: more robust sd-sysctl entry freeing\n"
    },
    {
      "commit": "970a8645ca051225a32401e4c80b50fc0a49c081",
      "tree": "25600770b729500354d025f078d0ce9f655bdea4",
      "parents": [
        "40aeb400f68090f92010920ddf284b672a1461b8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Oct 16 23:30:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:59 2007 -0700"
      },
      "message": "user.c: #ifdef -\u003emq_bytes\n\nFor those who deselect POSIX message queues.\n\nReduces SLAB size of user_struct from 64 to 32 bytes here, SLUB size -- from\n40 bytes to 32 bytes.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40aeb400f68090f92010920ddf284b672a1461b8",
      "tree": "1faa00908be014cd6fd7cf77665fd6f1a3e4df8a",
      "parents": [
        "b1e7a4b1bb76f451991112f07a8723eea9d07aa6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Oct 16 23:30:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:58 2007 -0700"
      },
      "message": "user.c: deinline\n\nSave some space because uid_hash_find() has 3 callsites.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1a8c172c318534b96d0f0f1aecdad3898118b98",
      "tree": "f42b724f02be6f4959e2edcb29687fd5bc54ca69",
      "parents": [
        "908a7c1b9b80d06708177432020c80d147754691"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "message": "sched: fix !SYSFS build breakage\n\nWhen CONFIG_SYSFS is not set, CONFIG_FAIR_USER_SCHED fails to build\nwith\n\nkernel/built-in.o: In function `uids_kobject_init\u0027:\n(.init.text+0x1488): undefined reference to `kernel_subsys\u0027\nkernel/built-in.o: In function `uids_kobject_init\u0027:\n(.init.text+0x1490): undefined reference to `kernel_subsys\u0027\nkernel/built-in.o: In function `uids_kobject_init\u0027:\n(.init.text+0x1480): undefined reference to `kernel_subsys\u0027\nkernel/built-in.o: In function `uids_kobject_init\u0027:\n(.init.text+0x1494): undefined reference to `kernel_subsys\u0027\n\nThis patch fixes this build error.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb7dde37ece82e13de383afd7042c45df67a9d17",
      "tree": "acb42ebaae4e7f4e5e7f77551d7056937c09f4ae",
      "parents": [
        "178be793485d70d871a0fd46b29e9e3e7da636ad"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Mon Oct 15 17:00:18 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:18 2007 +0200"
      },
      "message": "sched: generate uevents for user creation/destruction\n\nGenerate uevents when a user is being created/destroyed. These events\ncan be used to configure cpu share of a new user.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5cb350baf580017da38199625b7365b1763d7180",
      "tree": "3830339798b1c6f19f1580700ea6ba240fb56ef2",
      "parents": [
        "8ca0e14ffb12c257de591571a9e96102acdb1c64"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Mon Oct 15 17:00:14 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:14 2007 +0200"
      },
      "message": "sched: group scheduling, sysfs tunables\n\nAdd tunables in sysfs to modify a user\u0027s cpu share.\n\nA directory is created in sysfs for each new user in the system.\n\n\t/sys/kernel/uids/\u003cuid\u003e/cpu_share\n\nReading this file returns the cpu shares granted for the user.\nWriting into this file modifies the cpu share for the user. Only an\nadministrator is allowed to modify a user\u0027s cpu share.\n\nEx:\n\t# cd /sys/kernel/uids/\n\t# cat 512/cpu_share\n\t1024\n\t# echo 2048 \u003e 512/cpu_share\n\t# cat 512/cpu_share\n\t2048\n\t#\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4cf86d77f5942336e7cd9de874b38b3c83b54d5e",
      "tree": "a62b0a1b5a71f715257b82c0f65f894153757c84",
      "parents": [
        "06877c33fe9261ccdf143492c28de93c56493079"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:14 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:14 2007 +0200"
      },
      "message": "sched: cleanup: rename task_grp to task_group\n\ncleanup: rename task_grp to task_group. No need to save two characters\nand \u0027grp\u0027 is annoying to read.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24e377a83220ef05c9b5bec7e01d65eed6609aa6",
      "tree": "9303b3d9f91ee39517d379aaac06c0432be8a9b8",
      "parents": [
        "9b5b77512dce239fa168183fa71896712232e95a"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Mon Oct 15 17:00:09 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:09 2007 +0200"
      },
      "message": "sched: add fair-user scheduler\n\nEnable user-id based fair group scheduling. This is useful for anyone\nwho wants to test the group scheduler w/o having to enable\nCONFIG_CGROUPS.\n\nA separate scheduling group (i.e struct task_grp) is automatically created for \nevery new user added to the system. Upon uid change for a task, it is made to \nmove to the corresponding scheduling group.\n\nA /proc tunable (/proc/root_user_share) is also provided to tune root\nuser\u0027s quota of cpu bandwidth.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "28f300d23674fa01ae747c66ce861d4ee6aebe8c",
      "tree": "52ea69a57a89760d7060597690cb289d049eb4d0",
      "parents": [
        "735de2230f09741077a645a913de0a04b10208bf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Sep 18 22:46:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "Fix user namespace exiting OOPs\n\nIt turned out, that the user namespace is released during the do_exit() in\nexit_task_namespaces(), but the struct user_struct is released only during the\nput_task_struct(), i.e.  MUCH later.\n\nOn debug kernels with poisoned slabs this will cause the oops in\nuid_hash_remove() because the head of the chain, which resides inside the\nstruct user_namespace, will be already freed and poisoned.\n\nSince the uid hash itself is required only when someone can search it, i.e.\nwhen the namespace is alive, we can safely unhash all the user_struct-s from\nit during the namespace exiting.  The subsequent free_uid() will complete the\nuser_struct destruction.\n\nFor example simple program\n\n   #include \u003csched.h\u003e\n\n   char stack[2 * 1024 * 1024];\n\n   int f(void *foo)\n   {\n   \treturn 0;\n   }\n\n   int main(void)\n   {\n   \tclone(f, stack + 1 * 1024 * 1024, 0x10000000, 0);\n   \treturn 0;\n   }\n\nrun on kernel with CONFIG_USER_NS turned on will oops the\nkernel immediately.\n\nThis was spotted during OpenVZ kernel testing.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nAcked-by: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "735de2230f09741077a645a913de0a04b10208bf",
      "tree": "b408a671c9c07bec41a9ca8056fa7a6710982f3b",
      "parents": [
        "d8a4821dca693867a7953104c1e3cc830eb9191f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Sep 18 22:46:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "Convert uid hash to hlist\n\nSurprisingly, but (spotted by Alexey Dobriyan) the uid hash still uses\nlist_heads, thus occupying twice as much place as it could.  Convert it to\nhlist_heads.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8a4821dca693867a7953104c1e3cc830eb9191f",
      "tree": "6329a8668b15d890101dd96155308e2ec3372259",
      "parents": [
        "ef2b02d3e617cb0400eedf2668f86215e1b0e6af"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Tue Sep 18 22:46:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "kernel/user.c: Use list_for_each_entry instead of list_for_each\n\nkernel/user.c: Convert list_for_each to list_for_each_entry in\nuid_hash_find()\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "acce292c82d4d82d35553b928df2b0597c3a9c78",
      "tree": "464288f40db9c254da214c400d0880ee50dc37f3",
      "parents": [
        "7d69a1f4a72b18876c99c697692b78339d491568"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Sun Jul 15 23:40:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:47 2007 -0700"
      },
      "message": "user namespace: add the framework\n\nBasically, it will allow a process to unshare its user_struct table,\nresetting at the same time its own user_struct and all the associated\naccounting.\n\nA new root user (uid \u003d\u003d 0) is added to the user namespace upon creation.\nSuch root users have full privileges and it seems that theses privileges\nshould be controlled through some means (process capabilities ?)\n\nThe unshare is not included in this patch.\n\nChanges since [try #4]:\n\t- Updated get_user_ns and put_user_ns to accept NULL, and\n\t  get_user_ns to return the namespace.\n\nChanges since [try #3]:\n\t- moved struct user_namespace to files user_namespace.{c,h}\n\nChanges since [try #2]:\n\t- removed struct user_namespace* argument from find_user()\n\nChanges since [try #1]:\n\t- removed struct user_namespace* argument from find_user()\n\t- added a root_user per user namespace\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Andrew Morgan \u003cagm@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45c18b0bb579b5c1b89f8c99f1b6ffa4c586ba08",
      "tree": "2dbd334c763232ce2de46739908054639e5629c8",
      "parents": [
        "80491eb90c750fcd7d13830062f27ae9b7cc5f75"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Nov 04 10:06:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Nov 04 10:06:02 2006 -0800"
      },
      "message": "Fix unlikely (but possible) race condition on task-\u003euser access\n\nThere\u0027s a possible race condition when doing a \"switch_uid()\" from one\nuser to another, which could race with another thread doing a signal\nallocation and looking at the old thread -\u003euser pointer as it is freed.\n\nThis explains an oops reported by Lukasz Trabinski:\n\thttp://permalink.gmane.org/gmane.linux.kernel/462241\n\nWe fix this by delaying the (reference-counted) freeing of the user\nstructure until the thread signal handler lock has been released, so\nthat we know that the signal allocation has either seen the new value or\nhas properly incremented the reference count of the old one.\n\nRace identified by Oleg Nesterov.\n\nCc: Lukasz Trabinski \u003clukasz@wsisiz.edu.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d720024e94de4e8b7f10ee83c532926f3ad5d708",
      "tree": "8f21613c29a26bfbeb334cb0104b8b998b09fbdc",
      "parents": [
        "f893afbe1262e27e91234506f72e17716190dd2f"
      ],
      "author": {
        "name": "Michael LeMay",
        "email": "mdlemay@epoch.ncsc.mil",
        "time": "Thu Jun 22 14:47:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:55 2006 -0700"
      },
      "message": "[PATCH] selinux: add hooks for key subsystem\n\nIntroduce SELinux hooks to support the access key retention subsystem\nwithin the kernel.  Incorporate new flask headers from a modified version\nof the SELinux reference policy, with support for the new security class\nrepresenting retained keys.  Extend the \"key_alloc\" security hook with a\ntask parameter representing the intended ownership context for the key\nbeing allocated.  Attach security information to root\u0027s default keyrings\nwithin the SELinux initialization routine.\n\nHas passed David\u0027s testsuite.\n\nSigned-off-by: Michael LeMay \u003cmdlemay@epoch.ncsc.mil\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: 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": "2d9048e201bfb67ba21f05e647b1286b8a4a5667",
      "tree": "1df2ca6780d403f3209cf445f8b0b27f45098434",
      "parents": [
        "90204e0b7b51e9f2a6905adca12dc331128602c7"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 01 13:10:59 2006 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:17 2006 -0400"
      },
      "message": "[PATCH] inotify (1/5): split kernel API from userspace support\n\nThe following series of patches introduces a kernel API for inotify,\nmaking it possible for kernel modules to benefit from inotify\u0027s\nmechanism for watching inodes.  With these patches, inotify will\nmaintain for each caller a list of watches (via an embedded struct\ninotify_watch), where each inotify_watch is associated with a\ncorresponding struct inode.  The caller registers an event handler and\nspecifies for which filesystem events their event handler should be\ncalled per inotify_watch.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nAcked-by: Robert Love \u003crml@novell.com\u003e\nAcked-by: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "36f574135e36b86bb6ae794bf1d0fce3efa5601f",
      "tree": "9dd55b2244d2ac9f7e05098e7236aa8cf6cd6d60",
      "parents": [
        "3cf64b933c90ba701cfdc7188431104c646d7c9e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:15:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:20 2006 -0800"
      },
      "message": "[PATCH] free_uid() locking improvement\n\nReduce lock hold times in free_uid().\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: 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": "3fa97c9db4f6f93f41f7a40d08872dbfd8dc907e",
      "tree": "6a71aea65a6854f6ab16dc2f8cadf885f01b927e",
      "parents": [
        "b8c475be7bf9b79e6417c08d7a921b2e8cb04258"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Jan 31 16:34:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 31 16:49:43 2006 -0800"
      },
      "message": "[PATCH] \"Fix uidhash_lock \u003c-\u003e RXU deadlock\" fix\n\nI get storms of warnings from local_bh_enable().  Better-tested patches,\nplease.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"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": "4021cb279a532728c3208a16b9b09b0ca8016850",
      "tree": "1103bc655772ea388eb1fb2b259797bc9c703926",
      "parents": [
        "d5bee775137c56ed993f1b3c9d66c268b3525d7d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 25 15:23:07 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 31 11:30:18 2006 -0800"
      },
      "message": "[PATCH] fix uidhash_lock \u003c-\u003e RCU deadlock\n\nRCU task-struct freeing can call free_uid(), which is taking\nuidhash_lock - while other users of uidhash_lock are softirq-unsafe.\n\nThe fix is to always take the uidhash_spinlock in a softirq-safe manner.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eeca28300df110bd6ed54b31193c83b87921443",
      "tree": "7db42d8a18d80eca538f5b7d25e0532b8fa38b85",
      "parents": [
        "bd4c625c061c2a38568d0add3478f59172455159"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Tue Jul 12 17:06:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:38:38 2005 -0700"
      },
      "message": "[PATCH] inotify\n\ninotify is intended to correct the deficiencies of dnotify, particularly\nits inability to scale and its terrible user interface:\n\n        * dnotify requires the opening of one fd per each directory\n          that you intend to watch. This quickly results in too many\n          open files and pins removable media, preventing unmount.\n        * dnotify is directory-based. You only learn about changes to\n          directories. Sure, a change to a file in a directory affects\n          the directory, but you are then forced to keep a cache of\n          stat structures.\n        * dnotify\u0027s interface to user-space is awful.  Signals?\n\ninotify provides a more usable, simple, powerful solution to file change\nnotification:\n\n        * inotify\u0027s interface is a system call that returns a fd, not SIGIO.\n\t  You get a single fd, which is select()-able.\n        * inotify has an event that says \"the filesystem that the item\n          you were watching is on was unmounted.\"\n        * inotify can watch directories or files.\n\nInotify is currently used by Beagle (a desktop search infrastructure),\nGamin (a FAM replacement), and other projects.\n\nSee Documentation/filesystems/inotify.txt.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\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": "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"
    }
  ]
}
