)]}'
{
  "log": [
    {
      "commit": "9a2296832c43da93a88e1edd59f3d17acffca36c",
      "tree": "e55b77c403c60291344d0961d2f0e4f2e9a2bb7f",
      "parents": [
        "51ee049e771c14a29aaee8ecd6cbbe14db088f3a"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Fri Apr 02 17:37:13 2010 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "namei.c : update mnt when it needed\n\nupdate the mnt of the path when it is not equal to the new one.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d83c49f3e36cecd2e8823b6c48ffba083b8a5704",
      "tree": "a304de4eb43652d2a9528d4b43f798ab821c8b93",
      "parents": [
        "6a251b0ab67989f468f4cb65179e0cf40cf8c295"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 30 17:17:09 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 07:16:33 2010 -0400"
      },
      "message": "Fix the regression created by \"set S_DEAD on unlink()...\" commit\n\n1) i_flags simply doesn\u0027t work for mount/unlink race prevention;\nwe may have many links to file and rm on one of those obviously\nshouldn\u0027t prevent bind on top of another later on.  To fix it\nright way we need to mark _dentry_ as unsuitable for mounting\nupon; new flag (DCACHE_CANT_MOUNT) is protected by d_flags and\ni_mutex on the inode in question.  Set it (with dont_mount(dentry))\nin unlink/rmdir/etc., check (with cant_mount(dentry)) in places\nin namespace.c that used to check for S_DEAD.  Setting S_DEAD\nis still needed in places where we used to set it (for directories\ngetting killed), since we rely on it for readdir/rmdir race\nprevention.\n\n2) rename()/mount() protection has another bogosity - we unhash\nthe target before we\u0027d checked that it\u0027s not a mountpoint.  Fixed.\n\n3) ancient bogosity in pivot_root() - we locked i_mutex on the\nright directory, but checked S_DEAD on the different (and wrong)\none.  Noticed and fixed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "002baeecf53677d2034113e34197ec221f42e037",
      "tree": "081c54c4a9a266a894a00165e97dabfb212a2470",
      "parents": [
        "fc8e38f142dd59f81306ff6a81c1351e9eb0e014"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 12:52:57 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 13 08:46:04 2010 -0700"
      },
      "message": "vfs: Fix O_NOFOLLOW behavior for paths with trailing slashes\n\nAccording to specification\n\n\tmkdir d; ln -s d a; open(\"a/\", O_NOFOLLOW | O_RDONLY)\n\nshould return success but currently it returns ELOOP.  This is a\nregression caused by path lookup cleanup patch series.\n\nFix the code to ignore O_NOFOLLOW in case the provided path has trailing\nslashes.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-by: Marius Tolzmann \u003ctolzmann@molgen.mpg.de\u003e\nAcked-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e297b613491f0d4928aa652a2cd266aa06dc409",
      "tree": "df688c6226e84768a0748d4a19cb893255f0bebf",
      "parents": [
        "01e77706cdde7c0b47e5ca1f4284a795504c7c40"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 26 12:40:13 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 26 12:41:05 2010 -0400"
      },
      "message": "Restore LOOKUP_DIRECTORY hint handling in final lookup on open()\n\n\tLose want_dir argument, while we are at it - since now\nnd-\u003eflags \u0026 LOOKUP_DIRECTORY is equivalent to it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "781b16775ba0bb55fac0e1757bf0bd87c8879632",
      "tree": "f081f67fe98a50a217a8c9be8d55e64854e46193",
      "parents": [
        "64096c17417380d8a472d096645f4cbc9406c987"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Mar 06 18:41:07 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 10:54:48 2010 -0800"
      },
      "message": "Fix a dumb typo - use of \u0026 instead of \u0026\u0026\n\nWe managed to lose O_DIRECTORY testing due to a stupid typo in commit\n1f36f774b2 (\"Switch !O_CREAT case to use of do_last()\")\n\nReported-by: Walter Sheets \u003cw41ter@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "1f36f774b22a0ceb7dd33eca626746c81a97b6a5",
      "tree": "cfc2757bb3e21d484ce28bd3030e649b5767b5a1",
      "parents": [
        "def4af30cf945a3735ffca865788ea84b30b25d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 10:56:19 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:22:25 2010 -0500"
      },
      "message": "Switch !O_CREAT case to use of do_last()\n\n... and now we have all intents crap well localized\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "def4af30cf945a3735ffca865788ea84b30b25d9",
      "tree": "adeac07e1675c51e8d9fa42ccf284b7b893041f1",
      "parents": [
        "3866248e5f86d74960a3d1592882490ec3021675"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 08:37:05 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:40 2010 -0500"
      },
      "message": "Get rid of symlink body copying\n\nNow that nd-\u003elast stays around until -\u003eput_link() is called, we can\njust postpone that -\u003eput_link() in do_filp_open() a bit and don\u0027t\nbother with copying.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3866248e5f86d74960a3d1592882490ec3021675",
      "tree": "af44e08612f8895a81aea230739439d4ef09cfaf",
      "parents": [
        "806b681cbe588bebe8fe47dd24da62f2d1c55851"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:21:48 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:38 2010 -0500"
      },
      "message": "Finish pulling of -ESTALE handling to upper level in do_filp_open()\n\nDon\u0027t bother with path_walk() (and its retry loop); link_path_walk()\nwill do it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "806b681cbe588bebe8fe47dd24da62f2d1c55851",
      "tree": "030d0e479f0c3e462930d18134a15092803d1ad3",
      "parents": [
        "10fa8e62f2bc33c452516585911f151d88389e4c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:16:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:36 2010 -0500"
      },
      "message": "Turn do_link spaghetty into a normal loop\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10fa8e62f2bc33c452516585911f151d88389e4c",
      "tree": "9a69dd68ffdf419cd6391f198ff40ac0943b9a35",
      "parents": [
        "9e67f36169117e07daf16dc7ca314f1db9e2050a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:09:49 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:35 2010 -0500"
      },
      "message": "Unify exits in O_CREAT handling\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9e67f36169117e07daf16dc7ca314f1db9e2050a",
      "tree": "7090b0fdafa07c91afa3fcc1eede94d0df74942f",
      "parents": [
        "67ee3ad21d0d0b2cc0b70708de8aed860fadda44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:04:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:33 2010 -0500"
      },
      "message": "Kill is_link argument of do_last()\n\nWe set it to 1 iff we return NULL\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67ee3ad21d0d0b2cc0b70708de8aed860fadda44",
      "tree": "842c575f8d7c06b4ebca8c418270da7207359767",
      "parents": [
        "4296e2cbf2138b5831b83f03e81de916ce1a967d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:01:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:31 2010 -0500"
      },
      "message": "Pull handling of LAST_BIND into do_last(), clean up ok: part in do_filp_open()\n\nNote that in case of !O_CREAT we know that nd.root has already been given up\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4296e2cbf2138b5831b83f03e81de916ce1a967d",
      "tree": "395b8422f7555c79c0251be27cff715adf9ec11e",
      "parents": [
        "5b369df8263fe7ab4dac2bb08b8f423dc5e33752"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 07:15:41 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:29 2010 -0500"
      },
      "message": "Leave mangled flag only for setting nd.intent.open.flag\n\nNothing else uses it anymore\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5b369df8263fe7ab4dac2bb08b8f423dc5e33752",
      "tree": "0b127915244593c1ed2494454d191a4fedb4d661",
      "parents": [
        "9a66179e13504c676f891908a1e94912ec5cdefb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:51:13 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:27 2010 -0500"
      },
      "message": "Get rid of passing mangled flag to do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a66179e13504c676f891908a1e94912ec5cdefb",
      "tree": "ddfa9f767ba393744adc6714a4c7ef0966222d81",
      "parents": [
        "a2c36b450ee68470836cb858c58a6ba3a52c5ec5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:49:47 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:25 2010 -0500"
      },
      "message": "Don\u0027t pass mangled open_flag to finish_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2c36b450ee68470836cb858c58a6ba3a52c5ec5",
      "tree": "5c1aff4738fd679efd6d96f2ae224ea97121b019",
      "parents": [
        "c99658fe970f442199733bcace1a00b087336a0d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 03:39:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:24 2010 -0500"
      },
      "message": "pull more into do_last()\n\nHandling of LAST_DOT/LAST_ROOT/LAST_DOTDOT/terminating slash\ncan be pulled in as well\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c99658fe970f442199733bcace1a00b087336a0d",
      "tree": "b9065b274d8f00639af43bbb8e4eaabcda5b559d",
      "parents": [
        "a1e28038df98e186807ff55a49c1c26d33d530a5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:27:30 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:22 2010 -0500"
      },
      "message": "bail out with ELOOP earlier in do_link loop\n\nIf we\u0027d passed through 32 trailing symlinks already, there\u0027s\nno sense following the 33rd - we\u0027ll bail out anyway.  Better\nbugger off earlier.\n\nIt *does* change behaviour, after a fashion - if the 33rd happens\nto be a procfs-style symlink, original code *would* allow it.\nThis one will not.  Cry me a river if that hurts you.  Please, do.\nAnd post a video of that, while you are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1e28038df98e186807ff55a49c1c26d33d530a5",
      "tree": "a72a14858ae883b333b4a0cf6bbf52d33a6bdb82",
      "parents": [
        "c41c14056210e4a328659c82b1edaccb0910d18c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:12:06 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:20 2010 -0500"
      },
      "message": "pull the common predecessors into do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c41c14056210e4a328659c82b1edaccb0910d18c",
      "tree": "0ae7f7e9f952feb4577bb1908b063997232171bb",
      "parents": [
        "27bff34300482632caf52ff589a4e7d755b32539"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:08:19 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:18 2010 -0500"
      },
      "message": "postpone __putname() until after do_last()\n\nSince do_last() doesn\u0027t mangle nd-\u003elast_name, we can safely postpone\n__putname() done in handling of trailing symlinks until after the\ncall of do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "27bff34300482632caf52ff589a4e7d755b32539",
      "tree": "49c6b38dd0c6ff2eebf0f0dad4c73a6539d52bbc",
      "parents": [
        "3343eb8209cc69f0d2059f8c484ad7a3e1834c0b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:05:43 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:16 2010 -0500"
      },
      "message": "unroll do_last: loop in do_filp_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3343eb8209cc69f0d2059f8c484ad7a3e1834c0b",
      "tree": "25d72fd720d5dcbf0f0be40832c76759e49413cc",
      "parents": [
        "fb1cc555d533869910e20de4b8d5147570afdfad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:02:38 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:15 2010 -0500"
      },
      "message": "Shift releasing nd-\u003eroot from do_last() to its caller\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fb1cc555d533869910e20de4b8d5147570afdfad",
      "tree": "99ee86c8370e28df0991a4ecd03677cb65704f01",
      "parents": [
        "648fa8611de3d4d43bbd64af3226679d2d0eb609"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 01:58:28 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:13 2010 -0500"
      },
      "message": "gut do_filp_open() a bit more (do_last separation)\n\nBrute-force separation of stuff reachable from do_last: with\nthe exception of do_link:; just take all that crap to a helper\nfunction as-is and have it tell the caller if it has to go\nto do_link.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "648fa8611de3d4d43bbd64af3226679d2d0eb609",
      "tree": "96d134de1d935d6d54daac678dc07346bbbda940",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 01:26:48 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:11 2010 -0500"
      },
      "message": "beginning to untangle do_filp_open()\n\nThat\u0027s going to be a long and painful series.  The first step:\ntake the stuff reachable from \u0027ok\u0027 label in do_filp_open() into\na new helper (finish_open()).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9643f5d94aadd47a5fa9754fb60f2c957de05903",
      "tree": "c299736cbcdd7f971c1c308433e248198060fefa",
      "parents": [
        "2bd3a997befc226ab4b504f05c5cbba305f3e0e6",
        "c44dcc56d2b5c79ba3063d20f76e5347e2e418f6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 17:12:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 17:12:40 2010 -0500"
      },
      "message": "Merge branch \u0027for-fsnotify\u0027 into for-linus\n"
    },
    {
      "commit": "bec1052e5be6a70f03f6adc650f3a6e4c2f44ddf",
      "tree": "e73e73b59d5b8c87f7cc50b0e17a89eaa0e704dc",
      "parents": [
        "db1f05bb85d7966b9176e293f3ceead1cb8b5d79"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:12:08 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:12:08 2010 -0500"
      },
      "message": "set S_DEAD on unlink() and non-directory rename() victims\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3088dd7080d1ecc6d18c27ef9e617cbbd2a2e51e",
      "tree": "4c31fc5f1710bafd79faa153839bbc617d1f715a",
      "parents": [
        "de27a5bf9caef3f1fca1f315aa58eee54fbf929a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 30 15:47:29 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:56 2010 -0500"
      },
      "message": "Clean follow_dotdot() up a bit\n\nNo need to open-code follow_up() in it and locking can be lighter.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8737c9305bd5602b11f7eb4655d5695d4a42a0c6",
      "tree": "54038cac1135b039a292151ebe9b156f80904843",
      "parents": [
        "d208bbdda991b8808d9c033ce4d31cb1bd87dcfc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:47:55 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 13:00:21 2010 -0500"
      },
      "message": "Switch may_open() and break_lease() to passing O_...\n\n... instead of mixing FMODE_ and O_\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ac278a9c505092dd82077a2446af8f9fc0d9c095",
      "tree": "227d4ac77de3b909e70cbe10b2a1a6293037c8c0",
      "parents": [
        "f8b55f251012e104093e105483c45c5d85ad3040"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Tue Feb 16 18:09:36 2010 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 19 03:56:42 2010 -0500"
      },
      "message": "fix LOOKUP_FOLLOW on automount \"symlinks\"\n\nMake sure that automount \"symlinks\" are followed regardless of LOOKUP_FOLLOW;\nit should have no effect on them.\n\nCc: stable@kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cccc6bba3f771ef29b33e4f79e70ebc3dba245b0",
      "tree": "0abfed21a68d0ae54217a6f4308046fd30a70186",
      "parents": [
        "123df2944c436c80640c4281c5bc9c7950b18687"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 25 05:07:33 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 08 14:38:36 2010 -0500"
      },
      "message": "Lose the first argument of audit_inode_child()\n\nit\u0027s always equal to -\u003ed_name.name of the second argument\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "123df2944c436c80640c4281c5bc9c7950b18687",
      "tree": "a4fe67a9ce7cd4ae7d54ec94577916d38a0603e6",
      "parents": [
        "6339204ecc2aa2067a99595522de0403f0854bb8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 25 04:57:57 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 08 14:38:36 2010 -0500"
      },
      "message": "Lose the new_name argument of fsnotify_move()\n\nit\u0027s always new_dentry-\u003ed_name.name\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9bbb6cad0173e6220f3ac609e26beb48dab3b7cd",
      "tree": "680e0de3071c938ca9858fa9ed5bd5ca8ff2f20f",
      "parents": [
        "54bb6552bd9405dc7685653157a4ec260c77a71c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Jan 26 17:02:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "ima: rename ima_path_check to ima_file_check\n\nima_path_check actually deals with files!  call it ima_file_check instead.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8eb988c70e7709b7bd1a69f0ec53d19ac20dea84",
      "tree": "6d0283a9fbca5cc104f591b9cc628edf39bc0b05",
      "parents": [
        "1e41568d7378d1ba8c64ba137b9ddd00b59f893a"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Jan 20 15:35:41 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "fix ima breakage\n\nThe \"Untangling ima mess, part 2 with counters\" patch messed\nup the counters.  Based on conversations with Al Viro, this patch\nstreamlines ima_path_check() by removing the counter maintaince.\nThe counters are now updated independently, from measuring the file,\nin __dentry_open() and alloc_file() by calling ima_counts_get().\nima_path_check() is called from nfsd and do_filp_open().\nIt also did not measure all files that should have been measured.\nReason: ima_path_check() got bogus value passed as mask.\n[AV: mea culpa]\n[AV: add missing nfsd bits]\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c41b20e721ea4f6f20f66a66e7f0c3c97a2ca9c2",
      "tree": "92cd1b2b1cdb871530bb07bbbcbfeaffe1170830",
      "parents": [
        "a089377f29d3af0f62f3bdc6db0c5042513fc3f3"
      ],
      "author": {
        "name": "Adam Buchbinder",
        "email": "adam.buchbinder@gmail.com",
        "time": "Fri Dec 11 16:35:39 2009 -0500"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Feb 04 11:55:45 2010 +0100"
      },
      "message": "Fix misspellings of \"truly\" in comments.\n\nSome comments misspell \"truly\"; this fixes them. No code changes.\n\nSigned-off-by: Adam Buchbinder \u003cadam.buchbinder@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "9850c056559f3633a32d810aaf00ced39437b364",
      "tree": "30e80de94e12ae758736cfb586db39cfa77d69df",
      "parents": [
        "806892e9e12e731a0ca76c8f62ad95cf8eea9614"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 13 15:01:15 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:26 2010 -0500"
      },
      "message": "Fix the -ESTALE handling in do_filp_open()\n\nInstead of playing sick games with path saving, cleanups, just retry\nthe entire thing once with LOOKUP_REVAL added.  Post-.34 we\u0027ll convert\nall -ESTALE handling in there to that style, rather than playing with\nmany retry loops deep in the call chain.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d125529c6cbfe570ce3bf9a0728548f087499da",
      "tree": "89ba434f76d224741bd0e0b0ef02b10a4ff95136",
      "parents": [
        "4ecf09fd3a7c8858198875171b684c73338fad83"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:58:56 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:26 2010 -0500"
      },
      "message": "Fix ACC_MODE() for real\n\ncommit 5300990c0370e804e49d9a59d928c5d53fb73487 had stepped on a rather\nnasty mess: definitions of ACC_MODE used to be different.  Fixed the\nresulting breakage, converting them to variant that takes O_... value;\nall callers have that and it actually simplifies life (see tomoyo part\nof changes).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "86acdca1b63e6890540fa19495cfc708beff3d8b",
      "tree": "f589566363ef4f77098eba9ced48325f410168e6",
      "parents": [
        "004b35063296b6772fa72404a35b498f1e71e87e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 22 23:45:11 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:25 2010 -0500"
      },
      "message": "fix autofs/afs/etc. magic mountpoint breakage\n\nWe end up trying to kfree() nd.last.name on open(\"/mnt/tmp\", O_CREAT)\nif /mnt/tmp is an autofs direct mount.  The reason is that nd.last_type\nis bogus here; we want LAST_BIND for everything of that kind and we\nget LAST_NORM left over from finding parent directory.\n\nSo make sure that it *is* set properly; set to LAST_BIND before\ndoing -\u003efollow_link() - for normal symlinks it will be changed\nby __vfs_follow_link() and everything else needs it set that way.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea6600148c265b1fd53e521022b1d7aec81d974",
      "tree": "aeb16e15ff5e6f88cc7137847fb5610377bf7395",
      "parents": [
        "9a7262a0563da6b91019156abf487bcdf1a41526"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue Dec 29 14:50:19 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 30 12:35:44 2009 -0800"
      },
      "message": "generic_permission: MAY_OPEN is not write access\n\ngeneric_permission was refusing CAP_DAC_READ_SEARCH-enabled\nprocesses from opening DAC-protected files read-only, because\ndo_filp_open adds MAY_OPEN to the open mask.\n\nIgnore MAY_OPEN.  After this patch, CAP_DAC_READ_SEARCH is\nagain sufficient to open(fname, O_RDONLY) on a file to which\nDAC otherwise refuses us read permission.\n\nReported-by: Mike Kazantsev \u003cmk.fraggod@gmail.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nTested-by: Mike Kazantsev \u003cmk.fraggod@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5300990c0370e804e49d9a59d928c5d53fb73487",
      "tree": "08ed922afd172662039c082ec9e9410070f4afe8",
      "parents": [
        "482928d59db668b8d82a48717f78986d8cea72e9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 19 10:15:07 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 22 12:27:34 2009 -0500"
      },
      "message": "Sanitize f_flags helpers\n\n* pull ACC_MODE to fs.h; we have several copies all over the place\n* nightmarish expression calculating f_mode by f_flags deserves a helper\ntoo (OPEN_FMODE(flags))\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "482928d59db668b8d82a48717f78986d8cea72e9",
      "tree": "6985c64474172ddfb67c737bc4a49e588c49d055",
      "parents": [
        "628ff7c1d8d8466a5ad8078bd0206a130f8b8a51"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 19 10:10:39 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 22 12:27:34 2009 -0500"
      },
      "message": "Fix f_flags/f_mode in case of lookup_instantiate_filp() from open(pathname, 3)\n\nJust set f_flags when shoving struct file into nameidata; don\u0027t\npostpone that until __dentry_open().  do_filp_open() has correct\nvalue; lookup_instantiate_filp() doesn\u0027t - we lose the difference\nbetween O_RDWR and 3 by that point.\n\nWe still set .intent.open.flags, so no fs code needs to be changed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cb59861f03a626196a23fdef5e20ddbb8cca6466",
      "tree": "777dda2c1764e74cf6e7e5bda27314bb99c5b4d1",
      "parents": [
        "a3a065e3f13da8a3470ed09c7f38aad256083726"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Nov 16 12:05:20 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 17 10:52:34 2009 -0500"
      },
      "message": "vfs: remove extraneous NULL d_inode check from do_filp_open\n\nWe can\u0027t get to this point unless it\u0027s a valid pointer.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "39159de2a091a35ea86b188ebdc5e642f5cfc832",
      "tree": "793c0c95fe22ddb06c4cc4271428ad41386ccf6b",
      "parents": [
        "d1625436b4fe526fa463bc0519ba37d7e4b37bbc"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Dec 07 12:01:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:48 2009 -0500"
      },
      "message": "vfs: force reval of target when following LAST_BIND symlinks (try #7)\n\nprocfs-style symlinks return a last_type of LAST_BIND without an actual\npath string. This causes __follow_link to skip calling __vfs_follow_link\nand so the dentry isn\u0027t revalidated.\n\nThis is a problem when the link target sits on NFSv4 as it depends on\nthe VFS to revalidate the dentry before using it on an open call. Ensure\nthat this occurs by forcing a revalidation of the target dentry of\nLAST_BIND symlinks.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1429b3eca23818f87f9fa569a15d9816de81f698",
      "tree": "3100f009ec8863ee4692ee197b8e0c16c11258e6",
      "parents": [
        "b65a9cfc2c38eebc33533280b8ad5841caee8b6e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:38:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 3: kill dead code in ima\n\nKill the \u0027update\u0027 argument of ima_path_check(), kill\ndead code in ima.\n\nCurrent rules: ima counters are bumped at the same time\nwhen the file switches from put_filp() fodder to fput()\none.  Which happens exactly in two places - alloc_file()\nand __dentry_open().  Nothing else needs to do that at\nall.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b65a9cfc2c38eebc33533280b8ad5841caee8b6e",
      "tree": "d6e5b713615cc5e65c900162ab09235ae4847909",
      "parents": [
        "0552f879d45cecc35d8e372a591fc5ed863bca58"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:27:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 2: deal with counters\n\n* do ima_get_count() in __dentry_open()\n* stop doing that in followups\n* move ima_path_check() to right after nameidata_to_filp()\n* don\u0027t bump counters on it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7715b521222b6ebb6e927fa261ed91ed687fe454",
      "tree": "33c6f8179d405974ed6763df331f731044c16072",
      "parents": [
        "85a17f552dfe77efb44b971615e4f221a5f28f37"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 03:54:00 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "O_TRUNC open shouldn\u0027t fail after file truncation\n\n* take truncate logics into a helper (handle_truncate())\n* rip it out of may_open()\n* call it from the only caller of may_open() that might pass\nO_TRUNC\n* and do that after we\u0027d finished with opening.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e81e3f4dca6c54116a24aec217d2c15c6f58ada5",
      "tree": "4cbaf8b4573a4f4dac2dafc2bebffe398a984b3d",
      "parents": [
        "b75b5086be6504132eadb22a907854e0bf52e365"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Dec 04 15:47:36 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:45 2009 -0500"
      },
      "message": "fs: move get_empty_filp() deffinition to internal.h\n\nAll users outside of fs/ of get_empty_filp() have been removed.  This patch\nmoves the definition from the include/ directory to internal.h so no new\nusers crop up and removes the EXPORT_SYMBOL.  I\u0027d love to see open intents\nstop using it too, but that\u0027s a problem for another day and a smarter\ndeveloper!\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b75b5086be6504132eadb22a907854e0bf52e365",
      "tree": "b9859bcb09d12bb2a1dcfd5c3cecf303c2c02d1b",
      "parents": [
        "6e6b1bd1e739faf4fa259fc0d8bfcadea2493222"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 01:01:38 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:45 2009 -0500"
      },
      "message": "Sanitize exec_permission_lite()\n\nUse the sucker in other places in pathname resolution\nthat check MAY_EXEC for directories; lose the _lite\nfrom name, it\u0027s equivalent of full-blown inode_permission()\nfor its callers (albeit still lighter, since large parts\nof generic_permission() do not apply for pure MAY_EXEC).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6e6b1bd1e739faf4fa259fc0d8bfcadea2493222",
      "tree": "de20d84d0051852c4ff5b6200ab8c9bd9e932b75",
      "parents": [
        "2dd6d1f41852bbb1f66d66b3634ddfdaeddcf9bc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 13 23:38:37 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:45 2009 -0500"
      },
      "message": "Kill cached_lookup() and real_lookup()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2dd6d1f41852bbb1f66d66b3634ddfdaeddcf9bc",
      "tree": "82a4e934af91a28fb2be1501b9b5392b892f40e7",
      "parents": [
        "3cac260ad88f4e37637d6e4b33e6a6a849d273c7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 13 20:40:45 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:45 2009 -0500"
      },
      "message": "Kill path_lookup_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3cac260ad88f4e37637d6e4b33e6a6a849d273c7",
      "tree": "2cde342e32fccadfcc900c10b4a8e49398fb24cf",
      "parents": [
        "e9496ff46a20a8592fdc7bdaaf41b45eb808d310"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 13 18:27:43 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:44 2009 -0500"
      },
      "message": "Take hash recalculation into do_lookup()\n\nBoth callers of do_lookup() do the same thing before it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6de88d72927dc85297b3075024487313c4ba3a2e",
      "tree": "278609d97c5635bb3922634b274689739fbf09d6",
      "parents": [
        "258fa99905f704afed1a43f195bc5235a56fb895"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 09 01:41:57 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:43 2009 -0500"
      },
      "message": "kill __link_path_walk()/link_path_walk() distinction\n\nput retry logics into path_walk() and do_filp_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "258fa99905f704afed1a43f195bc5235a56fb895",
      "tree": "434bd55b08ab3f635e66cce89e3ab931dbc9f2ef",
      "parents": [
        "d231412db66355e72d606f8403ee8b6bd8ad4f9a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 09 01:32:02 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:43 2009 -0500"
      },
      "message": "lift path_put(path) to callers of __do_follow_link()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3126c136bc30225d7a43af741778aa50e95e467a",
      "tree": "71e6f0de6e1f4cde200dd632da4d2f61180289bf",
      "parents": [
        "f4d544ee5720d336a8c64f9fd33efb888c302309",
        "8e0eb4011bd73d5f91b215b532f74eef478ef795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (21 commits)\n  ext3: PTR_ERR return of wrong pointer in setup_new_group_blocks()\n  ext3: Fix data / filesystem corruption when write fails to copy data\n  ext4: Support for 64-bit quota format\n  ext3: Support for vfsv1 quota format\n  quota: Implement quota format with 64-bit space and inode limits\n  quota: Move definition of QFMT_OCFS2 to linux/quota.h\n  ext2: fix comment in ext2_find_entry about return values\n  ext3: Unify log messages in ext3\n  ext2: clear uptodate flag on super block I/O error\n  ext2: Unify log messages in ext2\n  ext3: make \"norecovery\" an alias for \"noload\"\n  ext3: Don\u0027t update the superblock in ext3_statfs()\n  ext3: journal all modifications in ext3_xattr_set_handle\n  ext2: Explicitly assign values to on-disk enum of filetypes\n  quota: Fix WARN_ON in lookup_one_len\n  const: struct quota_format_ops\n  ubifs: remove manual O_SYNC handling\n  afs: remove manual O_SYNC handling\n  kill wait_on_page_writeback_range\n  vfs: Implement proper O_SYNC semantics\n  ...\n"
    },
    {
      "commit": "832b6af198aefe6034310e124594cc8b833c0ef9",
      "tree": "853eec8f7449dd7fc51c6d4c9b70ea44b81cf0d9",
      "parents": [
        "a16bbc3430ed94b543222f4c8ef68025f8493e93"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Nov 20 16:08:56 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 11 11:24:54 2009 -0800"
      },
      "message": "sysfs: Propagate renames to the vfs on demand\n\nBy teaching sysfs_revalidate to hide a dentry for\na sysfs_dirent if the sysfs_dirent has been renamed,\nand by teaching sysfs_lookup to return the original\ndentry if the sysfs dirent has been renamed.  I can\nshow the results of renames correctly without having to\nupdate the dcache during the directory rename.\n\nThis massively simplifies the rename logic allowing a lot\nof weird sysfs special cases to be removed along with\na lot of now unnecesary helper code.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6b2f3d1f769be5779b479c37800229d9a4809fc3",
      "tree": "046ef6736ec6c25ab1c68741ba715d13645af336",
      "parents": [
        "59bc055211b8d266ab6089158058bf8268e02006"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Oct 27 11:05:28 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:50 2009 +0100"
      },
      "message": "vfs: Implement proper O_SYNC semantics\n\nWhile Linux provided an O_SYNC flag basically since day 1, it took until\nLinux 2.4.0-test12pre2 to actually get it implemented for filesystems,\nsince that day we had generic_osync_around with only minor changes and the\ngreat \"For now, when the user asks for O_SYNC, we\u0027ll actually give\nO_DSYNC\" comment.  This patch intends to actually give us real O_SYNC\nsemantics in addition to the O_DSYNC semantics.  After Jan\u0027s O_SYNC\npatches which are required before this patch it\u0027s actually surprisingly\nsimple, we just need to figure out when to set the datasync flag to\nvfs_fsync_range and when not.\n\nThis patch renames the existing O_SYNC flag to O_DSYNC while keeping it\u0027s\nnumerical value to keep binary compatibility, and adds a new real O_SYNC\nflag.  To guarantee backwards compatiblity it is defined as expanding to\nboth the O_DSYNC and the new additional binary flag (__O_SYNC) to make\nsure we are backwards-compatible when compiled against the new headers.\n\nThis also means that all places that don\u0027t care about the differences can\njust check O_DSYNC and get the right behaviour for O_SYNC, too - only\nplaces that actuall care need to check __O_SYNC in addition.  Drivers and\nnetwork filesystems have been updated in a fail safe way to always do the\nfull sync magic if O_DSYNC is set.  The few places setting O_SYNC for\nlower layers are kept that way for now to stay failsafe.\n\nWe enforce that O_DSYNC is set when __O_SYNC is set early in the open path\nto make sure we always get these sane options.\n\nNote that parisc really screwed up their headers as they already define a\nO_DSYNC that has always been a no-op.  We try to repair it by using it for\nthe new O_DSYNC and redefinining O_SYNC to send both the traditional\nO_SYNC numerical value _and_ the O_DSYNC one.\n\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f6f79190866d5b2d06a2114d673f91f54e7c7ce4",
      "tree": "025bc2ff00351c71a719cb5bc2aa3f59133400f6",
      "parents": [
        "0d03d59d9b31cd1e33b7e46a80b6fef66244b1f2",
        "a3c8b97396ef42edfb845788ba6f53b2a93ce980"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 08:55:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 08:55:49 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (57 commits)\n  binfmt_elf: fix PT_INTERP bss handling\n  TPM: Fixup boot probe timeout for tpm_tis driver\n  sysfs: Add labeling support for sysfs\n  LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information.\n  VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx.\n  KEYS: Add missing linux/tracehook.h #inclusions\n  KEYS: Fix default security_session_to_parent()\n  Security/SELinux: includecheck fix kernel/sysctl.c\n  KEYS: security_cred_alloc_blank() should return int under all circumstances\n  IMA: open new file for read\n  KEYS: Add a keyctl to install a process\u0027s session keyring on its parent [try #6]\n  KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6]\n  KEYS: Do some whitespace cleanups [try #6]\n  KEYS: Make /proc/keys use keyid not numread as file position [try #6]\n  KEYS: Add garbage collection for dead, revoked and expired keys. [try #6]\n  KEYS: Flag dead keys to induce EKEYREVOKED [try #6]\n  KEYS: Allow keyctl_revoke() on keys that have SETATTR but not WRITE perm [try #6]\n  KEYS: Deal with dead-type keys appropriately [try #6]\n  CRED: Add some configurable debugging [try #6]\n  selinux: Support for the new TUN LSM hooks\n  ...\n"
    },
    {
      "commit": "a3c8b97396ef42edfb845788ba6f53b2a93ce980",
      "tree": "530c5bdbc534618311dab3e0af245835af56db0f",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657",
        "9f0ab4a3f0fdb1ff404d150618ace2fa069bb2e1"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Sep 11 08:04:49 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Sep 11 08:04:49 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "5909ccaa300a4a834ffa275327af4df0b9cb5295",
      "tree": "b4e402a2a544be7c59bccd4b4533787f2f19e7bc",
      "parents": [
        "cb9179ead0aa0e3b7b4087cdba59baf16bbeef6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 11:51:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:44 2009 -0700"
      },
      "message": "Make \u0027check_acl()\u0027 a first-class filesystem op\n\nThis is stage one in flattening out the callchains for the common\npermission testing.  Rather than have most filesystem implement their\nown inode-\u003ei_op-\u003epermission function that just calls back down to the\nVFS layers \u0027generic_permission()\u0027 with the per-filesystem ACL checking\nfunction, the filesystem can just expose its \u0027check_acl\u0027 function\ndirectly, and let the VFS layer do everything for it.\n\nThis is all just preparatory - no filesystem actually enables this yet.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb9179ead0aa0e3b7b4087cdba59baf16bbeef6d",
      "tree": "04d91abc90dc3f48d70bc95bc9bed6f561369008",
      "parents": [
        "f1ac9f6bfea6f21e8ab6dbbe46879d62a6fba8c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 11:08:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:44 2009 -0700"
      },
      "message": "Simplify exec_permission_lite(), part 3\n\nDon\u0027t call down to the generic inode_permission() function just to\ncall the inode-specific permission function - just do it directly.\n\nThe generic inode_permission() code does things like checking MAY_WRITE\nand devcgroup_inode_permission(), neither of which are relevant for the\nlight pathname walk permission checks (we always do just MAY_EXEC, and\nthe inode is never a special device).\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1ac9f6bfea6f21e8ab6dbbe46879d62a6fba8c0",
      "tree": "01b4e3c84e1403f6c900dd4412aa09cd335c030c",
      "parents": [
        "b7a437b08a44a3ed7e3a052eb39d2c5f618b603b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 10:53:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:43 2009 -0700"
      },
      "message": "Simplify exec_permission_lite() further\n\nThis function is only called for path components that are already known\nto be directories (they have a \u0027-\u003elookup\u0027 method).  So don\u0027t bother\ndoing that whole S_ISDIR() testing, the whole point of the \u0027lite()\u0027\nversion is that we know that we are looking at a directory component,\nand that we\u0027re only checking name lookup permission.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7a437b08a44a3ed7e3a052eb39d2c5f618b603b",
      "tree": "fdb03edf0254e9f24fe7f3e3e2f75d3ac0a3f9e0",
      "parents": [
        "e8e66ed25b5cbeebed69c475f6c108e52078a3b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 10:50:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:43 2009 -0700"
      },
      "message": "Simplify exec_permission_lite() logic\n\nInstead of returning EAGAIN and having the caller do something\nspecial for that case,  just do the special case directly.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8e66ed25b5cbeebed69c475f6c108e52078a3b3",
      "tree": "1827efb3f775eb27238ccaf174cac9228f83cebf",
      "parents": [
        "7c8460db30dfd085ef3837c8fb02ecf2e718b983"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 10:05:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:17 2009 -0700"
      },
      "message": "Do not call \u0027ima_path_check()\u0027 for each path component\n\nNot only is that a supremely timing-critical path, but it\u0027s hopefully\nsome day going to be lockless for the common case, and ima can\u0027t do\nthat.\n\nPlus the integrity code doesn\u0027t even care about non-regular files, so it\nwas always a total waste of time and effort.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acd0c935178649f72c44ec49ca83bee35ce1f79e",
      "tree": "c0cb2f8fbbaa54567785b5430e5be8c8b51f5724",
      "parents": [
        "e07cccf4046978df10f2e13fe2b99b2f9b3a65db"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Fri Sep 04 13:08:46 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Sep 07 11:54:58 2009 +1000"
      },
      "message": "IMA: update ima_counts_put\n\n- As ima_counts_put() may be called after the inode has been freed,\nverify that the inode is not NULL, before dereferencing it.\n\n- Maintain the IMA file counters in may_open() properly, decrementing\nany counter increments on subsequent errors.\n\nReported-by: Ciprian Docan \u003cdocan@eden.rutgers.edu\u003e\nReported-by: J.R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6c1488fd581a447ec87c4b59f0d33f95f0aa441b",
      "tree": "ae7229de1dc5582413e76f45ffdc04ae941e1daa",
      "parents": [
        "ee18d64c1f632043a02e6f5ba5e045bb26a5465f"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Sep 02 11:40:32 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 03 12:06:12 2009 +1000"
      },
      "message": "IMA: open new file for read\n\nWhen creating a new file, ima_path_check() assumed the new file\nwas being opened for write. Call ima_path_check() with the\nappropriate acc_mode so that the read/write counters are\nincremented correctly.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "94e5d714f604d4cb4cb13163f01ede278e69258b",
      "tree": "1f7f50f5eddf74e6930eaf0384538549f263b8fe",
      "parents": [
        "79b854c549c62c54fa27f87e04465c01db889f8d"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Fri Jun 26 14:05:27 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jun 29 08:59:10 2009 +1000"
      },
      "message": "integrity: add ima_counts_put (updated)\n\nThis patch fixes an imbalance message as reported by J.R. Okajima.\nThe IMA file counters are incremented in ima_path_check. If the\nactual open fails, such as ETXTBSY, decrement the counters to\nprevent unnecessary imbalance messages.\n\nReported-by: J.R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "654f562c526cf9dfb8d453f687341fe0777ee454",
      "tree": "407b4c7755b6db7ecf77a881121228831876ee55",
      "parents": [
        "b5450d9c84bdd38b261922057cd167da51dfae93"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Thu Jun 18 23:30:15 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:15:24 2009 -0400"
      },
      "message": "vfs: fix nd-\u003eroot leak in do_filp_open()\n\ncommit 2a737871108de9ba8930f7650d549f1383767f8b \"Cache root in nameidata\"\nintroduced a new member nd-\u003eroot, but forgot to put it in do_filp_open().\n\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef",
      "tree": "0a75e35164912f53b21ca48b829cabdfa6ea507d",
      "parents": [
        "79ed0226198c628133530b179a90dbf42b1c2eba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 14:06:57 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch lookup_mnt()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79ed0226198c628133530b179a90dbf42b1c2eba",
      "tree": "7c6efb33209cc075257d3c1f5aa938b5f2d2feae",
      "parents": [
        "9393bd07cf218ca51d0e627653f906a9d76a9131"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:59:41 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9",
      "tree": "710a8bba0a4f3738b32e4e5230ccf3665cd1b815",
      "parents": [
        "e64c390ca0b60fd2119331ef1fa888d7ea27e424"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:26:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch follow_up() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5b857119538daac7118c1364d7ff3613f12b84d3",
      "tree": "18b85315f6e0e6b4f0c906cf0601593d8df97422",
      "parents": [
        "2a737871108de9ba8930f7650d549f1383767f8b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 11:53:49 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:59 2009 -0400"
      },
      "message": "Make vfs_path_lookup() use starting point as root\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a737871108de9ba8930f7650d549f1383767f8b",
      "tree": "d4a8c5d7da4624c4a8973a4c9369af7a915dca05",
      "parents": [
        "9b4a9b14a793bc69b505ed916051f6f32db13bb8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 11:49:53 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:59 2009 -0400"
      },
      "message": "Cache root in nameidata\n\nNew field: nd-\u003eroot.  When pathname resolution wants to know the root,\ncheck if nd-\u003eroot.mnt is non-NULL; use nd-\u003eroot if it is, otherwise\ncopy current-\u003efs-\u003eroot there.  After path_walk() is finished, we check\nif we\u0027d got a cached value in nd-\u003eroot and drop it.  Before calling\npath_walk() we should either set nd-\u003eroot.mnt to NULL *or* copy (and\npin down) some path to nd-\u003eroot.  In the latter case we won\u0027t be\nlooking at current-\u003efs-\u003eroot at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9b4a9b14a793bc69b505ed916051f6f32db13bb8",
      "tree": "5e4aa273b714b3e10a360f71c2178de66f83bd66",
      "parents": [
        "4e44b6852e03c915618ca6776b6697b436246b00"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 11:44:16 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:58 2009 -0400"
      },
      "message": "Preparations to caching root in path_walk()\n\nSplit do_path_lookup(), opencode the call from do_filp_open()\ndo_filp_open() is the only caller of do_path_lookup() that\ncares about root afterwards (it keeps resolving symlinks on\nO_CREAT path after it\u0027d done LOOKUP_PARENT walk).  So when\nwe start caching fs-\u003eroot in path_walk(), it\u0027ll need a different\ntreatment.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2c9e703c618106f5383226fbb1f526cb11034f8a",
      "tree": "87d7548001ea82f655fede0640466fc16aabcdf7",
      "parents": [
        "6470c077cae12227318f40f3e6d756caadcce4b0",
        "5805977e63a36ad56594a623f3bd2bebcb7db233"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 18:40:59 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 18:40:59 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/exec.c\n\nRemoved IMA changes (the IMA checks are now performed via may_open()).\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b9fc745db833bbf74b4988493b8cd902a84c9415",
      "tree": "45a15174efb3b1c3dcbe5f0dc503e790c4f6fd70",
      "parents": [
        "932995f0ce52525b32ff5127b522c2c164de3810"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue May 19 13:25:57 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 09:43:41 2009 +1000"
      },
      "message": "integrity: path_check update\n\n- Add support in ima_path_check() for integrity checking without\nincrementing the counts. (Required for nfsd.)\n- rename and export opencount_get to ima_counts_get\n- replace ima_shm_check calls with ima_counts_get\n- export ima_path_check\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6e8341a11eb21826b7192d0bb88cb5b44900a9af",
      "tree": "f9e03050f0834c2c4a21f1e6a255b6b0d1262b25",
      "parents": [
        "a44ddbb6d8a8ffe4e34e417048dfdd8f3dd1de4f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 06 11:16:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:42 2009 -0400"
      },
      "message": "Switch open_exec() and sys_uselib() to do_open_filp()\n\n... and make path_lookup_open() static\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f9092e1020246168b1309b35e085ecd7ff9ff72",
      "tree": "f8318c1e62e789718ae7637869f6c075b815bcb2",
      "parents": [
        "1ba0c7dbbbc24230394100c5f0d0df38cb400cff"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Apr 20 23:18:37 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:01:16 2009 -0400"
      },
      "message": "Fix i_mutex vs. readdir handling in nfsd\n\nCommit 14f7dd63 (\"Copy XFS readdir hack into nfsd code\") introduced a\nbug to generic code which had been extant for a long time in the XFS\nversion -- it started to call through into lookup_one_len() and hence\ninto the file systems\u0027 -\u003elookup() methods without i_mutex held on the\ndirectory.\n\nThis patch fixes it by locking the directory\u0027s i_mutex again before\ncalling the filldir functions. The original deadlocks which commit\n14f7dd63 was designed to avoid are still avoided, because they were due\nto fs-internal locking, not i_mutex.\n\nWhile we\u0027re at it, fix the return type of nfsd_buffered_readdir() which\nshould be a __be32 not an int -- it\u0027s an NFS errno, not a Linux errno.\nAnd return nfserrno(-ENOMEM) when allocation fails, not just -ENOMEM.\nSparse would have caught that, if it wasn\u0027t so busy bitching about\n__cold__.\n\nCommit 05f4f678 (\"nfsd4: don\u0027t do lookup within readdir in recovery\ncode\") introduced a similar problem with calling lookup_one_len()\nwithout i_mutex, which this patch also addresses. To fix that, it was\nnecessary to fix the called functions so that they expect i_mutex to be\nheld; that part was done by J. Bruce Fields.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nUmm-I-can-live-with-that-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nTested-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nLKML-Reference: \u003c8036.1237474444@jrobl\u003e\nCc: stable@kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5ad4e53bd5406ee214ddc5a41f03f779b8b2d526",
      "tree": "b3dab5140284b3edf02bf2b13f74bfddb25aa62a",
      "parents": [
        "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:50:06 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:27 2009 -0400"
      },
      "message": "Get rid of indirect include of fs_struct.h\n\nDon\u0027t pull it in sched.h; very few files actually need it and those\ncan include directly.  sched.h itself only needs forward declaration\nof struct fs_struct;\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48",
      "tree": "ab952affafe18e604f6aaf6b13315b9435588e60",
      "parents": [
        "f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:08:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New helper - current_umask()\n\ncurrent-\u003efs-\u003eumask is what most of fs_struct users are doing.\nPut that into a helper function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3e93cd671813e204c258f1e6c797959920cf7772",
      "tree": "a1e0b2d2da7d296cc1c53be9cd6efa5b94b01b5c",
      "parents": [
        "f8ef3ed2bebd2c4cb9ece92efa185d7aead8831a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:00:13 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "Take fs_struct handling to new file (fs/fs_struct.c)\n\nPure code move; two new helper functions for nfsd and daemonize\n(unshare_fs_struct() and daemonize_fs_struct() resp.; for now -\nthe same code as used to be in callers).  unshare_fs_struct()\nexported (for nfsd, as copy_fs_struct()/exit_fs() used to be),\ncopy_fs_struct() and exit_fs() don\u0027t need exports anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ae5080f4c2e293229508dabe7c8a90af4e4c460",
      "tree": "9cb11f26905a82b7fac9d3b8f9d61d58bc5c94b0",
      "parents": [
        "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
        "aabb8fdb41128705fd1627f56fdd571e45fdbcdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (37 commits)\n  fs: avoid I_NEW inodes\n  Merge code for single and multiple-instance mounts\n  Remove get_init_pts_sb()\n  Move common mknod_ptmx() calls into caller\n  Parse mount options just once and copy them to super block\n  Unroll essentials of do_remount_sb() into devpts\n  vfs: simple_set_mnt() should return void\n  fs: move bdev code out of buffer.c\n  constify dentry_operations: rest\n  constify dentry_operations: configfs\n  constify dentry_operations: sysfs\n  constify dentry_operations: JFS\n  constify dentry_operations: OCFS2\n  constify dentry_operations: GFS2\n  constify dentry_operations: FAT\n  constify dentry_operations: FUSE\n  constify dentry_operations: procfs\n  constify dentry_operations: ecryptfs\n  constify dentry_operations: CIFS\n  constify dentry_operations: AFS\n  ...\n"
    },
    {
      "commit": "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
      "tree": "6d9b27a07f88ad4509dcd86aa74a2cdecd0d5f4b",
      "parents": [
        "805de022b100bcf796860fe88d7db4164066d1c3",
        "c16831b4cc9b0805adf8ca3001752a7ec10a17bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6: (27 commits)\n  ext2: Zero our b_size in ext2_quota_read()\n  trivial: fix typos/grammar errors in fs/Kconfig\n  quota: Coding style fixes\n  quota: Remove superfluous inlines\n  quota: Remove uppercase aliases for quota functions.\n  nfsd: Use lowercase names of quota functions\n  jfs: Use lowercase names of quota functions\n  udf: Use lowercase names of quota functions\n  ufs: Use lowercase names of quota functions\n  reiserfs: Use lowercase names of quota functions\n  ext4: Use lowercase names of quota functions\n  ext3: Use lowercase names of quota functions\n  ext2: Use lowercase names of quota functions\n  ramfs: Remove quota call\n  vfs: Use lowercase names of quota functions\n  quota: Remove dqbuf_t and other cleanups\n  quota: Remove NODQUOT macro\n  quota: Make global quota locks cacheline aligned\n  quota: Move quota files into separate directory\n  ext4: quota reservation for delayed allocation\n  ...\n"
    },
    {
      "commit": "c8fe8f30c7fe6ce6fc44a1db7d5bfa5144cd9211",
      "tree": "4432fe47893442907d1e60ab362208dd9ae12bd2",
      "parents": [
        "b6520c81934848cef126d93951f7ce242e0f656d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 05 19:27:23 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:43:57 2009 -0400"
      },
      "message": "cleanup may_open\n\nAdd a switch for the various i_mode fmt cases, and remove the comment\nabout writeability of devices nodes - that part is handled in\ninode_permission and comment on (briefly) there.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9e3509e273ecc2a5f937c493f9bb71e5e41ac2e5",
      "tree": "a7d9704e891f14b7196a275543b7f9c90f348b82",
      "parents": [
        "d26ac1a8128f6e1fc467f145acaa9f9bf9e16b75"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 16:45:12 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:35 2009 +0100"
      },
      "message": "vfs: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCC: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cb5629b10d64a8006622ce3a52bc887d91057d69",
      "tree": "7c06d8f30783115e3384721046258ce615b129c5",
      "parents": [
        "8920d5ad6ba74ae8ab020e90cc4d976980e68701",
        "f01d1d546abb2f4028b5299092f529eefb01253a"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/namei.c\n\nManually merged per:\n\ndiff --cc fs/namei.c\nindex 734f2b5,bbc15c2..0000000\n--- a/fs/namei.c\n+++ b/fs/namei.c\n@@@ -860,9 -848,8 +849,10 @@@ static int __link_path_walk(const char\n  \t\tnd-\u003eflags |\u003d LOOKUP_CONTINUE;\n  \t\terr \u003d exec_permission_lite(inode);\n  \t\tif (err \u003d\u003d -EAGAIN)\n- \t\t\terr \u003d vfs_permission(nd, MAY_EXEC);\n+ \t\t\terr \u003d inode_permission(nd-\u003epath.dentry-\u003ed_inode,\n+ \t\t\t\t\t       MAY_EXEC);\n +\t\tif (!err)\n +\t\t\terr \u003d ima_path_check(\u0026nd-\u003epath, MAY_EXEC);\n   \t\tif (err)\n  \t\t\tbreak;\n\n@@@ -1525,14 -1506,9 +1509,14 @@@ int may_open(struct path *path, int acc\n  \t\tflag \u0026\u003d ~O_TRUNC;\n  \t}\n\n- \terror \u003d vfs_permission(nd, acc_mode);\n+ \terror \u003d inode_permission(inode, acc_mode);\n  \tif (error)\n  \t\treturn error;\n +\n- \terror \u003d ima_path_check(\u0026nd-\u003epath,\n++\terror \u003d ima_path_check(path,\n +\t\t\t       acc_mode \u0026 (MAY_READ | MAY_WRITE | MAY_EXEC));\n +\tif (error)\n +\t\treturn error;\n  \t/*\n  \t * An append-only file must be opened in append mode for writing.\n  \t */\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6146f0d5e47ca4047ffded0fb79b6c25359b386c",
      "tree": "edd792e52ad56d4a5d3ac6caa8437d3283fc157e",
      "parents": [
        "659aaf2bb5496a425ba14036b5b5900f593e4484"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:06:57 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:30 2009 +1100"
      },
      "message": "integrity: IMA hooks\n\nThis patch replaces the generic integrity hooks, for which IMA registered\nitself, with IMA integrity hooks in the appropriate places directly\nin the fs directory.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2e4d0924eb0c403ce4014fa139d1d61bf2c44fee",
      "tree": "58249b615c3a7a77154d4c9d006ea9acd04bbef9",
      "parents": [
        "938bb9f5e840eddbf54e4f62f6c5ba9b3ae12c9d"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:31 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:30 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 29\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "3cdad42884bbd95d5aa01297e8236ea1bad70053",
      "tree": "169b8958b56d5c39a4f437d041baf0412bb53b96",
      "parents": [
        "003d7ab479168132a2b2c6700fe682b08f08ab0c"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:22 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:26 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 20\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "a26eab2400f0477bfac0255600552394855016f7",
      "tree": "f5554eddf4928cc83e572c15c0b314daaa7cba66",
      "parents": [
        "3480b25743cb7404928d57efeaa3d085708b04c2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:17 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:24 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 15\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "3480b25743cb7404928d57efeaa3d085708b04c2",
      "tree": "14d7b42301f2e76cea6772c446f3ee920b29a1b6",
      "parents": [
        "6a6160a7b5c27b3c38651baef92a14fa7072b3c1"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:16 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:24 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 14\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "520c85346666d4d9a6fcaaa8450542302dc28b91",
      "tree": "9c9cc9e2493b606104dd8602302ae28258ebeac0",
      "parents": [
        "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
        "4ae8978cf92a96257cd8998a49e781be83571d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  inotify: fix type errors in interfaces\n  fix breakage in reiserfs_new_inode()\n  fix the treatment of jfs special inodes\n  vfs: remove duplicate code in get_fs_type()\n  add a vfs_fsync helper\n  sys_execve and sys_uselib do not call into fsnotify\n  zero i_uid/i_gid on inode allocation\n  inode-\u003ei_op is never NULL\n  ntfs: don\u0027t NULL i_op\n  isofs check for NULL -\u003ei_op in root directory is dead code\n  affs: do not zero -\u003ei_op\n  kill suid bit only for regular files\n  vfs: lseek(fd, 0, SEEK_CUR) race condition\n"
    },
    {
      "commit": "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18",
      "tree": "d656232c7ef39c83681c2de4c8e28ba439242f66",
      "parents": [
        "9742df331deb3fce95b321f38d4ea0c4e75edb63"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 10:06:33 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "inode-\u003ei_op is never NULL\n\nWe used to have rather schizophrenic set of checks for NULL -\u003ei_op even\nthough it had been eliminated years ago.  You\u0027d need to go out of your\nway to set it to NULL explicitly _and_ a bunch of code would die on\nsuch inodes anyway.  After killing two remaining places that still\ndid that bogosity, all that crap can go away.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1239f26c05899f1f3c541b41e719c59d58038786",
      "tree": "f9b96535e345faa4bacff85eddbb2f81c85938a9",
      "parents": [
        "18d8fda7c3c9439be04d7ea2e82da2513b121acb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 10 18:37:28 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:42 2008 -0500"
      },
      "message": "make INIT_FS use the __RW_LOCK_UNLOCKED initialization\n\n[AV: rediffed on top of unification of init_fs]\nInitialization of init_fs still uses the deprecated RW_LOCK_UNLOCKED macro.\nThis patch updates it to use the __RW_LOCK_UNLOCKED(lock) macro.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18d8fda7c3c9439be04d7ea2e82da2513b121acb",
      "tree": "6b16a687205c7c027c719fd2249551f58f966618",
      "parents": [
        "cb23beb55100171646e69e248fb45f10db6e99a4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 26 00:35:37 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:42 2008 -0500"
      },
      "message": "take init_fs to saner place\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cb23beb55100171646e69e248fb45f10db6e99a4",
      "tree": "a8868859b02f14dc27ef560de903088ca35b4ad4",
      "parents": [
        "3fb64190aa3c23c10e6e9fd0124ac030115c99bf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 24 09:59:29 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:41 2008 -0500"
      },
      "message": "kill vfs_permission\n\nWith all the nameidata removal there\u0027s no point anymore for this helper.\nOf the three callers left two will go away with the next lookup series\nanyway.\n\nAlso add proper kerneldoc to inode_permission as this is the main\npermission check routine now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3fb64190aa3c23c10e6e9fd0124ac030115c99bf",
      "tree": "6b7b5452d2abbe7964803d8a95c03e5612c8e607",
      "parents": [
        "b4091d5f6fde28ab762e1094a1a26d81f3badfa5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 24 09:58:10 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:41 2008 -0500"
      },
      "message": "pass a struct path * to may_open\n\nNo need for the nameidata in may_open - a struct path is enough.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b4091d5f6fde28ab762e1094a1a26d81f3badfa5",
      "tree": "776e0dfeefb7966f4151fe22cb2b9b7482566714",
      "parents": [
        "66f221875dc10813aa2f06c83ad60d0eb1356406"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 15:07:21 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:41 2008 -0500"
      },
      "message": "kill walk_init_root\n\nwalk_init_root is a tiny helper that is marked __always_inline, has just\none caller and an unused argument.  Just merge it into the caller.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "66f221875dc10813aa2f06c83ad60d0eb1356406"
}
