)]}'
{
  "log": [
    {
      "commit": "0d71bd5993b630a989d15adc2562a9ffe41cd26d",
      "tree": "cdd522e454cc37c92befddf62452f08f24ef6302",
      "parents": [
        "d599e36a9ea85432587f4550acc113cd7549d12a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 06 01:37:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:07 2008 -0800"
      },
      "message": "inotify: remove debug code\n\nThe inotify debugging code is supposed to verify that the\nDCACHE_INOTIFY_PARENT_WATCHED scalability optimisation does not result in\nnotifications getting lost nor extra needless locking generated.\n\nUnfortunately there are also some races in the debugging code.  And it isn\u0027t\nvery good at finding problems anyway.  So remove it for now.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Yan Zheng \u003cyanzheng@21cn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d599e36a9ea85432587f4550acc113cd7549d12a",
      "tree": "2baec196271ccafac682b4bdbef3690cca686221",
      "parents": [
        "eea63e0e8a60d00485b47fb6e75d9aa2566b989b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 06 01:37:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:06 2008 -0800"
      },
      "message": "inotify: fix race\n\nThere is a race between setting an inode\u0027s children\u0027s \"parent watched\" flag\nwhen placing the first watch on a parent, and instantiating new children of\nthat parent: a child could miss having its flags set by\nset_dentry_child_flags, but then inotify_d_instantiate might still see\n!inotify_inode_watched.\n\nThe solution is to set_dentry_child_flags after adding the watch.  Locking is\ntaken care of, because both set_dentry_child_flags and inotify_d_instantiate\nhold dcache_lock and child-\u003ed_locks.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Yan Zheng \u003cyanzheng@21cn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "455434d450a358ac5bcf3fc58f8913d13c544622",
      "tree": "78cf10eabc7ed50a0b84da6b8c84c4313ea1f170",
      "parents": [
        "b9efe8a234ad874a049460417c54680338f96360"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 07 12:22:59 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:38 2007 -0400"
      },
      "message": "[PATCH] new helper - inotify_evict_watch()\n\nKicks the watch out without dropping it.  Called under -\u003einotify_mutex\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b9efe8a234ad874a049460417c54680338f96360",
      "tree": "bf058a173388d825bbc74225fe08f87ad27adcdc",
      "parents": [
        "8aec08094570562bc305df33b088926d983c3540"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 07 12:21:44 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:32 2007 -0400"
      },
      "message": "[PATCH] new helper - inotify_clone_watch()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b5e618181a927210f8be1d3d2249d31904ba358d",
      "tree": "731f1ae4ff1ba56d402bb329182b7d935bb439a1",
      "parents": [
        "db9c02fa8bd50eb104781a9f78cae923d8da1e74"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue May 08 00:30:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:11 2007 -0700"
      },
      "message": "Introduce a handy list_first_entry macro\n\nThere are many places in the kernel where the construction like\n\n   foo \u003d list_entry(head-\u003enext, struct foo_struct, list);\n\nare used.\nThe code might look more descriptive and neat if using the macro\n\n   list_first_entry(head, type, member) \\\n             list_entry((head)-\u003enext, type, member)\n\nHere is the macro itself and the examples of its usage in the generic code.\n If it will turn out to be useful, I can prepare the set of patches to\ninject in into arch-specific code, drivers, networking, etc.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@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": "914e26379decf1fd984b22e51fd2e4209b7a7f1b",
      "tree": "4f20ee40e959699e344cdff0e117d309d238f6be",
      "parents": [
        "f6a570333e554b48ad589e7137c77c57809eee81"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 18 13:55:46 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:24 2006 -0500"
      },
      "message": "[PATCH] severing fs.h, radix-tree.h -\u003e sched.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ca10067f7f4bfa62a1b0edc84f590261fa02d75",
      "tree": "456e1b555cd4af838bd4e833aa7589ab2bab6766",
      "parents": [
        "a9dc971d3fdb857a2bcd6d53238125a2cd31d5f4"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 01 13:11:05 2006 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:19 2006 -0400"
      },
      "message": "[PATCH] inotify (4/5): allow watch removal from event handler\n\nAllow callers to remove watches from their event handler via\ninotify_remove_watch_locked().  This functionality can be used to\nachieve IN_ONESHOT-like functionality for a subset of events in the\nmask.\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": "a9dc971d3fdb857a2bcd6d53238125a2cd31d5f4",
      "tree": "02e8816f583b5ca40da5789ab9e8d7de9b3ed598",
      "parents": [
        "7c29772288b7026504cfe75bfd90d40fbd1574bf"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 01 13:11:03 2006 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:18 2006 -0400"
      },
      "message": "[PATCH] inotify (3/5): add interfaces to kernel API\n\nAdd inotify_init_watch() so caller can use inotify_watch refcounts\nbefore calling inotify_add_watch().\n\nAdd inotify_find_watch() to find an existing watch for an (ih,inode)\npair.  This is similar to inotify_find_update_watch(), but does not\nupdate the watch\u0027s mask if one is found.\n\nAdd inotify_rm_watch() to remove a watch via the watch pointer instead\nof the watch descriptor.\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": "7c29772288b7026504cfe75bfd90d40fbd1574bf",
      "tree": "dfc0cfef97c4c5fdbd87bbd9abdbf44bcd21c906",
      "parents": [
        "2d9048e201bfb67ba21f05e647b1286b8a4a5667"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 01 13:11:01 2006 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:18 2006 -0400"
      },
      "message": "[PATCH] inotify (2/5): add name\u0027s inode to event handler\n\nWhen an inotify event includes a dentry name, also include the inode\nassociated with that name.\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": "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": "d66fd908acc8ba88541ecc570d89b0243f947c5e",
      "tree": "4367428c092231981230975b37cd1fbff3ec3155",
      "parents": [
        "66055a4e7334b05354c835123ff621c5f700e56a"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Sat May 20 15:00:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:18 2006 -0700"
      },
      "message": "[PATCH] fix NULL dereference in inotify_ignore\n\nDon\u0027t reassign to watch.  If idr_find() returns NULL, then\nput_inotify_watch() will choke.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nCc: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nCc: Robert Love \u003crlove@rlove.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66055a4e7334b05354c835123ff621c5f700e56a",
      "tree": "de9d4b432e48d4c919b70a627d9ba0b50e840de0",
      "parents": [
        "12783b002db1f02c29353c8f698a85514420b9f4"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Sat May 20 15:00:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:18 2006 -0700"
      },
      "message": "[PATCH] fix race in inotify_release\n\nWhile doing some inotify stress testing, I hit the following race.  In\ninotify_release(), it\u0027s possible for a watch to be removed from the lists\nin between dropping dev-\u003emutex and taking inode-\u003einotify_mutex.  The\nreference we hold prevents the watch from being freed, but not from being\nremoved.\n\nChecking the dev\u0027s idr mapping will prevent a double list_del of the\nsame watch.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nAcked-by: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nCc: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "091e881d0e55496d8887b61446ae1c598b0995b6",
      "tree": "359de08690a236593f4a24727fc060f7adc0993c",
      "parents": [
        "68250ba5df4c9d00d3064a0ba9a894035436916b"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd.bergmann@de.ibm.com",
        "time": "Mon Apr 10 22:54:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:45 2006 -0700"
      },
      "message": "[PATCH] inotify: check for NULL inode in inotify_d_instantiate\n\nThe spufs file system creates files in a directory before instantiating the\ndirectory itself, which causes a NULL pointer access in\ninotify_d_instantiate since c32ccd87bfd1414b0aabfcd8dbc7539ad23bcbaa.\n\nI\u0027d like to keep this behavior since it means that the user will not have\naccess to files in the directory before I know that I succeed in creating\neverything in it.  This patch adds a simple check for the inode to keep\nthat working.\n\nSigned-off-by: Arnd Bergmann \u003carnd.bergmann@de.ibm.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a",
      "tree": "5484541319b86ae7dac0def4db7925f7cc7008e7",
      "parents": [
        "878a9f30d7b13015f3aa4534d7877d985f150183"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] Use __read_mostly on some hot fs variables\n\nI discovered on oprofile hunting on a SMP platform that dentry lookups were\nslowed down because d_hash_mask, d_hash_shift and dentry_hashtable were in\na cache line that contained inodes_stat.  So each time inodes_stats is\nchanged by a cpu, other cpus have to refill their cache line.\n\nThis patch moves some variables to the __read_mostly section, in order to\navoid false sharing.  RCU dentry lookups can go full speed.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c32ccd87bfd1414b0aabfcd8dbc7539ad23bcbaa",
      "tree": "612dc637976cbe36e8b72924a1f7bd76e75463fd",
      "parents": [
        "bf36b9011e3c5b2739f9da2f6de8a6fa3edded32"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Mar 25 03:07:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:53 2006 -0800"
      },
      "message": "[PATCH] inotify: lock avoidance with parent watch status in dentry\n\nPrevious inotify work avoidance is good when inotify is completely unused,\nbut it breaks down if even a single watch is in place anywhere in the\nsystem.  Robin Holt notices that udev is one such culprit - it slows down a\n512-thread application on a 512 CPU system from 6 seconds to 22 minutes.\n\nSolve this by adding a flag in the dentry that tells inotify whether or not\nits parent inode has a watch on it.  Event queueing to parent will skip\ntaking locks if this flag is cleared.  Setting and clearing of this flag on\nall child dentries versus event delivery: this is no in terms of race\ncases, and that was shown to be equivalent to always performing the check.\n\nThe essential behaviour is that activity occuring _after_ a watch has been\nadded and _before_ it has been removed, will generate events.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f24075bd0c1cd1cc2cf86d394f960aa0401de573",
      "tree": "609ad9884e43a8bb1ba5834996955a06bef66fa2",
      "parents": [
        "a11f3a0574a5734db3e5de38922430d005d35118"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: iprune\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\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": "d4f9af9dac4ecb75818f909168f87b441cc95653",
      "tree": "c5b0ccf7705b6ef0739fd5af64cf48c092760013",
      "parents": [
        "d3be915fc5e7d19a2283ad9b0fe0782a74675d0a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:11 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: inotify\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nAcked-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b5173119ff10c5538e92a7957a50887ae170b8da",
      "tree": "5b5af4e03e627b66a9f37d25dd370a145ec72438",
      "parents": [
        "8e08b756869eeb08ace17ad64c2a8cb97b18e856"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Tue Feb 07 12:58:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:33 2006 -0800"
      },
      "message": "[PATCH] inotify: fix one-shot support\n\nFix one-shot support in inotify.  We currently drop the IN_ONESHOT flag\nduring watch addition.  Fix is to not do that.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5131cf154ad1c6e584efa58d17a469d0b80f49bd",
      "tree": "d9134f74d0b04c571407fd5fbf494f1714523211",
      "parents": [
        "c21761f168894b356626c847fe13be39605d76b4"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jan 18 17:43:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:22 2006 -0800"
      },
      "message": "[PATCH] add missing syscall declarations\n\nAll standard system calls should be declared in include/linux/syscalls.h.\n\nAdd some of the new additions that were previously missed.\n\nSigned-off-by: Arnd Bergmann \u003carndb@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8140a5005bc6f1c9d0fa103460d50d472e6e3426",
      "tree": "9c5ae431bf1db43e3a1e7a4cceb472c76077ac18",
      "parents": [
        "b4788f6d55548e587ced330ece711456f40ec8f1"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Mon Dec 12 00:37:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:43 2005 -0800"
      },
      "message": "[PATCH] inotify: add two inotify_add_watch flags\n\nThe below patch lets userspace have more control over the inodes that\ninotify will watch.  It introduces two new flags.\n\n        IN_ONLYDIR -- only watch the inode if it is a directory.\n        This is needed to avoid the race that can occur when we want to be\n        sure that we are watching a directory.\n\n        IN_DONT_FOLLOW -- don\u0027t follow a symlink.  In combination\n        with IN_ONLYDIR we can make sure that we don\u0027t watch the target of\n        symlinks.\n\nThe issues the flags fix came up when writing the gnome-vfs inotify\nbackend.  Default behaviour is unchanged.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nAcked-by: Robert Love \u003crml@novell.com\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": "8d3b35914aa54232b27e6a2b57d84092aadc5e86",
      "tree": "809be8fad6743a751964677e68c5c01af3198e4b",
      "parents": [
        "c0fef676bbd75e711711ed3ff5bebb7bfd1bdb00"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 23 12:57:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 16:38:39 2005 -0700"
      },
      "message": "[PATCH] inotify/idr leak fix\n\nFix a bug which was reported and diagnosed by\nStefan Jones \u003cstefan.jones@churchillrandoms.co.uk\u003e\n\nIDR trees include a cache of idr_layer objects.  There\u0027s no way to destroy\nthis cache, so when we discard an overall idr tree we end up leaking some\nmemory.\n\nAdd and use idr_destroy() for this.  v9fs and infiniband also need to use\nidr_destroy() to avoid leaks.\n\nOr, we make the cache global, like radix_tree_preload().  Which is probably\nbetter.  Later.\n\nCc: Eric Van Hensbergen \u003cericvh@ericvh.myip.org\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ea6040b0eff07d3a9a4e2d248ac137c6ad02d42",
      "tree": "0a7bcce73c623f89cd5e8a97d2da7946da3293e3",
      "parents": [
        "8191151d0933d65fb6b659ffbd765479f0f200e1"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Tue Sep 06 15:18:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:39 2005 -0700"
      },
      "message": "[PATCH] inotify: fix event loss on hardlinked files\n\nPeople have run into a problem when they do this:\n\nwatch (file1, all_events);\nwatch (file2, some_events);\n\nif file2 is a hard link to file1, some events will be missed because by\ndefault we replace the mask.  The patch below adds a flag IN_MASK_ADD which\nwill cause inotify to add to the existing mask if present.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "820249bafe441dce5336ad544a5e709df42fceb5",
      "tree": "01d296cba9583c05a88ea19e68f40f3817829a39",
      "parents": [
        "19306059cd7fedaf96b4b0260a9a8a45e513c857"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Tue Sep 06 15:16:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:19 2005 -0700"
      },
      "message": "[PATCH] inotify speedup\n\nBypass an inotify-related fastpath spinlock and several function calls on\nsystems which have no inotify watches registered.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c657f2f25d50c602df9291bc6242b98fc090759",
      "tree": "5e1ae11c320ea00488b33224cc982d0be2d986d6",
      "parents": [
        "755528c860b05fcecda1c88a2bdaffcb50760a7f"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Fri Aug 26 14:02:04 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 26 11:32:57 2005 -0700"
      },
      "message": "[PATCH] Document idr_get_new_above() semantics, update inotify\n\nThere is an off by one problem with idr_get_new_above.\n\nThe comment and function name suggest that it will return an id \u003e\nstarting_id, but it actually returned an id \u003e\u003d starting_id, and kernel\ncallers other than inotify treated it as such.\n\nThe patch below fixes the comment, and fixes inotifys usage.  The\nfunction name still doesn\u0027t match the behaviour, but it never did.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0bf955ce98cb3cf40e20d0cc435299eb76e8819e",
      "tree": "c1fd8207f7d7b3e1db7d0f28ffae88f0dc205083",
      "parents": [
        "2ba84684e8cf6f980e4e95a2300f53a505eb794e"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Aug 15 12:27:54 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Aug 15 09:48:31 2005 -0700"
      },
      "message": "[PATCH] inotify: fix idr_get_new_above usage\n\nWe are saving the wrong thing in -\u003elast_wd.  We want the wd, not the\nreturn value.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b9c55d29e9fced1eb1b4c252b2efd4b55a0c3c7f",
      "tree": "3fc1fe1e0f40d673d9675a3db5b84ca00b81eaea",
      "parents": [
        "7544953685859875b5ac0260b6b1856066c092d6"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Mon Aug 01 11:00:45 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Aug 01 09:16:53 2005 -0700"
      },
      "message": "[PATCH] inotify: fix race between the kernel and user space\n\nWhen you rm a watch, an IN_IGNORED event is sent down the event queue\nwith the watch descriptor that you just rm\u0027d.\n\nIf you then add a watch you could get the ignored watch\u0027s wd and if you\nhaven\u0027t read the entire event queue, user space will think that it\u0027s\nnewly created watch was just ignored.\n\nTo avoid this problem we just use idr_get_new_above instead of\nidr_get_new.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89373de7dd010832d8b68cb37dabb33ff5a688bb",
      "tree": "a9585ae0ad7b1fd559fe41b977e03e5895c92060",
      "parents": [
        "725b38ab5401c73cedc1b1d913782fadcd0f624a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Jul 26 14:08:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 14:34:18 2005 -0700"
      },
      "message": "[PATCH] inotify: fix oops fix\n\nCc: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5ca844a9d795e97c08bc7901c62a48c28469eb0",
      "tree": "bef45e498d4ec2cf3387fac7a465819475060549",
      "parents": [
        "1b2ccf0cc15af717263c7cfe5d0aaf5ac057489e"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Jul 25 15:17:34 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 13:37:22 2005 -0700"
      },
      "message": "[PATCH] inotify: check retval in init\n\nCheck for (unlikely) errors in the filesystem initialization stuff in\nour module_init() function.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b2ccf0cc15af717263c7cfe5d0aaf5ac057489e",
      "tree": "aa920bd05c10ad6a0eabfefe06f58c3a472dcae3",
      "parents": [
        "5eb22cbcdb849886c2584389faff5afb56c23876"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Jul 25 15:13:43 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 13:37:22 2005 -0700"
      },
      "message": "[PATCH] inotify: change default limits\n\nChange default inotify limits: Maximum instances per user to 128 and\nmaximum events per queue to 16k.  The max instances used to be 128; the\nchange to 8 was a mistake.  Memory consumption is fine.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5eb22cbcdb849886c2584389faff5afb56c23876",
      "tree": "4a0147ea3f2021091c0ce686dc10225ef0ac7d83",
      "parents": [
        "783bc29bbc5d6625a4669d3eb1d989a8fb275d43"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Jul 25 15:12:19 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 13:37:22 2005 -0700"
      },
      "message": "[PATCH] inotify: exit path cleanups\n\nHandle error out paths better.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "783bc29bbc5d6625a4669d3eb1d989a8fb275d43",
      "tree": "100222921c788e68009ba1b2dccbeaba06b81e89",
      "parents": [
        "33ea2f52b8758ef62ae4a9d2f91821c47d999ee9"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Jul 25 15:10:08 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 13:37:21 2005 -0700"
      },
      "message": "[PATCH] inotify: oops fix\n\nBug fix: Ensure that the fd passed to inotify_add_watch() and\ninotify_rm_watch() belongs to inotify.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33ea2f52b8758ef62ae4a9d2f91821c47d999ee9",
      "tree": "becd1efe5e2c0951706333673808542804c508ed",
      "parents": [
        "b680716ed28baf549f777fb125fc23ba975985c5"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Jul 25 15:08:37 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 13:31:57 2005 -0700"
      },
      "message": "[PATCH] inotify: use fget_light\n\nAs an optimization, use fget_light() and fput_light() where possible.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b680716ed28baf549f777fb125fc23ba975985c5",
      "tree": "f6a6a4a81bba0f66845577ffff517c2d31518007",
      "parents": [
        "2d986010ad13a00b83851238d52601d6092df40e"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Mon Jul 25 15:07:13 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 13:31:57 2005 -0700"
      },
      "message": "[PATCH] inotify: misc. cleanup\n\nMiscellaneous invariant clean up, comment fixes, and so on.  Trivial\nstuff.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a556e89081b0c1c2f83cee915363b15a68a6f2d",
      "tree": "74e2f68c4d04ab0fcf05dbd4f82c14169d639405",
      "parents": [
        "5995f16b4a464c8a57de7c9d5ddf4758dbacad41"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Wed Jul 13 13:49:23 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 13 11:09:31 2005 -0700"
      },
      "message": "[PATCH] inotify: misc cleanup\n\nReally simple, basic cleanup.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0399cb08c54708db231d616f106f64d920e0b723",
      "tree": "f0424d43c578f7c5c1e7aa6ea6ca1c906c7ac289",
      "parents": [
        "153f805781d35c91ab2f54aa2b8930cc4cfc7e89"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Wed Jul 13 12:38:18 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 13 11:09:31 2005 -0700"
      },
      "message": "[PATCH] inotify: move sysctl\n\nThis moves the inotify sysctl knobs to \"/proc/sys/fs/inotify\" from\n\"/proc/sys/fs\".  Also some related cleanup.\n\nSigned-off-by: Robert Love \u003crml@novell.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"
    }
  ]
}
