)]}'
{
  "log": [
    {
      "commit": "6bff7eccb0d9bdef4123aad5399e73cbc26683a6",
      "tree": "59ebbe6cdc9480008d80670383a6f667f766a3cb",
      "parents": [
        "1a5cea7215f7c6bd3c960d7b44e864f3a73d1ad4"
      ],
      "author": {
        "name": "Lino Sanfilippo",
        "email": "LinoSanfilippo@gmx.de",
        "time": "Fri Oct 29 12:02:17 2010 +0200"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sat Oct 30 14:07:40 2010 -0400"
      },
      "message": "Ensure FMODE_NONOTIFY is not set by userspace\n\n    In fsnotify_open() ensure that FMODE_NONOTIFY is never set by userspace.\n    Also always call fsnotify_parent and fsnotify.\n\nSigned-off-by: Lino Sanfilippo \u003cLinoSanfilippo@gmx.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b29866aab8489487f11cc4506590ac31bdbae22a",
      "tree": "814ff82fd2067dfa75a69284a38f3ae26ee692fe",
      "parents": [
        "e1c048ba786789afdc66f32d8394bb5a0014bbba"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:58 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:15 2010 -0400"
      },
      "message": "fsnotify: rename FS_IN_ISDIR to FS_ISDIR\n\nThe _IN_ in the naming is reserved for flags only used by inotify.  Since I\nam about to use this flag for fanotify rename it to be generic like the\nrest.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "52420392c81c8712f555e6bcd116d8bd214ce43a",
      "tree": "372d23bba71ee687ff5adf5b83d3fd0706e19927",
      "parents": [
        "ff8bcbd03da881bf1171910c6c07d44bd3c0a234"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:56 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:13 2010 -0400"
      },
      "message": "fsnotify: call fsnotify_parent in perm events\n\nfsnotify perm events do not call fsnotify parent.  That means you cannot\nregister a perm event on a directory and enforce permissions on all inodes in\nthat directory.  This patch fixes that situation.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2069601b3f0ea38170d4b509b89f3ca0a373bdc1",
      "tree": "647002d4c3814bd3d95d16ef7edef1757de8554f",
      "parents": [
        "ad41a1e0cab07c5125456e8d38e5b1ab148d04aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 14:23:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 14:23:04 2010 -0700"
      },
      "message": "Revert \"fsnotify: store struct file not struct path\"\n\nThis reverts commit 3bcf3860a4ff9bbc522820b4b765e65e4deceb3e (and the\naccompanying commit c1e5c954020e \"vfs/fsnotify: fsnotify_close can delay\nthe final work in fput\" that was a horribly ugly hack to make it work at\nall).\n\nThe \u0027struct file\u0027 approach not only causes that disgusting hack, it\nsomehow breaks pulseaudio, probably due to some other subtlety with\nf_count handling.\n\nFix up various conflicts due to later fsnotify work.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bcf3860a4ff9bbc522820b4b765e65e4deceb3e",
      "tree": "1e235af133559062c6fdee840ff9698f1dee26a6",
      "parents": [
        "f70ab54cc6c3907b0727ba332b3976f80f3846d0"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 10:18:37 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 10:18:51 2010 -0400"
      },
      "message": "fsnotify: store struct file not struct path\n\nAl explains that calling dentry_open() with a mnt/dentry pair is only\ngarunteed to be safe if they are already used in an open struct file.  To\nmake sure this is the case don\u0027t store and use a struct path in fsnotify,\nalways use a struct file.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "fb1cfb88c8597d847553f39efc2bbd41c72c5f50",
      "tree": "0f94e05ee3e643db398738dae2977c45105d1f42",
      "parents": [
        "b31d397e430a90cbe9d3656929a7d5f96e986666"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed May 12 11:42:29 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:02 2010 -0400"
      },
      "message": "fsnotify: initialize mask in fsnotify_perm\n\nakpm got a warning the fsnotify_mask could be used uninitialized in\nfsnotify_perm().  It\u0027s not actually possible but his compiler complained\nabout it.  This patch just initializes it to 0 to shut up the compiler.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "c4ec54b40d33f8016fea970a383cc584dd0e6019",
      "tree": "8e8865170cf340d1e79dc379f56417588715b2c8",
      "parents": [
        "d14f1729483fad3a8817fbbcbd017678b7d1ad26"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:34 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:01 2010 -0400"
      },
      "message": "fsnotify: new fsnotify hooks and events types for access decisions\n\nintroduce a new fsnotify hook, fsnotify_perm(), which is called from the\nsecurity code.  This hook is used to allow fsnotify groups to make access\ncontrol decisions about events on the system.  We also must change the\ngeneric fsnotify function to return an error code if we intend these hooks\nto be in any way useful.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "59b0df211bd9699d7e0d01fcf9345a149f75b033",
      "tree": "0f6e8bebfa090aa5c1d91d9efc5c2b04aeeed05c",
      "parents": [
        "43ed7e16a8b47059d7f6ff67ba76f383a2421de3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Feb 08 12:53:52 2010 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:01 2010 -0400"
      },
      "message": "fsnotify: use unsigned char * for dentry-\u003ed_name.name\n\nfsnotify was using char * when it passed around the d_name.name string\ninternally but it is actually an unsigned char *.  This patch switches\nfsnotify to use unsigned and should silence some pointer signess warnings\nwhich have popped out of xfs.  I do not add -Wpointer-sign to the fsnotify\ncode as there are still issues with kstrdup and strlen which would pop\nout needless warnings.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ca9c726eea013394d1e846331b117effb21ead83",
      "tree": "de2319fb43b4fa16d07ecbcd75022cdaf9a757e1",
      "parents": [
        "0d48b7f01f442bc88a69aa98f3b6b015f2817608"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:27 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:57 2010 -0400"
      },
      "message": "fsnotify: Infrastructure for per-mount watches\n\nPer-mount watches allow groups to listen to fsnotify events on an entire\nmount.  This patch simply adds and initializes the fields needed in the\nvfsmount struct to make this happen.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ecf081d1a73b077916f514f2ec744ded32b88ca1",
      "tree": "f1a9892131a297d0f67cb0fd9189e3aac83e2219",
      "parents": [
        "35566087099c3ff8901d65ee98af56347ee66e5a"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:25 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:54 2010 -0400"
      },
      "message": "vfs: introduce FMODE_NONOTIFY\n\nThis is a new f_mode which can only be set by the kernel.  It indicates\nthat the fd was opened by fanotify and should not cause future fanotify\nevents.  This is needed to prevent fanotify livelock.  An example of\nobvious livelock is from fanotify close events.\n\nProcess A closes file1\nThis creates a close event for file1.\nfanotify opens file1 for Listener X\nListener X deals with the event and closes its fd for file1.\nThis creates a close event for file1.\nfanotify opens file1 for Listener X\nListener X deals with the event and closes its fd for file1.\nThis creates a close event for file1.\nfanotify opens file1 for Listener X\nListener X deals with the event and closes its fd for file1.\nnotice a pattern?\n\nThe fix is to add the FMODE_NONOTIFY bit to the open filp done by the kernel\nfor fanotify.  Thus when that file is used it will not generate future\nevents.\n\nThis patch simply defines the bit.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e61ce86737b4d60521e4e71f9892fe4bdcfb688b",
      "tree": "a1aba411504ac028d4ead6f28ca05bd024c74142",
      "parents": [
        "72acc854427948efed7a83da27f7dc3239ac9afc"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:24 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:53 2010 -0400"
      },
      "message": "fsnotify: rename fsnotify_mark_entry to just fsnotify_mark\n\nThe name is long and it serves no real purpose.  So rename\nfsnotify_mark_entry to just fsnotify_mark.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "72acc854427948efed7a83da27f7dc3239ac9afc",
      "tree": "69a8f479a644701a52abe07d7bf2751cdf4cc159",
      "parents": [
        "098cf2fc77ee190c92bf9d08d69a13305f2487ec"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:24 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:53 2010 -0400"
      },
      "message": "fsnotify: kill FSNOTIFY_EVENT_FILE\n\nSome fsnotify operations send a struct file.  This is more information than\nwe technically need.  We instead send a struct path in all cases instead of\nsometimes a path and sometimes a file.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "28c60e37f874dcbb93c4afc839ba5e4911c4f4bc",
      "tree": "6f0ba450d42e9e9d6cc5be2e42dc846f00c44447",
      "parents": [
        "2a12a9d7814631e918dec93abad856e692d5286d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:48 2010 -0400"
      },
      "message": "fsnotify: send struct file when sending events to parents when possible\n\nfanotify needs a path in order to open an fd to the object which changed.\nCurrently notifications to inode\u0027s parents are done using only the inode.\nFor some parental notification we have the entire file, send that so\nfanotify can use it.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2a12a9d7814631e918dec93abad856e692d5286d",
      "tree": "12817004ae9667bf83f869606f38050636edeb61",
      "parents": [
        "8112e2d6a7356e8c3ff1f7f3c86f375ed0305705"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:32 2010 -0400"
      },
      "message": "fsnotify: pass a file instead of an inode to open, read, and write\n\nfanotify, the upcoming notification system actually needs a struct path so it can\ndo opens in the context of listeners, and it needs a file so it can get f_flags\nfrom the original process.  Close was the only operation that already was passing\na struct file to the notification hook.  This patch passes a file for access,\nmodify, and open as well as they are easily available to these hooks.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2dfc1cae4c42b93b831b2417540df2b895ab7108",
      "tree": "e07a0075964fd2cb9210b302114255e16ab1d4c0",
      "parents": [
        "7050c48826d5adb2210bddfb6a67aa13bbe984ed"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:30:52 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:31 2010 -0400"
      },
      "message": "inotify: remove inotify in kernel interface\n\nnothing uses inotify in the kernel, drop it!\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "cccc6bba3f771ef29b33e4f79e70ebc3dba245b0",
      "tree": "0abfed21a68d0ae54217a6f4308046fd30a70186",
      "parents": [
        "123df2944c436c80640c4281c5bc9c7950b18687"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 25 05:07:33 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 08 14:38:36 2010 -0500"
      },
      "message": "Lose the first argument of audit_inode_child()\n\nit\u0027s always equal to -\u003ed_name.name of the second argument\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "123df2944c436c80640c4281c5bc9c7950b18687",
      "tree": "a4fe67a9ce7cd4ae7d54ec94577916d38a0603e6",
      "parents": [
        "6339204ecc2aa2067a99595522de0403f0854bb8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 25 04:57:57 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 08 14:38:36 2010 -0500"
      },
      "message": "Lose the new_name argument of fsnotify_move()\n\nit\u0027s always new_dentry-\u003ed_name.name\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ff52cc2158b32b3b979ca7802b1fd7c70f36e13c",
      "tree": "1156b8a138adef3698636bf28ad3a739c3c5bff3",
      "parents": [
        "63c882a05416e18de6fb59f7dd6da48f3bbe8273"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 11:09:47 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: move events should indicate the event was on a child\n\nfsnotify tells its listeners explicitly when an event happened on the given\ninode verses on the child of the given inode.  (see __fsnotify_parent)\nHowever, the semantics of fsnotify_move() are such that we deliver events\ndirectly to the two parent directories in question (old_dir and new_dir)\ndirectly without using the __fsnotify_parent() call.  fsnotify should be\nadding FS_EVENT_ON_CHILD for the notifications to these parents.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "47882c6f51e8ef41fbbe2bbb746a1ea3228dd7ca",
      "tree": "d3dd3e8d0e4d3e3793f32107077839f787e35fcd",
      "parents": [
        "62ffe5dfba056f7ba81d710fee9f28c58a42fdd6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:47 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: add correlations between events\n\nAs part of the standard inotify events it includes a correlation cookie\nbetween two dentry move operations.  This patch includes the same behaviour\nin fsnotify events.  It is needed so that inotify userspace can be\nimplemented on top of fsnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "62ffe5dfba056f7ba81d710fee9f28c58a42fdd6",
      "tree": "ac0d4afc641bdc8ff76779545fde9c6ae539bdaf",
      "parents": [
        "a2d8bc6cb4a3024661baf877242f123787d0c054"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:43 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: include pathnames with entries when possible\n\nWhen inotify wants to send events to a directory about a child it includes\nthe name of the original file.  This patch collects that filename and makes\nit available for notification.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3c5119c05d624f95f4967d16b38c9624b816bdb9",
      "tree": "0b5f66106aea38e52adf62958762b0a975607322",
      "parents": [
        "c28f7e56e9d95fb531dc3be8df2e7f52bee76d21"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:33 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "dnotify: reimplement dnotify using fsnotify\n\nReimplement dnotify using fsnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c28f7e56e9d95fb531dc3be8df2e7f52bee76d21",
      "tree": "efce13ed8c4f5b312ef0b77950489d52ef5a039a",
      "parents": [
        "3be25f49b9d6a97eae9bcb96d3292072b7658bd8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:29 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: parent event notification\n\ninotify and dnotify both use a similar parent notification mechanism.  We\nadd a generic parent notification mechanism to fsnotify for both of these\nto use.  This new machanism also adds the dentry flag optimization which\nexists for inotify to dnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3be25f49b9d6a97eae9bcb96d3292072b7658bd8",
      "tree": "36f7d96481a47a6bde3c2f961346e940698111e0",
      "parents": [
        "90586523eb4b349806887c62ee70685a49415124"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:26 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: add marks to inodes so groups can interpret how to handle those inodes\n\nThis patch creates a way for fsnotify groups to attach marks to inodes.\nThese marks have little meaning to the generic fsnotify infrastructure\nand thus their meaning should be interpreted by the group that attached\nthem to the inode\u0027s list.\n\ndnotify and inotify  will make use of these markings to indicate which\ninodes are of interest to their respective groups.  But this implementation\nhas the useful property that in the future other listeners could actually\nuse the marks for the exact opposite reason, aka to indicate which inodes\nit had NO interest in.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "90586523eb4b349806887c62ee70685a49415124",
      "tree": "2ba6da637f897bbb2309b141b81801e4151d87b0",
      "parents": [
        "c9059598ea8981d02356eead3188bf7fa4d717b8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:20 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:52 2009 -0400"
      },
      "message": "fsnotify: unified filesystem notification backend\n\nfsnotify is a backend for filesystem notification.  fsnotify does\nnot provide any userspace interface but does provide the basis\nneeded for other notification schemes such as dnotify.  fsnotify\ncan be extended to be the backend for inotify or the upcoming\nfanotify.  fsnotify provides a mechanism for \"groups\" to register for\nsome set of filesystem events and to then deliver those events to\nthose groups for processing.\n\nfsnotify has a number of benefits, the first being actually shrinking the size\nof an inode.  Before fsnotify to support both dnotify and inotify an inode had\n\n        unsigned long           i_dnotify_mask; /* Directory notify events */\n        struct dnotify_struct   *i_dnotify; /* for directory notifications */\n        struct list_head        inotify_watches; /* watches on this inode */\n        struct mutex            inotify_mutex;  /* protects the watches list\n\nBut with fsnotify this same functionallity (and more) is done with just\n\n        __u32                   i_fsnotify_mask; /* all events for this inode */\n        struct hlist_head       i_fsnotify_mark_entries; /* marks on this inode */\n\nThat\u0027s right, inotify, dnotify, and fanotify all in 64 bits.  We used that\nmuch space just in inotify_watches alone, before this patch set.\n\nfsnotify object lifetime and locking is MUCH better than what we have today.\ninotify locking is incredibly complex.  See 8f7b0ba1c8539 as an example of\nwhat\u0027s been busted since inception.  inotify needs to know internal semantics\nof superblock destruction and unmounting to function.  The inode pinning and\nvfs contortions are horrible.\n\nno fsnotify implementers do allocation under locks.  This means things like\nf04b30de3 which (due to an overabundance of caution) changes GFP_KERNEL to\nGFP_NOFS can be reverted.  There are no longer any allocation rules when using\nor implementing your own fsnotify listener.\n\nfsnotify paves the way for fanotify.  In brief fanotify is a notification\nmechanism that delivers the lisener both an \u0027event\u0027 and an open file descriptor\nto the object in question.  This means that fanotify is pathname agnostic.\nSome on lkml may not care for the original companies or users that pushed for\nTALPA, but fanotify was designed with flexibility and input for other users in\nmind.  The readahead group expressed interest in fanotify as it could be used\nto profile disk access on boot without breaking the audit system.  The desktop\nsearch groups have also expressed interest in fanotify as it solves a number\nof the race conditions and problems present with managing inotify when more\nthan a limited number of specific files are of interest.  fanotify can provide\nfor a userspace access control system which makes it a clean interface for AV\nvendors to hook without trying to do binary patching on the syscall table,\nLSM, and everywhere else they do their things today.  With this patch series\nfanotify can be implemented in less than 1200 lines of easy to review code.\nAlmost all of which is the socket based user interface.\n\nThis patch series builds fsnotify to the point that it can implement\ndnotify and inotify_user.  Patches exist and will be sent soon after\nacceptance to finish the in kernel inotify conversion (audit) and implement\nfanotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "aeb5d727062a0238a2f96c9c380fbd2be4640c6f",
      "tree": "51dae8a071fcf42e4431a66d37c5b843c8e99cf6",
      "parents": [
        "2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 02 15:28:45 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:06 2008 -0400"
      },
      "message": "[PATCH] introduce fmode_t, do annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "735643ee6cc5249bfac07fcad0946a5e7aff4423",
      "tree": "e725df246f4a3cf88b6b42a28d859ab969acf81c",
      "parents": [
        "71cc2c2152170b8166f59abb0604dc62073aeb92"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Apr 30 00:55:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "Remove \"#ifdef __KERNEL__\" checks from unexported headers\n\nRemove the \"#ifdef __KERNEL__\" tests from unexported header files in\nlinux/include whose entire contents are wrapped in that preprocessor\ntest.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ece95912db94d98e202cbedb8f35206deb29d83d",
      "tree": "7900aa32e8f8ee26f708471664a5b4024997be40",
      "parents": [
        "6d9851618104a21dbf5ee8260b5f2d4b5229c77e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 06 01:37:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:05 2008 -0800"
      },
      "message": "inotify: send IN_ATTRIB events when link count changes\n\nCurrently, no notification event has been sent when inode\u0027s link count\nchanged.  This is inconvenient for the application in some cases:\n\nSuppose you have the following directory structure\n\n    foo/test\n    bar/\n\nand you watch test.  If someone does \"mv foo/test bar/\", you get event\nIN_MOVE_SELF and you know something has happened with the file \"test\".\nHowever if someone does \"ln foo/test bar/test\" and \"rm foo/test\" you get no\ninotify event for the file \"test\" (only directories \"foo\" and \"bar\" receive\nevents).\n\nFurthermore it could be argued that link count belongs to file\u0027s metadata and\nthus IN_ATTRIB should be sent when it changes.\n\nThe following patch implements sending of IN_ATTRIB inotify events when link\ncount of the inode changes, i.e., when a hardlink to the inode is created or\nwhen it is removed.  This event is sent in addition to all the events sent so\nfar.  In particular, when a last link to a file is removed, IN_ATTRIB event is\nsent in addition to IN_DELETE_SELF event.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Morten Welinder \u003cmwelinder@gmail.com\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.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": "5a190ae69766da9a34bf31200c5cea4c0667cf94",
      "tree": "340c500fe42518abe6d1159a00619b1bd02f07fc",
      "parents": [
        "cfa76f024f7c9e65169425804e5b32e71f66d0ee"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 07 12:19:32 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:18 2007 -0400"
      },
      "message": "[PATCH] pass dentry to audit_inode()/audit_inode_child()\n\nmakes caller simpler *and* allows to scan ancestors\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73d3ec5abad3f1730ac8530899d2c14d92f3ad63",
      "tree": "c2829a1e36ca155eecc7d4b8648fe9755247bec5",
      "parents": [
        "3e2efce067cec0099f99ae59f28feda99b02b498"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jul 13 13:16:39 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 03 10:50:30 2006 -0400"
      },
      "message": "[PATCH] fix missed create event for directory audit\n\nWhen an object is created via a symlink into an audited directory, audit misses\nthe event due to not having collected the inode data for the directory.  Modify\n__audit_inode_child() to copy the parent inode data if a parent wasn\u0027t found in\naudit_names[].\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c937dcc71021f2dbf78f904f03d962dd9bcc130",
      "tree": "6ab53c1cf1235515307d521cecc4f76afa34e137",
      "parents": [
        "6a2bceec0ea7fdc47aef9a3f2f771c201eaabe5d"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 08 23:19:31 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:28 2006 -0400"
      },
      "message": "[PATCH] log more info for directory entry change events\n\nWhen an audit event involves changes to a directory entry, include\na PATH record for the directory itself.  A few other notable changes:\n\n    - fixed audit_inode_child() hooks in fsnotify_move()\n    - removed unused flags arg from audit_inode()\n    - added audit log routines for logging a portion of a string\n\nHere\u0027s some sample output.\n\nbefore patch:\ntype\u003dSYSCALL msg\u003daudit(1149821605.320:26): arch\u003d40000003 syscall\u003d39 success\u003dyes exit\u003d0 a0\u003dbf8d3c7c a1\u003d1ff a2\u003d804e1b8 a3\u003dbf8d3c7c items\u003d1 ppid\u003d739 pid\u003d800 auid\u003d0 uid\u003d0 gid\u003d0 euid\u003d0 suid\u003d0 fsuid\u003d0 egid\u003d0 sgid\u003d0 fsgid\u003d0 tty\u003dttyS0 comm\u003d\"mkdir\" exe\u003d\"/bin/mkdir\" subj\u003droot:system_r:unconfined_t:s0-s0:c0.c255\ntype\u003dCWD msg\u003daudit(1149821605.320:26):  cwd\u003d\"/root\"\ntype\u003dPATH msg\u003daudit(1149821605.320:26): item\u003d0 name\u003d\"foo\" parent\u003d164068 inode\u003d164010 dev\u003d03:00 mode\u003d040755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003droot:object_r:user_home_t:s0\n\nafter patch:\ntype\u003dSYSCALL msg\u003daudit(1149822032.332:24): arch\u003d40000003 syscall\u003d39 success\u003dyes exit\u003d0 a0\u003dbfdd9c7c a1\u003d1ff a2\u003d804e1b8 a3\u003dbfdd9c7c items\u003d2 ppid\u003d714 pid\u003d777 auid\u003d0 uid\u003d0 gid\u003d0 euid\u003d0 suid\u003d0 fsuid\u003d0 egid\u003d0 sgid\u003d0 fsgid\u003d0 tty\u003dttyS0 comm\u003d\"mkdir\" exe\u003d\"/bin/mkdir\" subj\u003droot:system_r:unconfined_t:s0-s0:c0.c255\ntype\u003dCWD msg\u003daudit(1149822032.332:24):  cwd\u003d\"/root\"\ntype\u003dPATH msg\u003daudit(1149822032.332:24): item\u003d0 name\u003d\"/root\" inode\u003d164068 dev\u003d03:00 mode\u003d040750 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003droot:object_r:user_home_dir_t:s0\ntype\u003dPATH msg\u003daudit(1149822032.332:24): item\u003d1 name\u003d\"foo\" inode\u003d164010 dev\u003d03:00 mode\u003d040755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003droot:object_r:user_home_t:s0\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.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": "1b9a3917366028cc451a98dd22e3bcd537d4e5c1",
      "tree": "d911058720e0a9aeeaf9f407ccdc6fbf4047f47d",
      "parents": [
        "3661f00e2097676847deb01add1a0918044bd816",
        "71e1c784b24a026a490b3de01541fc5ee14ebc09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:24:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:24:53 2006 -0800"
      },
      "message": "Merge branch \u0027audit.b3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: (22 commits)\n  [PATCH] fix audit_init failure path\n  [PATCH] EXPORT_SYMBOL patch for audit_log, audit_log_start, audit_log_end and audit_format\n  [PATCH] sem2mutex: audit_netlink_sem\n  [PATCH] simplify audit_free() locking\n  [PATCH] Fix audit operators\n  [PATCH] promiscuous mode\n  [PATCH] Add tty to syscall audit records\n  [PATCH] add/remove rule update\n  [PATCH] audit string fields interface + consumer\n  [PATCH] SE Linux audit events\n  [PATCH] Minor cosmetic cleanups to the code moved into auditfilter.c\n  [PATCH] Fix audit record filtering with !CONFIG_AUDITSYSCALL\n  [PATCH] Fix IA64 success/failure indication in syscall auditing.\n  [PATCH] Miscellaneous bug and warning fixes\n  [PATCH] Capture selinux subject/object context information.\n  [PATCH] Exclude messages by message type\n  [PATCH] Collect more inode information during syscall processing.\n  [PATCH] Pass dentry, not just name, in fsnotify creation hooks.\n  [PATCH] Define new range of userspace messages.\n  [PATCH] Filter rule comparators\n  ...\n\nFixed trivial conflict in security/selinux/hooks.c\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": "73241ccca0f7786933f1d31b3d86f2456549953a",
      "tree": "daa7efabfb7aa2f511a467606786820949e8763e",
      "parents": [
        "f38aa94224c5517a40ba56d453779f70d3229803"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Nov 03 16:00:25 2005 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 20 14:08:53 2006 -0500"
      },
      "message": "[PATCH] Collect more inode information during syscall processing.\n\nThis patch augments the collection of inode info during syscall\nprocessing. It represents part of the functionality that was provided\nby the auditfs patch included in RHEL4.\n\nSpecifically, it:\n\n- Collects information for target inodes created or removed during\n  syscalls.  Previous code only collects information for the target\n  inode\u0027s parent.\n\n- Adds the audit_inode() hook to syscalls that operate on a file\n  descriptor (e.g. fchown), enabling audit to do inode filtering for\n  these calls.\n\n- Modifies filtering code to check audit context for either an inode #\n  or a parent inode # matching a given rule.\n\n- Modifies logging to provide inode # for both parent and child.\n\n- Protect debug info from NULL audit_names.name.\n\n[AV: folded a later typo fix from the same author]\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f38aa94224c5517a40ba56d453779f70d3229803",
      "tree": "30d0f7390cb2f1cf33a55080cb6c0676727af1fa",
      "parents": [
        "90d526c074ae5db484388da56c399acf892b6c17"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Nov 03 15:57:06 2005 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 20 14:08:53 2006 -0500"
      },
      "message": "[PATCH] Pass dentry, not just name, in fsnotify creation hooks.\n\nThe audit hooks (to be added shortly) will want to see dentry-\u003ed_inode\ntoo, not just the name.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.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": "00dd1e433967872f3997a45d5adf35056fdf2f56",
      "tree": "234735d17dc912f34a14eefd6299313357bfd5c5",
      "parents": [
        "dc836b5b6fcde95f750a4790d8200fabaf563dc9"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Mon Aug 08 22:13:05 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Aug 08 19:22:42 2005 -0700"
      },
      "message": "[PATCH] fsnotify-cleanups\n\nThis removes the now unused fsnotify_unlink \u0026 fsnotify_rmdir code.\nCompile tested.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a91bf7f5c22c8407a9991cbd9ce5bb87caa6b4a",
      "tree": "ffd77cfbf621a990052c1277d8a18451b9363dda",
      "parents": [
        "1963c907b21e140082d081b1c8f8c2154593c7d7"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Mon Aug 08 13:52:16 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Aug 08 11:53:47 2005 -0700"
      },
      "message": "[PATCH] fsnotify_name/inoderemove\n\nThe patch below unhooks fsnotify from vfs_unlink \u0026 vfs_rmdir.  It\nintroduces two new fsnotify calls, that are hooked in at the dcache\nlevel.  This not only more closely matches how the VFS layer works, it\nalso avoids the problem with locking and inode lifetimes.\n\nThe two functions are\n\n - fsnotify_nameremove -- called when a directory entry is going away.\n   It notifies the PARENT of the deletion.  This is called from\n   d_delete().\n\n - inoderemove -- called when the files inode itself is going away.  It\n   notifies the inode that is being deleted.  This is called from\n   dentry_iput().\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0c3dba1534569734ba353afdf3f11def497ff2ac",
      "tree": "ec52740643c710072aab5122e96851c63ed049a0",
      "parents": [
        "f10eff26831159f52353e8f15c37cdb2935d5fbf"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Thu Aug 04 21:12:54 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 04 21:37:39 2005 -0700"
      },
      "message": "[PATCH] Clean up inotify delete race fix\n\nThis avoids the whole #ifdef mess by just getting a copy of\ndentry-\u003ed_inode before d_delete is called - that makes the codepaths the\nsame for the INOTIFY/DNOTIFY cases as for the regular no-notify case.\nI\u0027ve been running this under a Gnome session for the last 10 minutes.\nInotify is being used extensively.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7544953685859875b5ac0260b6b1856066c092d6",
      "tree": "acfe43ff758f7d7a6d0c575ca0e4f343b3640984",
      "parents": [
        "be2ac68f7b66e90b8d25c168fc4d033b034f5c43"
      ],
      "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 file deletion by rename detection\n\nWhen a file is moved over an existing file that you are watching,\ninotify won\u0027t send you a DELETE_SELF event and it won\u0027t unref the inode\nuntil the inotify instance is closed by the application.\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": "5995f16b4a464c8a57de7c9d5ddf4758dbacad41",
      "tree": "e26de11916f1f6234f954b262837501aca263da7",
      "parents": [
        "0399cb08c54708db231d616f106f64d920e0b723"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Wed Jul 13 12:38:39 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 13 11:09:31 2005 -0700"
      },
      "message": "[PATCH] inotify: event ordering\n\nThis rearranges the event ordering for \"open\" to be consistent with the\nordering of the other events.\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"
    }
  ]
}
