)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "9e1c74321d87a8b079f04d89e750b39a43365e1f",
      "tree": "2513ce9eaa620b50c32be3dbe2763bcb692f99cb",
      "parents": [
        "a05fb6cc573130915380e00d182a4c6571cec6b2"
      ],
      "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: duplicate fsnotify_mark_entry data between 2 marks\n\nSimple copy fsnotify information from one mark to another in preparation\nfor the second mark to replace the first.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "a05fb6cc573130915380e00d182a4c6571cec6b2",
      "tree": "c67e626c5307d89e6d7e65d0b2f9834c3591edb2",
      "parents": [
        "e118e9c5638bbe877aa26b5cd2fd223cc24cdc8a"
      ],
      "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: do not get and put just to free a watch\n\ndeleting audit watch rules is not currently done under audit_filter_mutex.\nIt was done this way because we could not hold the mutex during inotify\nmanipulation.  Since we are using fsnotify we don\u0027t need to do the extra\nget/put pair nor do we need the private list on which to store the parents\nwhile they are about to be freed.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e118e9c5638bbe877aa26b5cd2fd223cc24cdc8a",
      "tree": "e57559daadac89686a3523e9f55c5a61315e05bf",
      "parents": [
        "e9fd702a58c49dbb14481dca88dad44758da393a"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:04 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:16 2010 -0400"
      },
      "message": "audit: redo audit watch locking and refcnt in light of fsnotify\n\nfsnotify can handle mutexes to be held across all fsnotify operations since\nit deals strickly in spinlocks.  This can simplify and reduce some of the\naudit_filter_mutex taking and dropping.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e9fd702a58c49dbb14481dca88dad44758da393a",
      "tree": "c944771328e35ea36cf4e0e332b8402113878b3c",
      "parents": [
        "ae7b8f4108bcffb42173f867ce845268c7202d48"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:04 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:16 2010 -0400"
      },
      "message": "audit: convert audit watches to use fsnotify instead of inotify\n\nAudit currently uses inotify to pin inodes in core and to detect when\nwatched inodes are deleted or unmounted.  This patch uses fsnotify instead\nof inotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ae7b8f4108bcffb42173f867ce845268c7202d48",
      "tree": "049d357dcbffe597c77c534ea211c3efd26680e3",
      "parents": [
        "b7ba83715317007962ee318587de92f14e9c3aaa"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:04 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:16 2010 -0400"
      },
      "message": "Audit: clean up the audit_watch split\n\nNo real changes, just cleanup to the audit_watch split patch which we done\nwith minimal code changes for easy review.  Now fix interfaces to make\nthings work better.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b7ba83715317007962ee318587de92f14e9c3aaa",
      "tree": "8964c554566ddcd0b73c266b95461dab1547aaf0",
      "parents": [
        "fc0f5ac8fe693d1b05f5a928cc48135d1c8b7f2e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:04 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:16 2010 -0400"
      },
      "message": "inotify: simplify the inotify idr handling\n\nThis patch moves all of the idr editing operations into their own idr\nfunctions.  It makes it easier to prove locking correctness and to to\nunderstand the code flow.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "fc0f5ac8fe693d1b05f5a928cc48135d1c8b7f2e",
      "tree": "ceca515ce66fb883247119953c62c9dc7e52b7df",
      "parents": [
        "6a99ad4a2e1b1693ffe8e40cc0dddfc633ce2a50",
        "da7ddd3296505b4cb46685e1bbf7d0075b3cd4f1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: Pass the correct end of buffer to p9stat_read\n"
    },
    {
      "commit": "6a99ad4a2e1b1693ffe8e40cc0dddfc633ce2a50",
      "tree": "7125466673bfe462b3ffbaf85b31cb66906d22cd",
      "parents": [
        "952e1c6632ab5060a2323624d2908f31d62fc0a3"
      ],
      "author": {
        "name": "Jon Povey",
        "email": "jon.povey@racelogic.co.uk",
        "time": "Tue Jul 27 13:18:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:07 2010 -0700"
      },
      "message": "gpio: fix spurious printk when freeing a gpio\n\nWhen freeing a gpio that has not been exported, gpio_unexport() prints a\ndebug message when it should just fall through silently.\n\nExample spurious message:\n\n\tgpio_unexport: gpio0 status -22\n\nSigned-off-by: Jon Povey \u003cjon.povey@racelogic.co.uk\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Uwe Kleine-K?nig \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Gregory Bean \u003cgbean@codeaurora.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "952e1c6632ab5060a2323624d2908f31d62fc0a3",
      "tree": "ca9bcd76a98269f9b264ad58fec12a329d5b96fd",
      "parents": [
        "2884fce165047db7df422e52a672970fa09c87b5"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@mvista.com",
        "time": "Tue Jul 27 13:18:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:06 2010 -0700"
      },
      "message": "edac: mpc85xx: fix coldplug/hotplug module autoloading\n\nThe MPC85xx EDAC driver is missing module device aliases, so the driver\nwon\u0027t load automatically on boot.  This patch fixes the issue by adding\nproper MODULE_DEVICE_TABLE() macros.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@mvista.com\u003e\nCc: Doug Thompson \u003cdougthompson@xmission.com\u003e\nCc: Peter Tyser \u003cptyser@xes-inc.com\u003e\nCc: Dave Jiang \u003cdjiang@mvista.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2884fce165047db7df422e52a672970fa09c87b5",
      "tree": "9382e655a17b7be04178b0fa0d6978f88fd8ecb6",
      "parents": [
        "b82bab4bbe9efa7bc7177fc20620fff19bd95484"
      ],
      "author": {
        "name": "Rudolf Marek",
        "email": "rudolf.marek@sysgo.com",
        "time": "Tue Jul 27 13:18:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:06 2010 -0700"
      },
      "message": "drivers/rtc/rtc-rx8581.c: fix setdatetime\n\nFix the logic while writing new date/time to the chip.  The driver\nincorrectly wrote back register values to different registers and even\nwith wrong mask.  The patch adds clearing of the VLF register, which\nshould be cleared if all date/time values are set.\n\nSigned-off-by: Rudolf Marek \u003crudolf.marek@sysgo.com\u003e\nAcked-by: Wan ZongShun \u003cmcuos.com@gmail.com\u003e\nCc: Martyn Welch \u003cmartyn.welch@gefanuc.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b82bab4bbe9efa7bc7177fc20620fff19bd95484",
      "tree": "c033a090fbd3caa61f2f3b6ece52c0b4dffeb229",
      "parents": [
        "d15aa2cc641bd193596382357de917b32f1b40cb"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Jul 27 13:18:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:06 2010 -0700"
      },
      "message": "dynamic debug: move ddebug_remove_module() down into free_module()\n\nThe command\n\n\techo \"file ec.c +p\" \u003e/sys/kernel/debug/dynamic_debug/control\n\ncauses an oops.\n\nMove the call to ddebug_remove_module() down into free_module().  In this\nway it should be called from all error paths.  Currently, we are missing\nthe remove if the module init routine fails.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nReported-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nTested-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.32+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da7ddd3296505b4cb46685e1bbf7d0075b3cd4f1",
      "tree": "45fcc62918193eba6e2aef40e1df0d2ef2e1df32",
      "parents": [
        "d15aa2cc641bd193596382357de917b32f1b40cb"
      ],
      "author": {
        "name": "Latchesar Ionkov",
        "email": "lucho@ionkov.net",
        "time": "Mon Jul 19 15:40:03 2010 -0500"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Tue Jul 27 14:52:04 2010 -0500"
      },
      "message": "9p: Pass the correct end of buffer to p9stat_read\n\nPass the correct end of the buffer to p9stat_read.\n\nSigned-off-by: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "d15aa2cc641bd193596382357de917b32f1b40cb",
      "tree": "c7866b49a0e84b87a8e43ac9e652811179d3efdd",
      "parents": [
        "02e7cce2bc3ac82b971d1efe489f23ca0b6e1d4a",
        "6b95ed345b9faa4ab3598a82991968f2e9f851bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 09:23:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 09:23:39 2010 -0700"
      },
      "message": "Merge branch \u0027urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perf\n\n* \u0027urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perf:\n  perf, powerpc: Use perf_sample_data_init() for the FSL code\n"
    },
    {
      "commit": "02e7cce2bc3ac82b971d1efe489f23ca0b6e1d4a",
      "tree": "8a2579a63dafc1e7a47c0d9281e315dd6d9568d7",
      "parents": [
        "a376bca61096c7a79393e8125b7ad4757ccff19c",
        "eb9650d6d989f24f21232a055d8fd45f1a9dcf99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 09:22:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 09:22:55 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/users/cbou/battery-2.6.35\n\n* git://git.infradead.org/users/cbou/battery-2.6.35:\n  ds2782_battery: Rename get_current to fix build failure / name conflict\n"
    },
    {
      "commit": "a376bca61096c7a79393e8125b7ad4757ccff19c",
      "tree": "87bb6aeff773e334a620b3a9aed6b2771cfb9bca",
      "parents": [
        "1a041a23da7c77b53c71fe11b4f940388bee37b1",
        "5447080cfa3c77154498dfbf225367ac85b4c2b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 09:21:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 09:21:00 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  s2io: fixing DBG_PRINT() macro\n  ath9k: fix dma direction for map/unmap in ath_rx_tasklet\n  net: dev_forward_skb should call nf_reset\n  net sched: fix race in mirred device removal\n  tun: avoid BUG, dump packet on GSO errors\n  bonding: set device in RLB ARP packet handler\n  wimax/i2400m: Add PID \u0026 VID for Intel WiMAX 6250\n  ipv6: Don\u0027t add routes to ipv6 disabled interfaces.\n  net: Fix skb_copy_expand() handling of -\u003ecsum_start\n  net: Fix corruption of skb csum field in pskb_expand_head() of net/core/skbuff.c\n  macvtap: Limit packet queue length\n  ixgbe/igb: catch invalid VF settings\n  bnx2x: Advance a module version\n  bnx2x: Protect statistics ramrod and sequence number\n  bnx2x: Protect a SM state change\n  wireless: use netif_rx_ni in ieee80211_send_layer2_update\n"
    },
    {
      "commit": "6b95ed345b9faa4ab3598a82991968f2e9f851bb",
      "tree": "71dea1106bbe0b4cd0a7f8ba18b9a3d47e80c9bf",
      "parents": [
        "1a041a23da7c77b53c71fe11b4f940388bee37b1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 09 10:21:21 2010 +0200"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jul 27 22:20:09 2010 +1000"
      },
      "message": "perf, powerpc: Use perf_sample_data_init() for the FSL code\n\nWe should use perf_sample_data_init() to initialize struct\nperf_sample_data.  As explained in the description of commit dc1d628a\n(\"perf: Provide generic perf_sample_data initialization\"), it is\npossible for userspace to get the kernel to dereference data.raw,\nso if it is not initialized, that means that unprivileged userspace\ncan possibly oops the kernel.  Using perf_sample_data_init makes sure\nit gets initialized to NULL.\n\nThis conversion should have been included in commit dc1d628a, but it\ngot missed.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Kumar Gala \u003ckumar.gala@freescale.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "1a041a23da7c77b53c71fe11b4f940388bee37b1",
      "tree": "15be66d3768d609a477a99a0d59522133a831ee0",
      "parents": [
        "ee13cbdec4381b5bdb24683b5e7fcc29084c355d",
        "ff4878089e1eaeac79d57878ad4ea32910fb4037"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 16:02:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 16:02:07 2010 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Do not try to disable hpet if it hasn\u0027t been initialized before\n  x86, i8259: Only register sysdev if we have a real 8259 PIC\n"
    },
    {
      "commit": "5447080cfa3c77154498dfbf225367ac85b4c2b5",
      "tree": "08fd9ef4a2f96948cfbaff6d6fcfb90da663d32c",
      "parents": [
        "a9ad99a612763803b995ce551ca43b20beb1f888"
      ],
      "author": {
        "name": "Breno Leitao",
        "email": "leitao@linux.vnet.ibm.com",
        "time": "Mon Jul 26 15:37:30 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 26 15:37:30 2010 -0700"
      },
      "message": "s2io: fixing DBG_PRINT() macro\n\nPatch 9e39f7c5b311a306977c5471f9e2ce4c456aa038 changed the\nDBG_PRINT() macro and the if clause was wrongly changed. It means\nthat currently all the DBG_PRINT are being printed, flooding the\nkernel log buffer with things like:\n\ns2io: eth6: Next block at: c0000000b9c90000\ns2io: eth6: In Neterion Tx routine\n\nSigned-off-by: Breno Leitao \u003cleitao@linux.vnet.ibm.com\u003e\nAcked-by: Sreenivasa Honnur \u003cSreenivasa.Honnur@neterion.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee13cbdec4381b5bdb24683b5e7fcc29084c355d",
      "tree": "8299560d24d1690702b75b7deba6d16b98a69bd0",
      "parents": [
        "863da9557e5ad2874f3fc6f350b392e03f983ca4",
        "3581ced3b6ac289b5cd31663b34914a7347186a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 15:35:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 15:35:53 2010 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] powernow-k8: Limit Pstate transition latency check\n  [CPUFREQ] Fix PCC driver error path\n  [CPUFREQ] fix double freeing in error path of pcc-cpufreq\n  [CPUFREQ] pcc driver should check for pcch method before calling _OSC\n  [CPUFREQ] fix memory leak in cpufreq_add_dev\n  [CPUFREQ] revert \"[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)\"\n"
    },
    {
      "commit": "863da9557e5ad2874f3fc6f350b392e03f983ca4",
      "tree": "9dd7964242933d7b761f1aee045e3a417283155c",
      "parents": [
        "5620ae29f1eabe655f44335231b580a78c8364ea",
        "8faf2e6c201d95b780cd3b4674b7a55ede6dcbbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 15:35:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 15:35:04 2010 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus:\n  MIPS: Set io_map_base for several PCI bridges lacking it\n  MIPS: Alchemy: Define eth platform devices in the correct order\n  MIPS: BCM63xx: Prevent second enet registration on BCM6338\n  MIPS: Quit using undefined behavior of ADDU in 64-bit atomic operations.\n  MIPS: N32: Define getdents64.\n  MIPS: MTX-1: Fix PCI on the MeshCube and related boards\n  MIPS: Make init_vdso a subsys_initcall.\n  MIPS: \"Fix\" useless \u0027init_vdso successfully\u0027 message.\n  MIPS: PowerTV: Move register setup to before reading registers.\n  SOUND: Au1000: Fix section mismatch\n  VIDEO: Au1100fb: Fix section mismatch\n  VIDEO: PMAGB-B: Fix section mismatch\n  VIDEO: PMAG-BA: Fix section mismatch\n  NET: declance: Fix section mismatches\n  VIDEO. gbefb: Fix section mismatches.\n"
    }
  ],
  "next": "5620ae29f1eabe655f44335231b580a78c8364ea"
}
