)]}'
{
  "log": [
    {
      "commit": "8c1934c8d70b22ca8333b216aec6c7d09fdbd6a6",
      "tree": "25fffb46e0b1594aa692ed10e755b6ae041022bc",
      "parents": [
        "611da04f7a31b2208e838be55a42c7a1310ae321"
      ],
      "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:49 2010 -0400"
      },
      "message": "inotify: allow users to request not to recieve events on unlinked children\n\nAn inotify watch on a directory will send events for children even if those\nchildren have been unlinked.  This patch add a new inotify flag IN_EXCL_UNLINK\nwhich allows a watch to specificy they don\u0027t care about unlinked children.\nThis should fix performance problems seen by tasks which add a watch to\n/tmp and then are overrun with events when other processes are reading and\nwriting to unlinked files they created in /tmp.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d16296\n\nRequested-by: Matthias Clasen \u003cmclasen@redhat.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "611da04f7a31b2208e838be55a42c7a1310ae321",
      "tree": "f72cdd659943dbd92eb401de00bab2b21a1eab67",
      "parents": [
        "ff311008ab8d2f2cfdbbefd407d1b05acc8164b2"
      ],
      "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:49 2010 -0400"
      },
      "message": "inotify: send IN_UNMOUNT events\n\nSince the .31 or so notify rewrite inotify has not sent events about\ninodes which are unmounted.  This patch restores those events.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ff311008ab8d2f2cfdbbefd407d1b05acc8164b2",
      "tree": "f6d21c7c5834cd2f84b4ed1281bbaa057c46187c",
      "parents": [
        "e4e047a22058f48544b16728e0f15a3fc12bb0cf"
      ],
      "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:48 2010 -0400"
      },
      "message": "inotify: fix inotify oneshot support\n\nDuring the large inotify rewrite to fsnotify I completely dropped support\nfor IN_ONESHOT.  Reimplement that support.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e4e047a22058f48544b16728e0f15a3fc12bb0cf",
      "tree": "89278b999107ea537ff4d1d6e129035b0edec1ec",
      "parents": [
        "08ae89380a8210a9965d04083e1de78cb8bca4b1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 20 01:36:28 2010 +1000"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:03 2010 -0400"
      },
      "message": "fsnotify: update gfp/slab.h includes\n\nImplicit slab.h inclusion via percpu.h is about to go away.  Make sure\ngfp.h or slab.h is included as necessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "08ae89380a8210a9965d04083e1de78cb8bca4b1",
      "tree": "95ef9493b5a6152e7c683d2d5a8531844530f0f7",
      "parents": [
        "269ed32a9ce00132b9372e9c00014532e054d6b2"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 27 09:41:40 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:03 2010 -0400"
      },
      "message": "fanotify: drop the useless priority argument\n\nThe priority argument in fanotify is useless.  Kill it.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "269ed32a9ce00132b9372e9c00014532e054d6b2",
      "tree": "8a5870e0ce17d92c9437c3e79c2ff535652b9de2",
      "parents": [
        "0a24887afacefbe2c44e0eee4150b43959a60665"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 27 09:29:37 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:03 2010 -0400"
      },
      "message": "fanotify: default Kconfig to n\n\nfanotify has default to y in linux-next since it\u0027s inception but default to\nn in the final push to Linus.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "0a24887afacefbe2c44e0eee4150b43959a60665",
      "tree": "3d703177948eb345379b93751d343d798c6e33cf",
      "parents": [
        "fb1cfb88c8597d847553f39efc2bbd41c72c5f50"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Fri May 14 15:35:21 2010 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:02 2010 -0400"
      },
      "message": "inotify_user.c: make local symbol static\n\nThe symbol inotify_max_user_watches is not used outside this\nfile and should be static.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nCc: Robert Love \u003crlove@rlove.org\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\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": "b31d397e430a90cbe9d3656929a7d5f96e986666",
      "tree": "bafe176811479d922e2f19f4386f34a11a30c39f",
      "parents": [
        "98b5c10d320adfa250c1c18f3ccaec2f78e5e11d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 21 16:49:38 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:02 2010 -0400"
      },
      "message": "fsnotify: call iput on inodes when no longer marked\n\nfsnotify takes an igrab on an inode when it adds a mark.  The code was\nsupposed to drop the reference when the mark was removed but didn\u0027t.\nThis caused problems when an fs was unmounted because those inodes would\nclearly not be gone.  Thus resulting in the most devistating of messages:\n\nVFS: Busy inodes after unmount of loop0. Self-destruct in 5 seconds.\n\u003e\u003e\u003e Have a nice day...\n\nJiri Slaby bisected the problem to a patch in the fsnotify tree.  The\ncode snippets below show my stupidity quite clearly.\n\nvoid fsnotify_destroy_inode_mark(struct fsnotify_mark *mark)\n{\n\t...\n\tmark-\u003einode \u003d NULL;\n\t...\n}\n\nvoid fsnotify_destroy_mark(struct fsnotify_mark *mark)\n{\n\tstruct inode *inode \u003d NULL;\n\t...\n\tif (mark-\u003eflags \u0026 FSNOTIFY_MARK_FLAG_INODE) {\n\t\tfsnotify_destroy_inode_mark(mark);\n\t\tinode \u003d mark-\u003ei.inode;\n\t}\n\t...\n\tif (inode)\n\t\tiput(inode);\n\t...\n}\n\nObviously the intent was to capture the inode before it was set to NULL in\nfsnotify_destory_inode_mark() so we wouldn\u0027t be leaking inodes forever.\nInstead we leaked them (and exploded on umount)\n\nReported-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "98b5c10d320adfa250c1c18f3ccaec2f78e5e11d",
      "tree": "7ca8ca16bea8b514cd416fddb012108e8b74e83a",
      "parents": [
        "8860f060e473dce1a0873d92105d536f72b05908"
      ],
      "author": {
        "name": "Jean-Christophe Dubois",
        "email": "jcd@tribudubois.net",
        "time": "Tue Mar 23 08:08:09 2010 +0100"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:02 2010 -0400"
      },
      "message": "fanotify: do not always return 0 in fsnotify\n\nIt seems to me you are always returning 0 in fsnotify, when you should return\nthe error (EPERM) returned by fanotify.\n\nSigned-off-by: Jean-Christophe DUBOIS \u003cjcd@tribudubois.net\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "8860f060e473dce1a0873d92105d536f72b05908",
      "tree": "38f3d1f49a921ba28fec88d1046acbf2207bd831",
      "parents": [
        "b2d879096ac799722e6017ee82c0586f0d101c9c"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Dec 23 00:10:25 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:02 2010 -0400"
      },
      "message": "fanotify: do not return 0 in a void function\n\nremove_access_response() is supposed to have a void return, but was\nreturning 0;\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b2d879096ac799722e6017ee82c0586f0d101c9c",
      "tree": "3628e99772d2bf51ce736a775a056bffaae44e8c",
      "parents": [
        "9e66e4233db9c7e31e9ee706be2c9ddd54cf99b3"
      ],
      "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:02 2010 -0400"
      },
      "message": "fanotify: userspace interface for permission responses\n\nfanotify groups need to respond to events which include permissions types.\nTo do so groups will send a response using write() on the fanotify_fd they\nhave open.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "9e66e4233db9c7e31e9ee706be2c9ddd54cf99b3",
      "tree": "9d778b358fb6e5f02fb2cf634c2163f34982b7dd",
      "parents": [
        "c4ec54b40d33f8016fea970a383cc584dd0e6019"
      ],
      "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:02 2010 -0400"
      },
      "message": "fanotify: permissions and blocking\n\nThis is the backend work needed for fanotify to support the new\nFS_OPEN_PERM and FS_ACCESS_PERM fsnotify events.  This is done using the\nnew fsnotify secondary queue.  No userspace interface is provided actually\nrespond to or request these events.\n\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": "d14f1729483fad3a8817fbbcbd017678b7d1ad26",
      "tree": "ebb47471a0fff9e0bce46043d147f445584acfb0",
      "parents": [
        "6e006701ccc1590500186ef21e074bd900c5dd67"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Thu Feb 25 20:28:57 2010 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:01 2010 -0400"
      },
      "message": "sysctl extern cleanup: inotify\n\nExtern declarations in sysctl.c should be move to their own head file, and\nthen include them in relavant .c files.\n\nMove inotify_table extern declaration to linux/inotify.h\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "6e006701ccc1590500186ef21e074bd900c5dd67",
      "tree": "e8c1ac5898517b73a6da61be1f7c496138de8748",
      "parents": [
        "59b0df211bd9699d7e0d01fcf9345a149f75b033"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jan 20 22:27:56 2010 +0200"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:01 2010 -0400"
      },
      "message": "dnotify: move dir_notify_enable declaration\n\nMove dir_notify_enable declaration to where it belongs -- dnotify.h .\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\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": "43ed7e16a8b47059d7f6ff67ba76f383a2421de3",
      "tree": "be4efb3c2241572ab3954b86e287c9e7d58a5e7e",
      "parents": [
        "6e5f77b32e9097a8a68a8d453799676cacf70cad"
      ],
      "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": "fanotify: use merge argument to determine actual event added to queue\n\nfanotify needs to know the actual event added to queues so it can be\ncorrectly checked for return values from userspace.  To do this we need to\npass that information from the merger code back to the main even handling\nroutine.  Currently that information is unused, but it will be.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "6e5f77b32e9097a8a68a8d453799676cacf70cad",
      "tree": "2a0211ecd5d79648e74fdf9f851a0669c5e4cc8a",
      "parents": [
        "cb2d429faf2cae62d3c51e28099a181d5fe8c244"
      ],
      "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: intoduce a notification merge argument\n\nEach group can define their own notification (and secondary_q) merge\nfunction.  Inotify does tail drop, fanotify does matching and drop which\ncan actually allocate a completely new event.  But for fanotify to properly\ndeal with permissions events it needs to know the new event which was\nultimately added to the notification queue.  This patch just implements a\nvoid ** argument which is passed to the merge function.  fanotify can use\nthis field to pass the new event back to higher layers.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nfor fanotify to properly deal with permissions events\n"
    },
    {
      "commit": "cb2d429faf2cae62d3c51e28099a181d5fe8c244",
      "tree": "401bc8d85e7228f868775269e6d97c3150f9a3a7",
      "parents": [
        "4d92604cc90aa18bbbe0f6e23b7a9fdb612836d3"
      ],
      "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: add group priorities\n\nThis introduces an ordering to fsnotify groups.  With purely asynchronous\nnotification based \"things\" implementing fsnotify (inotify, dnotify) ordering\nisn\u0027t particularly important.  But if people want to use fsnotify for the\nbasis of sycronous notification or blocking notification ordering becomes\nimportant.\n\neg. A Hierarchical Storage Management listener would need to get its event\nbefore an AV scanner could get its event (since the HSM would need to\nbring the data in for the AV scanner to scan.)  Typically asynchronous notification\nwould want to run after the AV scanner made any relevant access decisions\nso as to not send notification about an event that was denied.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4d92604cc90aa18bbbe0f6e23b7a9fdb612836d3",
      "tree": "c04b26fb38a8524fa5e204cb9e40870afa9823f9",
      "parents": [
        "c9778a98e7440fb73e0d27b8155a688663a0d493"
      ],
      "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:00 2010 -0400"
      },
      "message": "fanotify: clear all fanotify marks\n\nfanotify listeners may want to clear all marks.  They may want to do this\nto destroy all of their inode marks which have nothing but ignores.\nRealistically this is useful for av vendors who update policy and want to\nclear all of their cached allows.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "c9778a98e7440fb73e0d27b8155a688663a0d493",
      "tree": "838acd5f9438661015c32211d487ef618807a798",
      "parents": [
        "c908370fc1ac27fd7e1fc0f34c693047b26564ce"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:00 2010 -0400"
      },
      "message": "fanotify: allow ignored_masks to survive modify\n\nSome users may want to truely ignore an inode even if it has been modified.\nSay you are wanting a mount which contains a log file and you really don\u0027t\nwant any notification about that file.  This patch allows the listener to\ndo that.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "c908370fc1ac27fd7e1fc0f34c693047b26564ce",
      "tree": "681cc398050764d04d34652c072790b8c1851d3e",
      "parents": [
        "e898386146deb49a0b45ff1887d9da149c003209"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:00 2010 -0400"
      },
      "message": "fsnotify: allow ignored_mask to survive modification\n\nSome inodes a group may want to never hear about a set of events even if\nthe inode is modified.  We add a new mark flag which indicates that these\nmarks should not have their ignored_mask cleared on modification.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e898386146deb49a0b45ff1887d9da149c003209",
      "tree": "6238ddb50919383139e7937c75a21524faacf03d",
      "parents": [
        "b9e4e3bd0495fea9e8f8e712889c9cd8ffa43c94"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:00 2010 -0400"
      },
      "message": "fsnotify: clear ignored mask on modify\n\nOn inode modification we clear the ignored mask for all of the marks on the\ninode.  This allows userspace to ignore accesses to inodes until there is\nsomething different.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b9e4e3bd0495fea9e8f8e712889c9cd8ffa43c94",
      "tree": "914a16f5098cf0ee3e01e6d47e6c7c9bf3613899",
      "parents": [
        "32a4df13b88afef2a7d869bb7586a7beba90961f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:00 2010 -0400"
      },
      "message": "fanotify: allow users to set an ignored_mask\n\nChange the sys_fanotify_mark() system call so users can set ignored_masks\non inodes.  Remember, if a user new sets a real mask, and only sets ignored\nmasks, the ignore will never be pinned in memory.  Thus ignored_masks can\nbe lost under memory pressure and the user may again get events they\npreviously thought were ignored.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "32a4df13b88afef2a7d869bb7586a7beba90961f",
      "tree": "851f113874bd627725f2596750bb6437d9b228f1",
      "parents": [
        "33af5e32e0bb73c704b5e156f4411cdb53e6cc59"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:00 2010 -0400"
      },
      "message": "fanotify: ignored_mask to ignore events\n\nWhen fanotify receives an event it will check event-\u003emask \u0026 ~ignored_mask.\nIf no bits are left the event will not be sent.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "33af5e32e0bb73c704b5e156f4411cdb53e6cc59",
      "tree": "c427a66b81498c14598ed4161e3646930a805043",
      "parents": [
        "90b1e7a57880fb66437ab7db39e1e65ca0372822"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:59:00 2010 -0400"
      },
      "message": "fsnotify: ignored_mask - excluding notification\n\nThe ignored_mask is a new mask which is part of fsnotify marks.  A group\u0027s\nshould_send_event() function can use the ignored mask to determine that\ncertain events are not of interest.  In particular if a group registers a\nmask including FS_OPEN on a vfsmount they could add FS_OPEN to the\nignored_mask for individual inodes and not send open events for those\ninodes.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "90b1e7a57880fb66437ab7db39e1e65ca0372822",
      "tree": "61b7195c84d9dfd057ed3dcb07c5fc831db6a3a9",
      "parents": [
        "33d3dfff451a2ab6fe2f6aaabed9b24e91aad109"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:59 2010 -0400"
      },
      "message": "fsnotify: allow marks to not pin inodes in core\n\ninotify marks must pin inodes in core.  dnotify doesn\u0027t technically need to\nsince they are closed when the directory is closed.  fanotify also need to\npin inodes in core as it works today.  But the next step is to introduce\nthe concept of \u0027ignored masks\u0027 which is actually a mask of events for an\ninode of no interest.  I claim that these should be liberally sent to the\nkernel and should not pin the inode in core.  If the inode is brought back\nin the listener will get an event it may have thought excluded, but this is\nnot a serious situation and one any listener should deal with.\n\nThis patch lays the ground work for non-pinning inode marks by using lazy\ninode pinning.  We do not pin a mark until it has a non-zero mask entry.  If a\nlistener new sets a mask we never pin the inode.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "33d3dfff451a2ab6fe2f6aaabed9b24e91aad109",
      "tree": "a947ac296cdd30035ef1901fcd99f87756479f07",
      "parents": [
        "88380fe66e0ac22529f5426ab27d67da00ed2628"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:29 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:59 2010 -0400"
      },
      "message": "fanotify: remove outgoing function checks in fanotify.h\n\nA number of validity checks on outgoing data are done in static inlines but\nare only used in one place.  Instead just do them where they are used for\nreadability.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "88380fe66e0ac22529f5426ab27d67da00ed2628",
      "tree": "2585cd0b8407263628696476be7aa4f5b7d24a1b",
      "parents": [
        "f3640192c0a177506ec08ab07ed3178b912574da"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:29 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:59 2010 -0400"
      },
      "message": "fanotify: remove fanotify.h declarations\n\nfanotify_mark_validate functions are all needlessly declared in headers as\nstatic inlines.  Instead just do the checks where they are needed for code\nreadability.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "f3640192c0a177506ec08ab07ed3178b912574da",
      "tree": "cbea6c5163a02b154b7077238c3e056e79bfe668",
      "parents": [
        "eac8e9e80ccbd30801b7b76a2ee4c6c5a681e53c"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:29 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:59 2010 -0400"
      },
      "message": "fanotify: split fanotify_remove_mark\n\nsplit fanotify_remove_mark into fanotify_remove_inode_mark and\nfanotify_remove_vfsmount_mark.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "eac8e9e80ccbd30801b7b76a2ee4c6c5a681e53c",
      "tree": "c88fd90edfcf388d03d369c141683c4086b819dc",
      "parents": [
        "0ff21db9fcc39042b814dad8a4b7508710a75235"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:29 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:59 2010 -0400"
      },
      "message": "fanotify: rename FAN_MARK_ON_VFSMOUNT to FAN_MARK_MOUNT\n\nthe term \u0027vfsmount\u0027 isn\u0027t sensicle to userspace.  instead call is \u0027mount.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "0ff21db9fcc39042b814dad8a4b7508710a75235",
      "tree": "a650b240f64893f86626b8b4a4b694446190aa3a",
      "parents": [
        "90dd201d1ab064512078a77762a793e0bf5f3040"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:29 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:59 2010 -0400"
      },
      "message": "fanotify: hooks the fanotify_mark syscall to the vfsmount code\n\nCreate a new fanotify_mark flag which indicates we should attach the mark\nto the vfsmount holding the object referenced by dfd and pathname rather\nthan the inode itself.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "90dd201d1ab064512078a77762a793e0bf5f3040",
      "tree": "23da2eabf9d2b5182ef831bf043189b5a1c1b371",
      "parents": [
        "52202dfbd9107787dc68a2019cc7be4e79f52e5c"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:58 2010 -0400"
      },
      "message": "fanotify: remove fanotify_add_mark\n\nfanotify_add_mark now does nothing useful anymore, drop it.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "52202dfbd9107787dc68a2019cc7be4e79f52e5c",
      "tree": "58643c1d6b9d7cb3f1b5648396cd8aabd8ee5ef8",
      "parents": [
        "912ee3946c5e57de0d05baf3b60b65ce6bf3ff96"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:58 2010 -0400"
      },
      "message": "fanotify: do not return pointer from fanotify_add_*_mark\n\nNo need to return the mark from fanotify_add_*_mark to fanotify_add_mark\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "912ee3946c5e57de0d05baf3b60b65ce6bf3ff96",
      "tree": "e6b9c6f4ab5f513e088159a2aa759e3f225559e7",
      "parents": [
        "088b09b0ac7a866a35962eeaea5d5607bd1840b7"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:58 2010 -0400"
      },
      "message": "fanotify: do not call fanotify_update_object_mask in fanotify_add_mark\n\nRecalculate masks in fanotify_add_mark, don\u0027t use\nfanotify_update_object_mask.  This gets us one step closers to readable\ncode.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "088b09b0ac7a866a35962eeaea5d5607bd1840b7",
      "tree": "9028cacd5ef98f34abeaa8fb68289745e0aaba20",
      "parents": [
        "c6223f464927cab9f4b10169b78c51d84228faf8"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:58 2010 -0400"
      },
      "message": "fanotify: do not call fanotify_update_object_mask in fanotify_remove_mark\n\nRecalculate masks in fanotify_remove_mark, don\u0027t use\nfanotify_update_object_mask.  This gets us one step closers to readable\ncode.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "c6223f464927cab9f4b10169b78c51d84228faf8",
      "tree": "464c653708f753a4969658929eaf223d938cd30b",
      "parents": [
        "88826276dcaf4cef9cc7c2695ff15c6d20d4a74d"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:58 2010 -0400"
      },
      "message": "fanotify: remove fanotify_update_mark\n\nfanotify_update_mark() doesn\u0027t do much useful;  remove it.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "88826276dcaf4cef9cc7c2695ff15c6d20d4a74d",
      "tree": "bb90774f639a1b69546e8f0504a8e9c76582de94",
      "parents": [
        "1c529063a3e4c15eaae28db31326a7aaab7091b5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:57 2010 -0400"
      },
      "message": "fanotify: infrastructure to add an remove marks on vfsmounts\n\ninfrastructure work to add and remove marks on vfsmounts.  This should get\nevery set up except wiring the functions to the syscalls.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "1c529063a3e4c15eaae28db31326a7aaab7091b5",
      "tree": "100a27418becd6c23eeb1b7c4426fea006d6bfd6",
      "parents": [
        "ca9c726eea013394d1e846331b117effb21ead83"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:28 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:57 2010 -0400"
      },
      "message": "fanotify: should_send_event needs to handle vfsmounts\n\ncurrently should_send_event in fanotify only cares about marks on inodes.\nThis patch extends that interface to indicate that it cares about events\nthat happened on vfsmounts.\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": "0d48b7f01f442bc88a69aa98f3b6b015f2817608",
      "tree": "6b484d9b8ac355609e9b2783169ed584cc365f9a",
      "parents": [
        "2504c5d63b811b71bbaa8d5d5af163e698f4df1f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "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: vfsmount marks generic functions\n\nMuch like inode-mark.c has all of the code dealing with marks on inodes\nthis patch adds a vfsmount-mark.c which has similar code but is intended\nfor marks on vfsmounts.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2504c5d63b811b71bbaa8d5d5af163e698f4df1f",
      "tree": "4ff736af6b00fd5cbf0cd6a4d6bbcadb6dde9bd8",
      "parents": [
        "ba643f04cdda170215c8820acd3e201936fc512d"
      ],
      "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/vfsmount: add fsnotify fields to struct vfsmount\n\nThis patch adds the list and mask fields needed to support vfsmount marks.\nThese are the same fields fsnotify needs on an inode.  They are not used,\njust declared and we note where the cleanup hook should be (the function is\nnot yet defined)\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ba643f04cdda170215c8820acd3e201936fc512d",
      "tree": "ad871aa57096cd228f666405f370170f70b26968",
      "parents": [
        "5444e2981c31d0ed7465475e451b8437084337e5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "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: clear marks to 0 in fsnotify_init_mark\n\nCurrently fsnotify_init_mark sets some fields to 0/NULL.  Some users\nalready used some sorts of zalloc, some didn\u0027t.  This patch uses memset to\nexplicitly zero everything in the fsnotify_mark when it is initialized so we\ndon\u0027t have to be careful if fields are later added to marks.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "5444e2981c31d0ed7465475e451b8437084337e5",
      "tree": "66b6d84b7aab886b44a3467a139d258d9aba09df",
      "parents": [
        "32c3263221bd63316815286dccacdc7abfd7f3c4"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "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: split generic and inode specific mark code\n\ncurrently all marking is done by functions in inode-mark.c.  Some of this\nis pretty generic and should be instead done in a generic function and we\nshould only put the inode specific code in inode-mark.c\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "32c3263221bd63316815286dccacdc7abfd7f3c4",
      "tree": "9dad12d5b966cf42d7506e10fb2e3c8d955415d3",
      "parents": [
        "22aa425dec9e47051624714ae283eb2b6a473013"
      ],
      "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:56 2010 -0400"
      },
      "message": "fanotify: Add pids to events\n\nPass the process identifiers of the triggering processes to fanotify\nlisteners: this information is useful for event filtering and logging.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "22aa425dec9e47051624714ae283eb2b6a473013",
      "tree": "6412e7241a30f3ce151ff29314d3a39190b8dae7",
      "parents": [
        "9bbfc964b89009d0cadcec7027afc92ee742e95e"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:56 2010 -0400"
      },
      "message": "fanotify: create_fd cleanup\n\nCode cleanup which does the fd creation work seperately from the userspace\nmetadata creation.  It fits better with the other code.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "9bbfc964b89009d0cadcec7027afc92ee742e95e",
      "tree": "9dceb71cd3d744ec2c295edbb2542adf9b8d803f",
      "parents": [
        "ef601a9cfd21fe9ce57e0ee3f4a31552ffb96366"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:56 2010 -0400"
      },
      "message": "fanotify: CONFIG_HAVE_SYSCALL_WRAPPERS for sys_fanotify_mark\n\nPlease note that you need the patch below in addition, otherwise the\nsyscall wrapper stuff won\u0027t work on those 32 bit architectures which enable\nthe wrappers.\n\nWhen enabled the syscall wrapper defines always take long parameters and then\ncast them to whatever is needed. This approach doesn\u0027t work for the 32 bit\ncase where the original syscall takes a long long parameter, since we would\nlose the upper 32 bits.\nSo syscalls with 64 bit arguments are special cases wrt to syscall wrappers\nand enp up in the ugliness below (see also sys_fallocate). In addition these\nspecial cased syscall wrappers have the drawback that ftrace syscall tracing\ndoesn\u0027t work on them, since they don\u0027t get defined by using the usual macros.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ef601a9cfd21fe9ce57e0ee3f4a31552ffb96366",
      "tree": "6b268bba6e0bb4ef09f634519a13233c10cb2a5a",
      "parents": [
        "a1014f102322398e67524b68b3300acf384e6c1f"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:56 2010 -0400"
      },
      "message": "fanotify: select ANON_INODES.\n\nfanotify references anon_inode_getfd(), which is only available with\nANON_INODES enabled. Presently this bails out with the following:\n\n  LD      vmlinux\nfs/built-in.o: In function `sys_fanotify_init\u0027:\n(.text+0x26d1c): undefined reference to `anon_inode_getfd\u0027\nmake: *** [vmlinux] Error 1\n\nwhich is trivially corrected by adding an ANON_INODES select.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "a1014f102322398e67524b68b3300acf384e6c1f",
      "tree": "2d9d82e6a3d84bae796e4aedfd8be3409be6a4c3",
      "parents": [
        "2a3edf86040a7e15684525a2aadc29f532c51325"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:56 2010 -0400"
      },
      "message": "fanotify: send events using read\n\nSend events to userspace by reading the file descriptor from fanotify_init().\nOne will get blocks of data which look like:\n\nstruct fanotify_event_metadata {\n\t__u32 event_len;\n\t__u32 vers;\n\t__s32 fd;\n\t__u64 mask;\n\t__s64 pid;\n\t__u64 cookie;\n} __attribute__ ((packed));\n\nSimple code to retrieve and deal with events is below\n\n\twhile ((len \u003d read(fan_fd, buf, sizeof(buf))) \u003e 0) {\n\t\tstruct fanotify_event_metadata *metadata;\n\n\t\tmetadata \u003d (void *)buf;\n\t\twhile(FAN_EVENT_OK(metadata, len)) {\n\t\t\t[PROCESS HERE!!]\n\t\t\tif (metadata-\u003efd \u003e\u003d 0 \u0026\u0026 close(metadata-\u003efd) !\u003d 0)\n\t\t\t\tgoto fail;\n\t\t\tmetadata \u003d FAN_EVENT_NEXT(metadata, len);\n\t\t}\n\t}\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2a3edf86040a7e15684525a2aadc29f532c51325",
      "tree": "cf0a5436139125d054fe46b75d5388c914b22c21",
      "parents": [
        "bbaa4168b2d2d8cc674e6d35806e8426aef464b8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:56 2010 -0400"
      },
      "message": "fanotify: fanotify_mark syscall implementation\n\nNAME\n\tfanotify_mark - add, remove, or modify an fanotify mark on a\nfilesystem object\n\nSYNOPSIS\n\tint fanotify_mark(int fanotify_fd, unsigned int flags, u64 mask,\n\t\t\t  int dfd, const char *pathname)\n\nDESCRIPTION\n\tfanotify_mark() is used to add remove or modify a mark on a filesystem\n\tobject.  Marks are used to indicate that the fanotify group is\n\tinterested in events which occur on that object.  At this point in\n\ttime marks may only be added to files and directories.\n\n\tfanotify_fd must be a file descriptor returned by fanotify_init()\n\n\tThe flags field must contain exactly one of the following:\n\n\tFAN_MARK_ADD - or the bits in mask and ignored mask into the mark\n\tFAN_MARK_REMOVE - bitwise remove the bits in mask and ignored mark\n\t\tfrom the mark\n\n\tThe following values can be OR\u0027d into the flags field:\n\n\tFAN_MARK_DONT_FOLLOW - same meaning as O_NOFOLLOW as described in open(2)\n\tFAN_MARK_ONLYDIR - same meaning as O_DIRECTORY as described in open(2)\n\n\tdfd may be any of the following:\n\tAT_FDCWD: the object will be lookup up based on pathname similar\n\t\tto open(2)\n\n\tfile descriptor of a directory: if pathname is not NULL the\n\t\tobject to modify will be lookup up similar to openat(2)\n\n\tfile descriptor of the final object: if pathname is NULL the\n\t\tobject to modify will be the object referenced by dfd\n\n\tThe mask is the bitwise OR of the set of events of interest such as:\n\tFAN_ACCESS\t\t- object was accessed (read)\n\tFAN_MODIFY\t\t- object was modified (write)\n\tFAN_CLOSE_WRITE\t\t- object was writable and was closed\n\tFAN_CLOSE_NOWRITE\t- object was read only and was closed\n\tFAN_OPEN\t\t- object was opened\n\tFAN_EVENT_ON_CHILD\t- interested in objected that happen to\n\t\t\t\t  children.  Only relavent when the object\n\t\t\t\t  is a directory\n\tFAN_Q_OVERFLOW\t\t- event queue overflowed (not implemented)\n\nRETURN VALUE\n\tOn success, this system call returns 0. On error, -1 is\n\treturned, and errno is set to indicate the error.\n\nERRORS\n\tEINVAL An invalid value was specified in flags.\n\n\tEINVAL An invalid value was specified in mask.\n\n\tEINVAL An invalid value was specified in ignored_mask.\n\n\tEINVAL fanotify_fd is not a file descriptor as returned by\n\tfanotify_init()\n\n\tEBADF fanotify_fd is not a valid file descriptor\n\n\tEBADF dfd is not a valid file descriptor and path is NULL.\n\n\tENOTDIR dfd is not a directory and path is not NULL\n\n\tEACCESS no search permissions on some part of the path\n\n\tENENT file not found\n\n\tENOMEM Insufficient kernel memory is available.\n\nCONFORMING TO\n\tThese system calls are Linux-specific.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "bbaa4168b2d2d8cc674e6d35806e8426aef464b8",
      "tree": "de2a601befc44628fc19766a3081bf2e3b73da7a",
      "parents": [
        "52c923dd079df49f58016a9e56df184b132611d6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:55 2010 -0400"
      },
      "message": "fanotify: sys_fanotify_mark declartion\n\nThis patch simply declares the new sys_fanotify_mark syscall\n\nint fanotify_mark(int fanotify_fd, unsigned int flags, u64_mask,\n\t\t  int dfd const char *pathname)\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "52c923dd079df49f58016a9e56df184b132611d6",
      "tree": "29263174337bd3c2b99a7c9452e8e0708635432b",
      "parents": [
        "11637e4b7dc098e9a863f0a619d55ebc60f5949e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:26 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:55 2010 -0400"
      },
      "message": "fanotify: fanotify_init syscall implementation\n\nNAME\n\tfanotify_init - initialize an fanotify group\n\nSYNOPSIS\n\tint fanotify_init(unsigned int flags, unsigned int event_f_flags, int priority);\n\nDESCRIPTION\n\tfanotify_init() initializes a new fanotify instance and returns a file\n\tdescriptor associated with the new fanotify event queue.\n\n\tThe following values can be OR\u0027d into the flags field:\n\n\tFAN_NONBLOCK Set the O_NONBLOCK file status flag on the new open file description.\n\t\tUsing this flag saves extra calls to fcntl(2) to achieve the same\n\t\tresult.\n\n\tFAN_CLOEXEC Set the close-on-exec (FD_CLOEXEC) flag on the new file descriptor.\n\t\tSee the description of the O_CLOEXEC flag in open(2) for reasons why\n\t\tthis may be useful.\n\n\tThe event_f_flags argument is unused and must be set to 0\n\n\tThe priority argument is unused and must be set to 0\n\nRETURN VALUE\n\tOn success, this system call return a new file descriptor. On error, -1 is\n\treturned, and errno is set to indicate the error.\n\nERRORS\n\tEINVAL An invalid value was specified in flags.\n\n\tEINVAL A non-zero valid was passed in event_f_flags or in priority\n\n\tENFILE The system limit on the total number of file descriptors has been reached.\n\n\tENOMEM Insufficient kernel memory is available.\n\nCONFORMING TO\n\tThese system calls are Linux-specific.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "11637e4b7dc098e9a863f0a619d55ebc60f5949e",
      "tree": "a32682575f35dfb2bf5dc0012e488b939e56d388",
      "parents": [
        "9dced01a0939f3e952eca8c21427ceec1f473dcf"
      ],
      "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:55 2010 -0400"
      },
      "message": "fanotify: fanotify_init syscall declaration\n\nThis patch defines a new syscall fanotify_init() of the form:\n\nint sys_fanotify_init(unsigned int flags, unsigned int event_f_flags,\n\t\t      unsigned int priority)\n\nThis syscall is used to create and fanotify group.  This is very similar to\nthe inotify_init() syscall.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "9dced01a0939f3e952eca8c21427ceec1f473dcf",
      "tree": "10eab41808fd16d7db9b6737bccf30fb53eb4faa",
      "parents": [
        "a12a7dd3284f5644326af1ea53b35030f205dd29"
      ],
      "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:55 2010 -0400"
      },
      "message": "fanotify: do not clone on merge unless needed\n\nCurrently if 2 events are going to be merged on the notication queue with\ndifferent masks the second event will be cloned and will replace the first\nevent.  However if this notification queue is the only place referencing\nthe event in question there is no reason not to just update the event in\nplace.  We can tell this if the event-\u003erefcnt \u003d\u003d 1.  Since we hold a\nreference for each queue this event is on we know that when refcnt \u003d\u003d 1\nthis is the only queue.  The other concern is that it might be about to be\nadded to a new queue, but this can\u0027t be the case since fsnotify holds a\nreference on the event until it is finished adding it to queues.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "a12a7dd3284f5644326af1ea53b35030f205dd29",
      "tree": "a43423deb6e7111c6c39d65a6ac74152cd9e0b31",
      "parents": [
        "767cd46c332d1360cdbe46ef18d80c3ade06fdc1"
      ],
      "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:55 2010 -0400"
      },
      "message": "fanotify: merge notification events with different masks\n\nInstead of just merging fanotify events if they are exactly the same, merge\nnotification events with different masks.  To do this we have to clone the\nold event, update the mask in the new event with the new merged mask, and\nput the new event in place of the old event.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "767cd46c332d1360cdbe46ef18d80c3ade06fdc1",
      "tree": "e3868f28587ca44efd10b30aa4230ff54d09f567",
      "parents": [
        "ff0b16a9850e8a240ad59e10b0a1291a8fcf7cbc"
      ],
      "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": "fanotify:drop notification if they exist in the outgoing queue\n\nfanotify listeners get an open file descriptor to the object in question so\nthe ordering of operations is not as important as in other notification\nsystems.  inotify will drop events if the last event in the event FIFO is\nthe same as the current event.  This patch will drop fanotify events if\nthey are the same as another event anywhere in the event FIFO.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ff0b16a9850e8a240ad59e10b0a1291a8fcf7cbc",
      "tree": "fe6fad578cfb2b8528828d4f77e5494542a1fb34",
      "parents": [
        "12ed2e36c98aec6c41559222e311f4aa15d254b6"
      ],
      "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": "fanotify: fscking all notification system\n\nfanotify is a novel file notification system which bases notification on\ngiving userspace both an event type (open, close, read, write) and an open\nfile descriptor to the object in question.  This should address a number of\nraces and problems with other notification systems like inotify and dnotify\nand should allow the future implementation of blocking or access controlled\nnotification.  These are useful for on access scanners or hierachical storage\nmanagement schemes.\n\nThis patch just implements the basics of the fsnotify functions.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "12ed2e36c98aec6c41559222e311f4aa15d254b6",
      "tree": "0fa2fd70e4b3f6a7315d037d27fde94641c5f204",
      "parents": [
        "ecf081d1a73b077916f514f2ec744ded32b88ca1"
      ],
      "author": {
        "name": "Signed-off-by: Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Feb 08 12:31:29 2010 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:54 2010 -0400"
      },
      "message": "fanotify: FMODE_NONOTIFY and __O_SYNC in sparc conflict\n\nsparc used the same value as FMODE_NONOTIFY so change FMODE_NONOTIFY to be\nsomething unique.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\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": "35566087099c3ff8901d65ee98af56347ee66e5a",
      "tree": "e4e56bcf787e5f100fa1ea0138c417e1203b10ae",
      "parents": [
        "ef5e2b785fb3216269e6d0656d38ec286b98dbe5"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "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": "fsnotify: take inode-\u003ei_lock inside fsnotify_find_mark_entry()\n\nAll callers to fsnotify_find_mark_entry() except one take and\nrelease inode-\u003ei_lock around the call.  Take the lock inside\nfsnotify_find_mark_entry() instead.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ef5e2b785fb3216269e6d0656d38ec286b98dbe5",
      "tree": "6adf1f49a217c77e9ab28a5c57d1ed2c150008a8",
      "parents": [
        "000285deb99a5e0636fdd3c6a2483a5d039ee2c2"
      ],
      "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:54 2010 -0400"
      },
      "message": "dnotify: rename mark_entry to mark\n\nnomenclature change.  Used to call things \u0027entries\u0027 but now we just call\nthem \u0027marks.\u0027  Do those changes for dnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "000285deb99a5e0636fdd3c6a2483a5d039ee2c2",
      "tree": "45b13f2253265703a540bdd99685f4f56ac8e21b",
      "parents": [
        "841bdc10f573aa010dd5818d35a5690b7d9f73ce"
      ],
      "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:54 2010 -0400"
      },
      "message": "inotify: rename mark_entry to just mark\n\nrename anything in inotify that deals with mark_entry to just be mark.  It\nmakes a lot more sense.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "841bdc10f573aa010dd5818d35a5690b7d9f73ce",
      "tree": "58ef7a15e24ac07d3af7c6db7306199c9392f7dd",
      "parents": [
        "d07754412f9cdc2f4a99318d5ee81ace6715ea99"
      ],
      "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 mark_entry to just mark\n\npreviously I used mark_entry when talking about marks on inodes.  The\n_entry is pretty useless.  Just use \"mark\" instead.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "d07754412f9cdc2f4a99318d5ee81ace6715ea99",
      "tree": "f62902ad420de023c0fad931d9508903a9f42e3b",
      "parents": [
        "e61ce86737b4d60521e4e71f9892fe4bdcfb688b"
      ],
      "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_find_mark_entry to fsnotify_find_mark\n\nthe _entry portion of fsnotify functions is useless.  Drop it.\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": "098cf2fc77ee190c92bf9d08d69a13305f2487ec",
      "tree": "f6727bf583df63edb751e2887d40287b3bd37809",
      "parents": [
        "4136510dd61a1ca151fc5b9d8c1ebd5a8ce2e8f4"
      ],
      "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:52 2010 -0400"
      },
      "message": "fsnotify: add flags to fsnotify_mark_entries\n\nTo differentiate between inode and vfsmount (or other future) types of\nmarks we add a flags field and set the inode bit on inode marks (the only\ncurrently supported type of mark)\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4136510dd61a1ca151fc5b9d8c1ebd5a8ce2e8f4",
      "tree": "f71d8d0e04fdc0fb81ef60d38ac3c36800c57736",
      "parents": [
        "2823e04de4f1a49087b58ff2bb8f61361ffd9321"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:52 2010 -0400"
      },
      "message": "fsnotify: add vfsmount specific fields to the fsnotify_mark_entry union\n\nvfsmount marks need mostly the same data as inode specific fields, but for\nconsistency and understandability we put that data in a vfsmount specific\nstruct inside a union with inode specific data.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2823e04de4f1a49087b58ff2bb8f61361ffd9321",
      "tree": "0467ddf513cfb9ec76f3fe498bdc9b5084008c84",
      "parents": [
        "3a9fb89f4cd04c23e16397befba92efb5d989b74"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:52 2010 -0400"
      },
      "message": "fsnotify: put inode specific fields in an fsnotify_mark in a union\n\nThe addition of marks on vfs mounts will be simplified if the inode\nspecific parts of a mark and the vfsmnt specific parts of a mark are\nactually in a union so naming can be easy.  This patch just implements the\ninode struct and the union.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "3a9fb89f4cd04c23e16397befba92efb5d989b74",
      "tree": "f60b48c8cf488ad8952601ccbc6192b5f86ec900",
      "parents": [
        "7131485a93679ff9a543b74df280cfd119eb03ca"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:52 2010 -0400"
      },
      "message": "fsnotify: include vfsmount in should_send_event when appropriate\n\nTo ensure that a group will not duplicate events when it receives it based\non the vfsmount and the inode should_send_event test we should distinguish\nthose two cases.  We pass a vfsmount to this function so groups can make\ntheir own determinations.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "7131485a93679ff9a543b74df280cfd119eb03ca",
      "tree": "d5d635cb37f77ef7ff8942e15de4c45f3fded940",
      "parents": [
        "4ca763523e040dc61191d4866a82981a5d30a4e9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:52 2010 -0400"
      },
      "message": "fsnotify: mount point listeners list and global mask\n\ncurrently all of the notification systems implemented select which inodes\nthey care about and receive messages only about those inodes (or the\nchildren of those inodes.)  This patch begins to flesh out fsnotify support\nfor the concept of listeners that want to hear notification for an inode\naccessed below a given monut point.  This patch implements a second list\nof fsnotify groups to hold these types of groups and a second global mask\nto hold the events of interest for this type of group.\n\nThe reason we want a second group list and mask is because the inode based\nnotification should_send_event support which makes each group look for a mark\non the given inode.  With one nfsmount listener that means that every group would\nhave to take the inode-\u003ei_lock, look for their mark, not find one, and return\nfor every operation.   By seperating vfsmount from inode listeners only when\nthere is a inode listener will the inode groups have to look for their\nmark and take the inode lock.  vfsmount listeners will have to grab the lock and\nlook for a mark but there should be fewer of them, and one vfsmount listener\nwon\u0027t cause the i_lock to be grabbed and released for every fsnotify group\non every io operation.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4ca763523e040dc61191d4866a82981a5d30a4e9",
      "tree": "9b02105e7c84853dd89eff16837a9b7fba2a1050",
      "parents": [
        "36fddebaa8a9186d4f5817ab798a83400b2fb2e7"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:51 2010 -0400"
      },
      "message": "fsnotify: add groups to fsnotify_inode_groups when registering inode watch\n\nCurrently all fsnotify groups are added immediately to the\nfsnotify_inode_groups list upon creation.  This means, even groups with no\nwatches (common for audit) will be on the global tracking list and will\nget checked for every event.  This patch adds groups to the global list on\nwhen the first inode mark is added to the group.\n\nSigned-of-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "36fddebaa8a9186d4f5817ab798a83400b2fb2e7",
      "tree": "5fea41060cada4826677c12b7d4afa747841b124",
      "parents": [
        "19c2a0e1a2f60112c158342ba5f568f72b741c2c"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:51 2010 -0400"
      },
      "message": "fsnotify: initialize the group-\u003enum_marks in a better place\n\nCurrently the comments say that group-\u003enum_marks is held because the group\nis on the fsnotify_group list.  This isn\u0027t strictly the case, we really\njust hold the num_marks for the life of the group (any time group-\u003erefcnt\nis !\u003d 0)  This patch moves the initialization stuff and makes it clear when\nit is really being held.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "19c2a0e1a2f60112c158342ba5f568f72b741c2c",
      "tree": "807520e66657e25420389c376cccaf5ca283f346",
      "parents": [
        "0d2e2a1d00d7d23e5bd9bb0935cde7c3d5835c56"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:23 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:51 2010 -0400"
      },
      "message": "fsnotify: rename fsnotify_groups to fsnotify_inode_groups\n\nSimple renaming patch.  fsnotify is about to support mount point listeners\nso I am renaming fsnotify_groups and fsnotify_mask to indicate these are lists\nused only for groups which have watches on inodes.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "0d2e2a1d00d7d23e5bd9bb0935cde7c3d5835c56",
      "tree": "1c6bbbcbb143a364838d6749aa086af3c019f965",
      "parents": [
        "220d14df0dc587c06b97762829a41157c9375b94"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:51 2010 -0400"
      },
      "message": "fsnotify: drop mask argument from fsnotify_alloc_group\n\nNothing uses the mask argument to fsnotify_alloc_group.  This patch drops\nthat argument.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "220d14df0dc587c06b97762829a41157c9375b94",
      "tree": "cea58c9859b86ea112f4dfc0c6c2bbbb6504edcc",
      "parents": [
        "ffab83402f01555a5fa32efb48a4dd0ce8d12ef5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:51 2010 -0400"
      },
      "message": "Audit: only set group mask when something is being watched\n\nCurrently the audit watch group always sets a mask equal to all events it\nmight care about.  We instead should only set the group mask if we are\nactually watching inodes.  This should be a perf win when audit watches are\ncompiled in.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ffab83402f01555a5fa32efb48a4dd0ce8d12ef5",
      "tree": "4e02fa7422becb56e6ed4b8721f8b0fb3a867d44",
      "parents": [
        "cd7752ce7cac5184ca35aecebffafae9662570bc"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: fsnotify_obtain_group should be fsnotify_alloc_group\n\nfsnotify_obtain_group was intended to be able to find an already existing\ngroup.  Nothing uses that functionality.  This just renames it to\nfsnotify_alloc_group so it is clear what it is doing.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "cd7752ce7cac5184ca35aecebffafae9662570bc",
      "tree": "42c1d6af6bb0992345e2cb9ca87190fbce35d6f8",
      "parents": [
        "74be0cc82835aecad332a29896b0f212ba893403"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: fsnotify_obtain_group kzalloc cleanup\n\nfsnotify_obtain_group uses kzalloc but then proceedes to set things to 0.\nThis patch just deletes those useless lines.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "74be0cc82835aecad332a29896b0f212ba893403",
      "tree": "eaae59c73ba52ff8cab8ee845e989d9877603f4c",
      "parents": [
        "cac69dad32899c6f4c66bb4f9baf69b0d3c7d3d1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: remove group_num altogether\n\nThe original fsnotify interface has a group-num which was intended to be\nable to find a group after it was added.  I no longer think this is a\nnecessary thing to do and so we remove the group_num.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "cac69dad32899c6f4c66bb4f9baf69b0d3c7d3d1",
      "tree": "326019945bfe57024b4e55dd0aa031cdb4413e30",
      "parents": [
        "1201a5361b9bd6512ae01e6f2b7aa79d458cafb1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: lock annotation for event replacement\n\nfsnotify_replace_event need to lock both the old and the new event.  This\ncauses lockdep to get all pissed off since it dosn\u0027t know this is safe.\nIt\u0027s safe in this case since the new event is impossible to be reached from\nother places in the kernel.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "1201a5361b9bd6512ae01e6f2b7aa79d458cafb1",
      "tree": "bfbb10b38b6b32b773a43cc371b5d31a9ce3fe51",
      "parents": [
        "b4e4e1407312ae5a267ed7d716e6d4e7120a8430"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:49 2010 -0400"
      },
      "message": "fsnotify: replace an event on a list\n\nfanotify would like to clone events already on its notification list, make\nchanges to the new event, and then replace the old event on the list with\nthe new event.  This patch implements the replace functionality of that\nprocess.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b4e4e1407312ae5a267ed7d716e6d4e7120a8430",
      "tree": "2953d8885e3224955f1a5aca7c129709b26a059d",
      "parents": [
        "74766bbfa99adf8cb8119df6121851edba21c9d9"
      ],
      "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:49 2010 -0400"
      },
      "message": "fsnotify: clone existing events\n\nfsnotify_clone_event will take an event, clone it, and return the cloned\nevent to the caller.  Since events may be in use by multiple fsnotify\ngroups simultaneously certain event entries (such as the mask) cannot be\nchanged after the event was created.  Since fanotify would like to merge\nevents happening on the same file it needs a new clean event to work with\nso it can change any fields it wishes.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "74766bbfa99adf8cb8119df6121851edba21c9d9",
      "tree": "724dbee0d1e7794401e2d3bdd3c17fd2ce3e4635",
      "parents": [
        "28c60e37f874dcbb93c4afc839ba5e4911c4f4bc"
      ],
      "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:49 2010 -0400"
      },
      "message": "fsnotify: per group notification queue merge types\n\ninotify only wishes to merge a new event with the last event on the\nnotification fifo.  fanotify is willing to merge any events including by\nmeans of bitwise OR masks of multiple events together.  This patch moves\nthe inotify event merging logic out of the generic fsnotify notification.c\nand into the inotify code.  This allows each use of fsnotify to provide\ntheir own merge functionality.\n\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": "8112e2d6a7356e8c3ff1f7f3c86f375ed0305705",
      "tree": "953926dd3596c0ac87d7407960d0987b765a8239",
      "parents": [
        "7b0a04fbfb35650941af87728d4891515b4fc179"
      ],
      "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:31 2010 -0400"
      },
      "message": "fsnotify: include data in should_send calls\n\nfanotify is going to need to look at file-\u003eprivate_data to know if an event\nshould be sent or not.  This passes the data (which might be a file,\ndentry, inode, or none) to the should_send function calls so fanotify can\nget that information when available\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "7b0a04fbfb35650941af87728d4891515b4fc179",
      "tree": "48d85a11a8d3c283db3eb9f91ac4fb97bb2beafe",
      "parents": [
        "d7f0ce4e436b6109527c51b0efe0deff53d215f7"
      ],
      "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:31 2010 -0400"
      },
      "message": "fsnotify: provide the data type to should_send_event\n\nfanotify is only interested in event types which contain enough information\nto open the original file in the context of the fanotify listener.  Since\nfanotify may not want to send events if that data isn\u0027t present we pass\nthe data type to the should_send_event function call so fanotify can express\nits lack of interest.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "d7f0ce4e436b6109527c51b0efe0deff53d215f7",
      "tree": "b3c78a9c8b97ecf0dad28776dc38d47e88483731",
      "parents": [
        "2dfc1cae4c42b93b831b2417540df2b895ab7108"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Dec 22 23:16:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:31 2010 -0400"
      },
      "message": "inotify: do not spam console without limit\n\ninotify was supposed to have a dmesg printk ratelimitor which would cause\ninotify to only emit one message per boot.  The static bool was never set\nso it kept firing messages.  This patch correctly limits warnings in multiple\nplaces.\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": "7050c48826d5adb2210bddfb6a67aa13bbe984ed",
      "tree": "21a2f73a9953f1125aea81e02ef547afbe33661a",
      "parents": [
        "6f3a539e3bd8ed2eafa532443723d56896153a00"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:27:10 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:20 2010 -0400"
      },
      "message": "inotify: do not reuse watch descriptors\n\nPrior to 2.6.31 inotify would not reuse watch descriptors until all of\nthem had been used at least once.  After the rewrite inotify would reuse\nwatch descriptors.  The selinux utility \u0027restorecond\u0027 was found to have\nproblems when watch descriptors were reused.  This patch reverts to the\npre inotify rewrite behavior to not reuse watch descriptors.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "6f3a539e3bd8ed2eafa532443723d56896153a00",
      "tree": "73c85129825daf947c32c2e1f6e9e97ed674b108",
      "parents": [
        "f0553af054d31f48a75fddd3ef8beb5c39715019"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:07 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:20 2010 -0400"
      },
      "message": "fsnotify: use kmem_cache_zalloc to simplify event initialization\n\nfsnotify event initialization is done entry by entry with almost everything\nset to either 0 or NULL.  Use kmem_cache_zalloc and only initialize things\nthat need non-zero initialization.  Also means we don\u0027t have to change\ninitialization entries based on the config options.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "f0553af054d31f48a75fddd3ef8beb5c39715019",
      "tree": "023a3505df93755f0726ab4ba0dff456ff68c88b",
      "parents": [
        "31ddd3268dcb6c1d70e9930a83be43bf86e4bf17"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:20 2010 -0400"
      },
      "message": "fsnotify: kzalloc fsnotify groups\n\nUse kzalloc for fsnotify_groups so that none of the fields can leak any\ninformation accidentally.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "31ddd3268dcb6c1d70e9930a83be43bf86e4bf17",
      "tree": "a9ee0ac61f73e7dd6883d4466a56b79fe3e6e38b",
      "parents": [
        "b4277d3dd5a7400c1ea7fd4e7d64bda8899f84f5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:19 2010 -0400"
      },
      "message": "inotify: use container_of instead of casting\n\ninotify_free_mark casts directly from an fsnotify_mark_entry to an\ninotify_inode_mark_entry.  This works, but should use container_of instead\nfor future proofing.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b4277d3dd5a7400c1ea7fd4e7d64bda8899f84f5",
      "tree": "6b309bd5d5362292dded47af3ecf739c509892b1",
      "parents": [
        "1a3aedbce416dfdbd5d5ac14a0edbcf21a62ee50"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:19 2010 -0400"
      },
      "message": "fsnotify: use fsnotify_create_event to allocate the q_overflow event\n\nCurrently fsnotify defines a static fsnotify event which is sent when a\ngroup overflows its allotted queue length.  This patch just allocates that\nevent from the event cache rather than defining it statically.  There is no\nknown reason that the current implementation is wrong, but this makes sure the\nevent is initialized and created like any other.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "1a3aedbce416dfdbd5d5ac14a0edbcf21a62ee50",
      "tree": "4cddb110b6890b9df554193ae24ca4c74f99dea1",
      "parents": [
        "939a67fc4cbab8ca11c90da8a769d7e965d66a9b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:19 2010 -0400"
      },
      "message": "Audit: audit watch init should not be before fsnotify init\n\nAudit watch init and fsnotify init both use subsys_initcall() but since the\naudit watch code is linked in before the fsnotify code the audit watch code\nwould be using the fsnotify srcu struct before it was initialized.  This\npatch fixes that problem by moving audit watch init to device_initcall() so\nit happens after fsnotify is ready.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by : Sachin Sant \u003csachinp@in.ibm.com\u003e\n"
    },
    {
      "commit": "939a67fc4cbab8ca11c90da8a769d7e965d66a9b",
      "tree": "973363dabb2e84aa18e0ce1bbaf794be434e3901",
      "parents": [
        "67640b602f68332a83808426911636e9dbcc71fe"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:19 2010 -0400"
      },
      "message": "Audit: split audit watch Kconfig\n\nAudit watch should depend on CONFIG_AUDIT_SYSCALL and should select\nFSNOTIFY.  This splits the spagetti like mixing of audit_watch and\naudit_filter code so they can be configured seperately.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "67640b602f68332a83808426911636e9dbcc71fe",
      "tree": "4fabf39624640528fb943b7b38cbaa33901186d2",
      "parents": [
        "28a3a7eb3b1f3e7d834e19f06e794e429058a4dd"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:18 2010 -0400"
      },
      "message": "Audit: audit watches depend on fsnotify\n\nCONFIG_AUDIT builds audit_watches which depend on fsnotify.  Make\nCONFIG_AUDIT select fsnotify.\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "28a3a7eb3b1f3e7d834e19f06e794e429058a4dd",
      "tree": "c025ce90e250786784e18cde38d6c9c89e7b31f9",
      "parents": [
        "40554c3dae83bd892b7fbfaa2ea9de739cbcf065"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:05 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:17 2010 -0400"
      },
      "message": "audit: reimplement audit_trees using fsnotify rather than inotify\n\nSimply switch audit_trees from using inotify to using fsnotify for it\u0027s\ninode pinning and disappearing act information.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "40554c3dae83bd892b7fbfaa2ea9de739cbcf065",
      "tree": "7b9d4951734af9d819a900ff08f23c797a5c1b5c",
      "parents": [
        "9e1c74321d87a8b079f04d89e750b39a43365e1f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:05 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:17 2010 -0400"
      },
      "message": "fsnotify: allow addition of duplicate fsnotify marks\n\nThis patch allows a task to add a second fsnotify mark to an inode for the\nsame group.  This mark will be added to the end of the inode\u0027s list and\nthis will never be found by the stand fsnotify_find_mark() function.   This\nis useful if a user wants to add a new mark before removing the old one.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    }
  ],
  "next": "9e1c74321d87a8b079f04d89e750b39a43365e1f"
}
