)]}'
{
  "log": [
    {
      "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": "90204e0b7b51e9f2a6905adca12dc331128602c7",
      "tree": "fc5279d3cb343c3b3ec4bc2c3d825e5e01c8ff9a",
      "parents": [
        "427abfa28afedffadfca9dd8b067eb6d36bac53f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 01 21:39:38 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:17 2006 -0400"
      },
      "message": "[PATCH] remove config.h from inotify.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "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": "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": "89204c40a03346cd951e698d854105db4cfedc28",
      "tree": "02f52e02f9f11c13c9859217755b043fcf0bbc30",
      "parents": [
        "0bf955ce98cb3cf40e20d0cc435299eb76e8819e"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "jmccutchan@novell.com",
        "time": "Mon Aug 15 12:13:28 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Aug 15 09:50:31 2005 -0700"
      },
      "message": "[PATCH] inotify: add MOVE_SELF event\n\nThis adds a MOVE_SELF event to inotify.  It is sent whenever the inode\nyou are watching is moved.  We need this event so that we can catch\nsomething like this:\n\n - app1:\n\twatch /etc/mtab\n\n - app2:\n\tcp /etc/mtab /tmp/mtab-work\n\tmv /etc/mtab /etc/mtab~\n\tmv /tmp/mtab-work /etc/mtab\n\napp1 still thinks it\u0027s watching /etc/mtab but it\u0027s actually watching\n/etc/mtab~.\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": "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"
    }
  ]
}
