)]}'
{
  "log": [
    {
      "commit": "a95164d979c5ca061f15bcaadc829c146693d4d9",
      "tree": "c9aa8d6a45fb03f5ca5ed904fa5a15cd8c3ddd55",
      "parents": [
        "7ee7c12b7121cd49d528de219e4ffd5459657998"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 30 15:08:48 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:30 2008 -0400"
      },
      "message": "[patch 3/4] vfs: remove unused nameidata argument of may_create()\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f418b006079ce537daf9436215f1d2a47e451602",
      "tree": "c61320192312898c0b0ac2a67398d5c81613f8cb",
      "parents": [
        "94ad374a0751f40d25e22e036c37f7263569d24c"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon Jul 28 13:32:38 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:21 2008 -0400"
      },
      "message": "Re: BUG at security/selinux/avc.c:883 (was: Re: linux-next: Tree\nfor July 17: early crash on x86-64)\n\nSELinux needs MAY_APPEND to be passed down to the security hook.\nOtherwise, we get permission denials when only append permission is\ngranted by policy even if the opening process specified O_APPEND.\nShows up as a regression in the ltp selinux testsuite, fixed by\nthis patch.\n\nSigned-off-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "964bd183624c03680796b63b4ab97ee3905a806a",
      "tree": "801fa25ccd01a7c7bf8ee793ba910edc8ce3f55a",
      "parents": [
        "516e0cc5646f377ab80fcc2ee639892eccb99853"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:33:14 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:41 2008 -0400"
      },
      "message": "[PATCH] get rid of __user_path_lookup_open\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2ad94ae654f5eb72fd3260b706aea645cf4a7791",
      "tree": "3f88e3658e7a11ca981955ea427c80a326d412ae",
      "parents": [
        "2d8f30380ab8c706f4e0a8f1aaa22b5886e9ac8a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 21 09:32:51 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:35 2008 -0400"
      },
      "message": "[PATCH] new (local) helper: user_path_parent()\n\nPreparation to untangling intents mess: reduce the number of do_path_lookup()\ncallers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2d8f30380ab8c706f4e0a8f1aaa22b5886e9ac8a",
      "tree": "b798097fd831eab39f35c8c2e5a8ccfd7a850ef5",
      "parents": [
        "256984a83880ff7ac78055cb87baea48137f0b77"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 09:59:21 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:34 2008 -0400"
      },
      "message": "[PATCH] sanitize __user_walk_fd() et.al.\n\n* do not pass nameidata; struct path is all the callers want.\n* switch to new helpers:\n\tuser_path_at(dfd, pathname, flags, \u0026path)\n\tuser_path(pathname, \u0026path)\n\tuser_lpath(pathname, \u0026path)\n\tuser_path_dir(pathname, \u0026path)  (fail if not a directory)\n  The last 3 are trivial macro wrappers for the first one.\n* remove nameidata in callers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f419a2e3b64def707e1384ee38abb77f99af5f6d",
      "tree": "adbe12c510f04cf25ca6f822ee8004c8679a3a63",
      "parents": [
        "30524472c2f728c20d6bf35191042a5d455c0a64"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 00:07:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:31 2008 -0400"
      },
      "message": "[PATCH] kill nameidata passing to permission(), rename to inode_permission()\n\nIncidentally, the name that gives hundreds of false positives on grep\nis not a good idea...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "30524472c2f728c20d6bf35191042a5d455c0a64",
      "tree": "e9985d3883b45c4a9f5ef8185fa79c7b568bb4bd",
      "parents": [
        "e56b6a5dda1a36ffaa532df6f975ea324298fa4d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 00:02:33 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:30 2008 -0400"
      },
      "message": "[PATCH] take noexec checks to very few callers that care\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "672b16b2f66c149888bd876a4f92342112205fe1",
      "tree": "bef14b7ef42dc4421a2af5402ba9d5d71addc5ad",
      "parents": [
        "b77b0646ef4efe31a7449bb3d9360fd00f95433d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 17 09:45:01 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:23 2008 -0400"
      },
      "message": "[PATCH] more nameidata removal: exec_permission_lite() doesn\u0027t need it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b77b0646ef4efe31a7449bb3d9360fd00f95433d",
      "tree": "f8487fe832fbe23400c9f98e808555f0251fb158",
      "parents": [
        "a110343f0d6d41f68b7cf8c00b57a3172c67f816"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 17 09:37:02 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:22 2008 -0400"
      },
      "message": "[PATCH] pass MAY_OPEN to vfs_permission() explicitly\n\n... and get rid of the last \"let\u0027s deduce mask from nameidata-\u003eflags\"\nbit.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a110343f0d6d41f68b7cf8c00b57a3172c67f816",
      "tree": "04f57e3454e796765a7395d2ece4739cf536ae9f",
      "parents": [
        "7f2da1e7d0330395e5e9e350b879b98a1ea495df"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 17 09:19:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:21 2008 -0400"
      },
      "message": "[PATCH] fix MAY_CHDIR/MAY_ACCESS/LOOKUP_ACCESS mess\n\n* MAY_CHDIR is redundant - it\u0027s an equivalent of MAY_ACCESS\n* MAY_ACCESS on fuse should affect only the last step of pathname resolution\n* fchdir() and chroot() should pass MAY_ACCESS, for the same reason why\n  chdir() needs that.\n* now that we pass MAY_ACCESS explicitly in all cases, LOOKUP_ACCESS can be\n  removed; it has no business being in nameidata.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f2da1e7d0330395e5e9e350b879b98a1ea495df",
      "tree": "adc01ced45bb1de10fe58511e7143bbbd138a192",
      "parents": [
        "8bb79224b87aab92071e94d46e70bd160d89bf34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 20:44:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:20 2008 -0400"
      },
      "message": "[PATCH] kill altroot\n\nlong overdue...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8bb79224b87aab92071e94d46e70bd160d89bf34",
      "tree": "dab47cbb434876e5916f18b738ef8bd3fe1e1ce1",
      "parents": [
        "db2e747b14991a4c6a5c98b0e5f552a193237c03"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 16 09:51:03 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:19 2008 -0400"
      },
      "message": "[PATCH] permission checks for chdir need special treatment only on the last step\n\n... so we ought to pass MAY_CHDIR to vfs_permission() instead of having\nit triggered on every step of preceding pathname resolution.  LOOKUP_CHDIR\nis killed by that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "db2e747b14991a4c6a5c98b0e5f552a193237c03",
      "tree": "8850e8ef9e1a7bb3d7bbc051f191cd8350093564",
      "parents": [
        "7e79eedb3b22200cc8b774baea3a7bf28d766101"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 24 16:50:16 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:18 2008 -0400"
      },
      "message": "[patch 5/5] vfs: remove mode parameter from vfs_symlink()\n\nRemove the unused mode parameter from vfs_symlink and callers.\n\nThanks to Tetsuo Handa for noticing.\n\nCC: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "7e79eedb3b22200cc8b774baea3a7bf28d766101",
      "tree": "6e0f8ab6c201c671a73bb7f452265a9bf54d3158",
      "parents": [
        "2f1936b87783a3a56c9441b27b9ba7a747f11e8e"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Tue Jun 24 16:50:15 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:17 2008 -0400"
      },
      "message": "[patch 4/5] vfs: reuse local variable in vfs_link()\n\nWhy not reuse \"inode\" which is assigned as\n\n  struct inode *inode \u003d old_dentry-\u003ed_inode;\n\nin the beginning of vfs_link() ?\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d70b67c8bc72ee23b55381bd6a884f4796692f77",
      "tree": "c15055c81f21b7863318e1e6f8a9620afaeb3327",
      "parents": [
        "a048d3aff8b828b6c0fa7ddd90a531248ab4e0f9"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 02 21:30:15 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:05 2008 -0400"
      },
      "message": "[patch] vfs: fix lookup on deleted directory\n\nLookup can install a child dentry for a deleted directory.  This keeps\nthe directory dentry alive, and the inode pinned in the cache and on\ndisk, even after all external references have gone away.\n\nThis isn\u0027t a big problem normally, since memory pressure or umount\nwill clear out the directory dentry and its children, releasing the\ninode.  But for UBIFS this causes problems because its orphan area can\noverflow.\n\nFix this by returning ENOENT for all lookups on a S_DEAD directory\nbefore creating a child dentry.\n\nThanks to Zoltan Sogor for noticing this while testing UBIFS, and\nArtem for the excellent analysis of the problem and testing.\n\nReported-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nTested-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "694a1764d657e0f7a9b139bc7269c8d5f5a2534b",
      "tree": "754e073cce539c3b6f93e61c3f729bc5959f12f4",
      "parents": [
        "20d4fdc1a788e4ca0aaf2422772ba668e7e10839"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Mon Jun 09 16:40:37 2008 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 23 11:52:30 2008 -0400"
      },
      "message": "[patch 3/4] vfs: fix ERR_PTR abuse in generic_readlink\n\ngeneric_readlink calls ERR_PTR for negative and positive values\n(vfs_readlink returns length of \"link\"), but it should not\n(not an errno) and does not need to.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c8e7f449b225ee6c87454ac069f0a041035c5140",
      "tree": "9f89ed29958a58fb6010ca60d7ce1f9d7a747b3c",
      "parents": [
        "c70f84417429f41519be0197a1092a53c2201f47"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Mon Jun 09 16:40:35 2008 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 23 11:52:29 2008 -0400"
      },
      "message": "[patch 1/4] vfs: path_{get,put}() cleanups\n\nHere are some more places where path_{get,put}() can be used instead of\ndput()/mntput() pair.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e9baf6e59842285bcf9570f5094e4c27674a0f7c",
      "tree": "12d5e9d762868bcc7aa97851240486d31314439b",
      "parents": [
        "23c4971e3d97de4e1b7961ca6eacee35aa15ce5f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 15 04:49:12 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:23:18 2008 -0400"
      },
      "message": "[PATCH] return to old errno choice in mkdir() et.al.\n\n\tIn case when both EEXIST and EROFS would apply we used to\nreturn the former in mkdir(2) and friends.  Lest anyone suspects\nus of being consistent, in the same situation knfsd gave clients\nnfs_erofs...\n\n\tro-bind series had switched the syscall side of things to\nreturning -EROFS and immediately broke an application - namely,\nmkdir -p.  Patch restores the original behaviour...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "08ce5f16ee466ffc5bf243800deeecd77d9eaf50",
      "tree": "8fb921137a677d463f11727dab7e683db426b810",
      "parents": [
        "d447ea2f30ec60370ddb99a668e5ac12995f043d"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue Apr 29 01:00:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroups: implement device whitelist\n\nImplement a cgroup to track and enforce open and mknod restrictions on device\nfiles.  A device cgroup associates a device access whitelist with each cgroup.\n A whitelist entry has 4 fields.  \u0027type\u0027 is a (all), c (char), or b (block).\n\u0027all\u0027 means it applies to all types and all major and minor numbers.  Major\nand minor are either an integer or * for all.  Access is a composition of r\n(read), w (write), and m (mknod).\n\nThe root device cgroup starts with rwm to \u0027all\u0027.  A child devcg gets a copy of\nthe parent.  Admins can then remove devices from the whitelist or add new\nentries.  A child cgroup can never receive a device access which is denied its\nparent.  However when a device access is removed from a parent it will not\nalso be removed from the child(ren).\n\nAn entry is added using devices.allow, and removed using\ndevices.deny.  For instance\n\n\techo \u0027c 1:3 mr\u0027 \u003e /cgroups/1/devices.allow\n\nallows cgroup 1 to read and mknod the device usually known as\n/dev/null.  Doing\n\n\techo a \u003e /cgroups/1/devices.deny\n\nwill remove the default \u0027a *:* mrw\u0027 entry.\n\nCAP_SYS_ADMIN is needed to change permissions or move another task to a new\ncgroup.  A cgroup may not be granted more permissions than the cgroup\u0027s parent\nhas.  Any task can move itself between cgroups.  This won\u0027t be sufficient, but\nwe can decide the best way to adequately restrict movement later.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix may-be-used-uninitialized warning]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nLooks-good-to: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Daniel Hokka Zakrisson \u003cdaniel@hozac.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a3fd211ccfc08a88edc824300e25a87785c6a5f",
      "tree": "99f1a76a99fa78464b8de731f7fdb5bcc9667a5e",
      "parents": [
        "42a74f206b914db13ee1f5ae932dcd91a77c8579"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:48 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:25 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: elevate write count for open()s\n\nThis is the first really tricky patch in the series.  It elevates the writer\ncount on a mount each time a non-special file is opened for write.\n\nWe used to do this in may_open(), but Miklos pointed out that __dentry_open()\nis used as well to create filps.  This will cover even those cases, while a\ncall in may_open() would not have.\n\nThere is also an elevated count around the vfs_create() call in open_namei().\nSee the comments for more details, but we need this to fix a \u0027create, remount,\nfail r/w open()\u0027 race.\n\nSome filesystems forego the use of normal vfs calls to create\nstruct files.   Make sure that these users elevate the mnt\nwriter count because they will get __fput(), and we need\nto make sure they\u0027re balanced.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9079b1eb1753f217c3de9f1b7dd7fd549cc3f0cf",
      "tree": "8e522ad0b16829849e4b1602270eb10997fba41d",
      "parents": [
        "75c3f29de7451677c59580b0a959f694f36aac28"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:49 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:34 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: get write access for vfs_rename() callers\n\nThis also uses the little helper in the NFS code to make an if() a little bit\nless ugly.  We introduced the helper at the beginning of the series.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75c3f29de7451677c59580b0a959f694f36aac28",
      "tree": "c82ad50102bfa38f2dc6bb0f763cde9f3dff3790",
      "parents": [
        "463c3197263bd26ac59a00d2484990e17e35c50e"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:45 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:34 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: write counts for link/symlink\n\n[AV: add missing nfsd pieces]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "463c3197263bd26ac59a00d2484990e17e35c50e",
      "tree": "b27c04f978ccd447ae33f7387b6a4aba0033acc5",
      "parents": [
        "0622753b800e4cc6cb9319b36b27658c72dd7cdc"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:57 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:34 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: get callers of vfs_mknod/create/mkdir()\n\nThis takes care of all of the direct callers of vfs_mknod().\nSince a few of these cases also handle normal file creation\nas well, this also covers some calls to vfs_create().\n\nSo that we don\u0027t have to make three mnt_want/drop_write()\ncalls inside of the switch statement, we move some of its\nlogic outside of the switch and into a helper function\nsuggested by Christoph.\n\nThis also encapsulates a fix for mknod(S_IFREG) that Miklos\nfound.\n\n[AV: merged mkdir handling, added missing nfsd pieces]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0622753b800e4cc6cb9319b36b27658c72dd7cdc",
      "tree": "5a32b65a087ff7fd5effa8d3f6f1f9717d4391aa",
      "parents": [
        "49e0d02cf018d4edf24bfc8531a816a26367e4ce"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:34 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:33 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: elevate write count for rmdir and unlink.\n\nElevate the write count during the vfs_rmdir() and vfs_unlink().\n\n[AV: merged rmdir and unlink parts, added missing pieces in nfsd]\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a70e65df8812c52252fa07a2eb92a46451a4427f",
      "tree": "b8154bebeb898743e89aeeea5971b410c7e49bf7",
      "parents": [
        "d57999e1527f0b0c818846dcba5a23015beb4823"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Feb 15 14:37:28 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:32 2008 -0400"
      },
      "message": "[PATCH] merge open_namei() and do_filp_open()\n\nopen_namei() will, in the future, need to take mount write counts\nover its creation and truncation (via may_open()) operations.  It\nneeds to keep these write counts until any potential filp that is\ncreated gets __fput()\u0027d.\n\nThis gets complicated in the error handling and becomes very murky\nas to how far open_namei() actually got, and whether or not that\nmount write count was taken.  That makes it a bad interface.\n\nAll that the current do_filp_open() really does is allocate the\nnameidata on the stack, then call open_namei().\n\nSo, this merges those two functions and moves filp_open() over\nto namei.c so it can be close to its buddy: do_filp_open().  It\nalso gets a kerneldoc comment in the process.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d57999e1527f0b0c818846dcba5a23015beb4823",
      "tree": "6cd6f1e773fb19b18531997131b0887f835dcf03",
      "parents": [
        "3925e6fc1f774048404fdd910b0345b06c699eb4"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:27 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:31 2008 -0400"
      },
      "message": "[PATCH] do namei_flags calculation inside open_namei()\n\nMy end goal here is to make sure all users of may_open()\nreturn filps.  This will ensure that we properly release\nmount write counts which were taken for the filp in\nmay_open().\n\nThis patch moves the sys_open flags to namei flags\ncalculation into fs/namei.c.  We\u0027ll shortly be moving\nthe nameidata_to_filp() calls into namei.c, and this\ngets the sys_open flags to a place where we can get\nat them when we need them.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ed7fe5e82c9fc8473974fbd7389d169b8f17c77",
      "tree": "ff6ff57c88c887133f1585473e7d74981d0dc88c",
      "parents": [
        "a4083c9271e0a697278e089f2c0b9a95363ada0a",
        "a02f76c34d7d6d30b63ac64a8b34dea68593e8da"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 25 08:57:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 25 08:57:47 2008 -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:\n  [PATCH] get stack footprint of pathname resolution back to relative sanity\n  [PATCH] double iput() on failure exit in hugetlb\n  [PATCH] double dput() on failure exit in tiny-shmem\n  [PATCH] fix up new filp allocators\n  [PATCH] check for null vfsmount in dentry_open()\n  [PATCH] reiserfs: eliminate private use of struct file in xattr\n  [PATCH] sanitize hppfs\n  hppfs pass vfsmount to dentry_open()\n  [PATCH] restore export of do_kern_mount()\n"
    },
    {
      "commit": "a6b91919e0881a0d0a4ae5211d5c879a8c7ca92b",
      "tree": "148aabc0a92a297f9220174435e822f30c951215",
      "parents": [
        "5366dc9fd1cb74023790a8edf29e4fe42c886dcf"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Mar 19 17:01:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:36 2008 -0700"
      },
      "message": "fs: fix kernel-doc notation warnings\n\nFix kernel-doc notation warnings in fs/.\n\nWarning(mmotm-2008-0314-1449//fs/super.c:560): missing initial short description on line:\n *\tmark_files_ro\nWarning(mmotm-2008-0314-1449//fs/locks.c:1277): missing initial short description on line:\n *\tlease_get_mtime\nWarning(mmotm-2008-0314-1449//fs/locks.c:1277): missing initial short description on line:\n *\tlease_get_mtime\nWarning(mmotm-2008-0314-1449//fs/namei.c:1368): missing initial short description on line:\n * lookup_one_len:  filesystem helper to lookup single pathname component\nWarning(mmotm-2008-0314-1449//fs/buffer.c:3221): missing initial short description on line:\n * bh_uptodate_or_lock: Test whether the buffer is uptodate\nWarning(mmotm-2008-0314-1449//fs/buffer.c:3240): missing initial short description on line:\n * bh_submit_read: Submit a locked buffer for reading\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:30): missing initial short description on line:\n * writeback_acquire: attempt to get exclusive writeback access to a device\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:47): missing initial short description on line:\n * writeback_in_progress: determine whether there is writeback in progress\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:58): missing initial short description on line:\n * writeback_release: relinquish exclusive writeback access against a device.\nWarning(mmotm-2008-0314-1449//include/linux/jbd.h:351): contents before sections\nWarning(mmotm-2008-0314-1449//include/linux/jbd.h:561): contents before sections\nWarning(mmotm-2008-0314-1449//fs/jbd/transaction.c:1935): missing initial short description on line:\n * void journal_invalidatepage()\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a02f76c34d7d6d30b63ac64a8b34dea68593e8da",
      "tree": "4186495ccb3d6ef3cec8b5f8cf964212f746ab55",
      "parents": [
        "b4d232e65fa274a715dae39f77191071324e602a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 23 15:14:28 2008 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 19 06:55:46 2008 -0400"
      },
      "message": "[PATCH] get stack footprint of pathname resolution back to relative sanity\n\nSomebody had put struct nameidata in stack frame of link_path_walk().\nUnfortunately, there are certain realities to deal with:\n\t* It\u0027s in the middle of recursion.  Depth is equal to the nesting\ndepth of symlinks, i.e. up to 8.\n\t* struct namiedata is, even if one discards the intent junk,\nat least 12 pointers + 5 ints.\n\t* moreover, adding a stack frame is not free in that situation.\n\t* there are fs methods called on top of that, and they also have\nstack footprint.\n\t* kernel stack is not infinite.\n\nThe thing is, even if one chooses to deal with -ESTALE that way (and it\u0027s\none hell of an overkill), the only thing that needs to be preserved is\nvfsmount + dentry, not the entire struct nameidata.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6ac08c39a16f72c2d3e845cb6849a1392fa03e80",
      "tree": "d7603571e9ab3ea4b57b7901211320e48d0c5ed8",
      "parents": [
        "5dd784d04924be5d8bc066aded0ec3274b20e612"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Use struct path in fs_struct\n\n* Use struct path in fs_struct.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dd784d04924be5d8bc066aded0ec3274b20e612",
      "tree": "b92ba8ffd3cad1175a75df0356882e50b5999f98",
      "parents": [
        "09da5916baf6d3fb9ac16c125c801ae6ea151f97"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_get()\n\nThis introduces the symmetric function to path_put() for getting a reference\nto the dentry and vfsmount of a struct path in the right order.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09da5916baf6d3fb9ac16c125c801ae6ea151f97",
      "tree": "9cb3d90969fec6c24cb6505f59c097529dc62197",
      "parents": [
        "1d957f9bf87da74f420424d16ece005202bbebd3"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Use path_put() in a few places instead of {mnt,d}put()\n\nUse path_put() in a few places instead of {mnt,d}put()\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "429731b1553bacf9a331c260c317a28aaa878edb",
      "tree": "d9feaea03f5abe2eb3ac6a40cbd4e4e3b4638e6a",
      "parents": [
        "db74ece990ea59a9ec9f00f8881026059ef5caf5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:32 2008 -0800"
      },
      "message": "Remove path_release_on_umount()\n\npath_release_on_umount() should only be called from sys_umount(). I merged the\nfunction into sys_umount() instead of having in in namei.c.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc9b52cd8f5f459b88adcf67c47668425ae31a78",
      "tree": "c29924eaf60d2e73641bf11fa906a23fa81f46c9",
      "parents": [
        "75acb9cd2ef0bbb463098fdd40cbcdda79d45fa3"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "fs: remove fastcall, it is always empty\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ece95912db94d98e202cbedb8f35206deb29d83d",
      "tree": "7900aa32e8f8ee26f708471664a5b4024997be40",
      "parents": [
        "6d9851618104a21dbf5ee8260b5f2d4b5229c77e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 06 01:37:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:05 2008 -0800"
      },
      "message": "inotify: send IN_ATTRIB events when link count changes\n\nCurrently, no notification event has been sent when inode\u0027s link count\nchanged.  This is inconvenient for the application in some cases:\n\nSuppose you have the following directory structure\n\n    foo/test\n    bar/\n\nand you watch test.  If someone does \"mv foo/test bar/\", you get event\nIN_MOVE_SELF and you know something has happened with the file \"test\".\nHowever if someone does \"ln foo/test bar/test\" and \"rm foo/test\" you get no\ninotify event for the file \"test\" (only directories \"foo\" and \"bar\" receive\nevents).\n\nFurthermore it could be argued that link count belongs to file\u0027s metadata and\nthus IN_ATTRIB should be sent when it changes.\n\nThe following patch implements sending of IN_ATTRIB inotify events when link\ncount of the inode changes, i.e., when a hardlink to the inode is created or\nwhen it is removed.  This event is sent in addition to all the events sent so\nfar.  In particular, when a last link to a file is removed, IN_ATTRIB event is\nsent in addition to IN_DELETE_SELF event.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Morten Welinder \u003cmwelinder@gmail.com\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "974a9f0b47da74e28f68b9c8645c3786aa5ace1a",
      "tree": "79f1aaba6998830be0d11bf7a2258529584b35c3",
      "parents": [
        "d0c4c9d4a2e46f052178806c4004d52cd3ae040f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jan 12 14:06:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jan 12 14:47:58 2008 -0800"
      },
      "message": "Use access mode instead of open flags to determine needed permissions\n\nWay back when (in commit 834f2a4a1554dc5b2598038b3fe8703defcbe467, aka\n\"VFS: Allow the filesystem to return a full file pointer on open intent\"\nto be exact), Trond changed the open logic to keep track of the original\nflags to a file open, in order to pass down the the intent of a dentry\nlookup to the low-level filesystem.\n\nHowever, when doing that reorganization, it changed the meaning of\nnamei_flags, and thus inadvertently changed the test of access mode for\ndirectories (and RO filesystem) to use the wrong flag.  So fix those\ntest back to use access mode (\"acc_mode\") rather than the open flag\n(\"flag\").\n\nIssue noticed by Bill Roman at Datalight.\n\nReported-and-tested-by: Bill Roman \u003cbill.roman@datalight.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a190ae69766da9a34bf31200c5cea4c0667cf94",
      "tree": "340c500fe42518abe6d1159a00619b1bd02f07fc",
      "parents": [
        "cfa76f024f7c9e65169425804e5b32e71f66d0ee"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 07 12:19:32 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:18 2007 -0400"
      },
      "message": "[PATCH] pass dentry to audit_inode()/audit_inode_child()\n\nmakes caller simpler *and* allows to scan ancestors\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d139d7ffd0c1e81e2a809909b4f8b121a0dc119a",
      "tree": "e8c9dd746bfd8ae16d17596009608c4c1a153217",
      "parents": [
        "49d4914fd7c10ae846d0f30d5f6f4732cc68499c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:07:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:30 2007 -0700"
      },
      "message": "VFS: allow filesystems to implement atomic open+truncate\n\nAdd a new attribute flag ATTR_OPEN, with the meaning: \"truncation was\ninitiated by open() due to the O_TRUNC flag\".\n\nThis way filesystems wanting to implement truncation within their -\u003eopen()\nmethod can ignore such truncate requests.\n\nThis is a quick \u0026 dirty hack, but it comes for free.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7eb26678e59f16f4e84f1176d187cd21a27414d",
      "tree": "bf58c7f877846d204d417021b8608e1446bc3ea8",
      "parents": [
        "b41572e929221b0d87f529106cdf12185ee84bca"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Tue Oct 16 23:31:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:05 2007 -0700"
      },
      "message": "r/o bind mounts: give permission() a local \u0027mnt\u0027 variable\n\nFirst of all, this makes the structure jumping look a little bit cleaner.  So,\nthis stands alone as a tiny cleanup.  But, we also need \u0027mnt\u0027 by itself a few\nmore times later in this series, so this isn\u0027t _just_ a cleanup.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b41572e929221b0d87f529106cdf12185ee84bca",
      "tree": "0ffd9252f53e9e964e962d6d428377851f12b015",
      "parents": [
        "ce8d2cdf3d2b73e346c82e6f0a46da331df6364c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Tue Oct 16 23:31:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:05 2007 -0700"
      },
      "message": "r/o bind mounts: rearrange may_open() to be r/o friendly\n\nmay_open() calls vfs_permission() before it does checks for IS_RDONLY(inode).\nIt checks _again_ inside of vfs_permission().\n\nThe check inside of vfs_permission() is going away eventually.  With the\nmnt_want/drop_write() functions, all of the r/o checks (except for this one)\nare consistently done before calling permission().  Because of this, I\u0027d like\nto use permission() to hold a debugging check to make sure that the\nmnt_want/drop_write() calls are actually being made.\n\nSo, to do this:\n1. remove the IS_RDONLY() check from permission()\n2. enforce that you must mnt_want_write() before\n   even calling permission()\n3. actually add the debugging check to permission()\n\nWe need to rearrange may_open() to do r/o checks before calling permission().\nHere\u0027s the patch.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22590e41cb569add194829c08dc0ceea74b38a65",
      "tree": "0db73fe0e78bcde816dcf289e0aa5323abf73833",
      "parents": [
        "043f46f6151df2c518988b5e41376e42491257b5"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Oct 16 23:27:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:52 2007 -0700"
      },
      "message": "fix execute checking in permission()\n\npermission() checks that MAY_EXEC is only allowed on regular files if at least\none execute bit is set in the file mode.\n\ngeneric_permission() already ensures this, so the extra check in permission()\nis superfluous.\n\nIf the filesystem defines it\u0027s own -\u003epermission() the check may still be\nneeded.  In this case move it after -\u003epermission().  This is needed because\nfilesystems such as FUSE may need to refresh the inode attributes before\nchecking permissions.\n\nThis check should be moved inside -\u003epermission(), but that\u0027s another story.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\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: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40b2ea839753d32e5685d307c23d92c82cae3b70",
      "tree": "453c4f686a3a55bacf5e5e8b8e48daa3fa8f52bc",
      "parents": [
        "de4f800b498e04aceadb96107cdee2bbe1f9464a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 23:26:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:48 2007 -0700"
      },
      "message": "Clean up duplicate includes in fs/\n\nThis patch cleans up duplicate includes in\n\tfs/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eead19115329c5615ba03cbaf1c3fe24c14858a3",
      "tree": "4b8aeeea5060fca595f2c5e8290d742cdb14a08f",
      "parents": [
        "ebb3e820b83e426ee331bae6d8fb0e54f472a25d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Oct 16 23:25:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:44 2007 -0700"
      },
      "message": "partially fix up the lookup_one_noperm mess\n\nTry to fix the mess created by sysfs braindamage.\n\n - refactor code internal to fs/namei.c a little to avoid too much\n   duplication:\n\to __lookup_hash_kern is renamed back to __lookup_hash\n\to the old __lookup_hash goes away, permission checks moves to\n\t  the two callers\n\to useless inline qualifiers on above functions go away\n - lookup_one_len_kern loses it\u0027s last argument and is renamed to\n   lookup_one_noperm to make it\u0027s useage a little more clear\n - added kerneldoc comments to describe lookup_one_len aswell as\n   lookup_one_noperm and make it very clear that no one should use\n   the latter ever.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afddba49d18f346e5cc2938b6ed7c512db18ca68",
      "tree": "4726e3d3b0e9e8e5b5d3b2b0cccb36446bbdf3ca",
      "parents": [
        "637aff46f94a754207c80c8c64bf1b74f24b967d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: introduce write_begin, write_end, and perform_write aops\n\nThese are intended to replace prepare_write and commit_write with more\nflexible alternatives that are also able to avoid the buffered write\ndeadlock problems efficiently (which prepare_write is unable to do).\n\n[mark.fasheh@oracle.com: API design contributions, code review and fixes]\n[akpm@linux-foundation.org: various fixes]\n[dmonakhov@sw.ru: new aop block_write_begin fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f79c20f52532d38fd0aee7ef64e138cc1613c484",
      "tree": "889b946d5eff0c66293d3b5d56062bf0d85f73bf",
      "parents": [
        "c4a7808fc3d7a346d5d12e0d69d76d66d821488b"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "fs: remove path_walk export\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4a7808fc3d7a346d5d12e0d69d76d66d821488b",
      "tree": "e301f6e97ebc3800baafc53161631ec3e01d83c2",
      "parents": [
        "16b6287a5286e872abece4f42a6eb5899157a836"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "fs: mark link_path_walk static\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16f1820028d660d9da9c03b2ae7e98253c11795b",
      "tree": "08939a5d7fcc02c76739a9dce38052da598d74d5",
      "parents": [
        "b6a2fea39318e43fee84fa7b0b90d68bed92d2ba"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "fs: introduce vfs_path_lookup\n\nStackable file systems, among others, frequently need to lookup paths or\npath components starting from an arbitrary point in the namespace\n(identified by a dentry and a vfsmount).  Currently, such file systems use\nlookup_one_len, which is frowned upon [1] as it does not pass the lookup\nintent along; not passing a lookup intent, for example, can trigger BUG_ON\u0027s\nwhen stacking on top of NFSv4.\n\nThe first patch introduces a new lookup function to allow lookup starting\nfrom an arbitrary point in the namespace.  This approach has been suggested\nby Christoph Hellwig [2].\n\nThe second patch changes sunrpc to use vfs_path_lookup.\n\nThe third patch changes nfsctl.c to use vfs_path_lookup.\n\nThe fourth patch marks link_path_walk static.\n\nThe fifth, and last patch, unexports path_walk because it is no longer\nunnecessary to call it directly, and using the new vfs_path_lookup is\ncleaner.\n\nFor example, the following snippet of code, looks up \"some/path/component\"\nin a directory pointed to by parent_{dentry,vfsmnt}:\n\nerr \u003d vfs_path_lookup(parent_dentry, parent_vfsmnt,\n\t\t      \"some/path/component\", 0, \u0026nd);\nif (!err) {\n\t/* exits */\n\n\t...\n\n\t/* once done, release the references */\n\tpath_release(\u0026nd);\n} else if (err \u003d\u003d -ENOENT) {\n\t/* doesn\u0027t exist */\n} else {\n\t/* other error */\n}\n\nVFS functions such as lookup_create can be used on the nameidata structure\nto pass the create intent to the file system.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bd858ab1c451725c07a805dcb315215dc85b86e",
      "tree": "5d49c4300e350d64fd81eb3230b81f754117e0c1",
      "parents": [
        "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 17 15:00:08 2007 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 12:00:03 2007 -0700"
      },
      "message": "Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check\n\nIntroduce is_owner_or_cap() macro in fs.h, and convert over relevant\nusers to it. This is done because we want to avoid bugs in the future\nwhere we check for only effective fsuid of the current task against a\nfile\u0027s owning uid, without simultaneously checking for CAP_FOWNER as\nwell, thus violating its semantics.\n[ XFS uses special macros and structures, and in general looked ...\nuntouchable, so we leave it alone -- but it has been looked over. ]\n\nThe (current-\u003efsuid !\u003d inode-\u003ei_uid) check in generic_permission() and\nexec_permission_lite() is left alone, because those operations are\ncovered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH. Similarly operations\nfalling under the purview of CAP_CHOWN and CAP_LEASE are also left alone.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fc03b9beb2314f3adb9e72b7935a80c577954d1",
      "tree": "81e04534c582923fcdc8212497d1487ddae412a8",
      "parents": [
        "510f4006e7a82b37b53c17bbe64ec20f3a59302b"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Tue Feb 13 14:15:01 2007 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 11 05:38:26 2007 -0400"
      },
      "message": "[PATCH] complete message queue auditing\n\nHandle the edge cases for POSIX message queue auditing. Collect inode\ninfo when opening an existing mq, and for send/receive operations. Remove\naudit_inode_update() as it has really evolved into the equivalent of\naudit_inode().\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2dfdd266b9a2f2d93a3fdbee89969f6ea9ec5377",
      "tree": "a3dd643401a5fa63f60759c89fd00a4ef175cda5",
      "parents": [
        "62ce39c531860aee6c12128c629b0a82f656a306"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Wed May 09 02:33:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "fs: use path_walk in do_path_lookup\n\nSince path_walk sets the total_link_count to 0 and calls link_path_walk, we\ncan just call path_walk directly.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62ce39c531860aee6c12128c629b0a82f656a306",
      "tree": "cfa57bde671ac341f46b8844a159b4b7b06a247e",
      "parents": [
        "35c35d1afa8f9afe01d922ff9668a14c5d879b02"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Wed May 09 02:33:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "fs: fix indentation in do_path_lookup\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5843205b55d0ec9564289d4b41bab093ae15f51a",
      "tree": "c8a1425db57354635137b33c5c44e33441bbbc53",
      "parents": [
        "acb0c854fa9483fa85e377b9f342352ea814a580"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:25:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "namei.c: remove utterly outdated comment\n\nWe don\u0027t have a routine called namei() anymore since at least 2.3.x, and\nthe comment is just totally out of sync with the current lookup logic.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2",
      "tree": "8bbfe5072279227cc50a941ad4813908082426a1",
      "parents": [
        "714b8171af9c930a59a0da8f6fe50518e70ab035"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun May 06 14:49:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "mm: make read_cache_page synchronous\n\nEnsure pages are uptodate after returning from read_cache_page, which allows\nus to cut out most of the filesystem-internal PageUptodate calls.\n\nI didn\u0027t have a great look down the call chains, but this appears to fixes 7\npossible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in\necryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in\nblock2mtd.  All depending on whether the filler is async and/or can return\nwith a !uptodate page.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "057f6c019fff9ee290641d50647359bb8898918e",
      "tree": "c051a915e2038825dd2f50f24fc28abb3c4a5e79",
      "parents": [
        "523ded71de0c5e66973335bf99a80edfda9f401b"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Apr 26 00:12:05 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:33 2007 -0700"
      },
      "message": "security: prevent permission checking of file removal via sysfs_remove_group()\n\nPrevent permission checking from being performed when the kernel wants to\nunconditionally remove a sysfs group, by introducing an kernel-only variant\nof lookup_one_len(), lookup_one_len_kern().\n\nAdditionally, as sysfs_remove_group() does not check the return value of\nthe lookup before using it, a BUG_ON has been added to pinpoint the cause\nof any problems potentially caused by this (and as a form of annotation).\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Nagendra Singh Tomar \u003cnagendra_tomar@adaptec.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "beb497ab48b1639282129f7bc18fef311fffff3d",
      "tree": "bd7852757e908eb3702eeb214556c2538abf4ded",
      "parents": [
        "fb4d64e78ceab77cf20f7796f74aa10ebe862032"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Fri Feb 16 01:27:18 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:56 2007 -0800"
      },
      "message": "[PATCH] __page_symlink retry loop error code fix\n\nIf prepare_write or commit_write return AOP_TRUNCATED_PAGE we jump to\n\"retry\" label and than if find_or_create_page() failed function return\nincorrect error code.\n\nSigned-off-by: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122",
      "tree": "4eb22a9f6c38e9f4cc2a5100cd6659b0af08b7ae",
      "parents": [
        "754661f143e70d66eae6c48532ca245aa05dec0e"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 2\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "346f20ff6020ffa11d40b789069079c56a444ae6",
      "tree": "4828582ab5d8fe865de5a6b1524670963de9acaf",
      "parents": [
        "c922d5f7f5457da9e9b5a26dd53e2dcef6ca2f7d"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:40 2006 -0800"
      },
      "message": "[PATCH] struct path: move struct path from fs/namei.c into include/linux\n\nMoved struct path from fs/namei.c to include/linux/namei.h.  This allows many\nplaces in the VFS, as well as any stackable filesystem to easily keep track of\ndentry-vfsmount pairs.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc168427e6250a5a24c59f34afed6538092dab42",
      "tree": "647cfff74c45ec42027042666d5212b1c724a350",
      "parents": [
        "5ac29e62be2a581ec77953eca64d85ddeef488f0"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Wed Dec 06 20:37:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:35 2006 -0800"
      },
      "message": "[PATCH] VFS: extra check inside dentry_unhash()\n\nd_count check after dget() is always true.\n\nSigned-off-by:\tVasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "317a40ac2237732aba531eee2c7b5e39dd40e959",
      "tree": "8171e98eaa2bbceeacca4f4f43da1bb331ed17de",
      "parents": [
        "ed07536ed6731775219c1df7fa26a7588753e693"
      ],
      "author": {
        "name": "Stas Sergeev",
        "email": "stsp@aknet.ru",
        "time": "Wed Dec 06 20:35:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:30 2006 -0800"
      },
      "message": "[PATCH] honour MNT_NOEXEC for access()\n\nMake access(X_OK) take the \"noexec\" mount option into account.\n\nSigned-off-by: Stas Sergeev \u003cstsp@aknet.ru\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aab520e2f6c80160cabd187a8d0292d1cec8ff68",
      "tree": "e066da750f4aba3e5b472a2fafd5d267876420e2",
      "parents": [
        "6902d925d568cd5bfda8a1a328bf08d26d1bab46"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mount prepwork: move open_namei()\u0027s vfs_create()\n\nThe code around vfs_create() in open_namei() is getting a bit too complex.\nRight now, there is at least the reference count on the dentry, and the\ni_mutex to worry about.  Soon, we\u0027ll also have mnt_writecount.\n\nSo, break the vfs_create() call out of open_namei(), and into a helper\nfunction.  This duplicates the call to may_open(), but that isn\u0027t such a bad\nthing since the arguments (acc_mode and flag) were being heavily massaged\nanyway.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6902d925d568cd5bfda8a1a328bf08d26d1bab46",
      "tree": "02f3cc489d0e47fb688587222d1793bd9298679b",
      "parents": [
        "db5fed26b2e0beed939b773dd5896077a1794d65"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mounts: prepare for write access checks: collapse if()\n\nWe\u0027re shortly going to be adding a bunch more permission checks in these\nfunctions.  That requires adding either a bunch of new if() conditions, or\nsome gotos.  This patch collapses existing if()s and uses gotos instead to\nprepare for the upcoming changes.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e518ddb7ba44a3d852c0e41961365844c76eb2bf",
      "tree": "82bda48f6dac153015ef02fe6f8ccbbfa15151d0",
      "parents": [
        "c16a02d6f5fcfe05dc6fd40aa80a8e1d055300db"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@rhlx01.fht-esslingen.de",
        "time": "Fri Sep 29 02:01:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:22 2006 -0700"
      },
      "message": "[PATCH] fs/namei.c: replace multiple current-\u003efs by shortcut variable\n\nReplace current-\u003efs by fs helper variable to reduce some indirection\noverhead and (at least at the moment, before the current_thread_info() %gs\nPDA improvement is available) get rid of more costly current references.\nReduces fs/namei.o from 37786 to 37082 Bytes (704 Bytes saved).\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bcdc5e019d9f525a9f181a7de642d3a9c27c7610",
      "tree": "c2a93b8456095b260bee2be6e169c116f4b0be84",
      "parents": [
        "1183dc943cae8b0fddca0b310c26052b2355e04b"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Sep 27 01:50:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] autofs4 needs to force fail return revalidate\n\nFor a long time now I have had a problem with not being able to return a\nlookup failure on an existsing directory.  In autofs this corresponds to a\nmount failure on a autofs managed mount entry that is browsable (and so the\nmount point directory exists).\n\nWhile this problem has been present for a long time I\u0027ve avoided resolving\nit because it was not very visible.  But now that autofs v5 has \"mount and\nexpire on demand\" of nested multiple mounts, such as is found when mounting\nan export list from a server, solving the problem cannot be avoided any\nlonger.\n\nI\u0027ve tried very hard to find a way to do this entirely within the autofs4\nmodule but have not been able to find a satisfactory way to achieve it.\n\nSo, I need to propose a change to the VFS.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "349457ccf2592c14bdf13b6706170ae2e94931b1",
      "tree": "3670945b5a62617d38cf1f317487387032d3da4d",
      "parents": [
        "1390334b4c697b7588d5661fcf6acaeec409cf4c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:22:21 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "[PATCH] Allow file systems to manually d_move() inside of -\u003erename()\n\nSome file systems want to manually d_move() the dentries involved in a\nrename.  We can do this by making use of the FS_ODD_RENAME flag if we just\nhave nfs_rename() unconditionally do the d_move().  While there, we rename\nthe flag to be more descriptive.\n\nOCFS2 uses this to protect that part of the rename operation with a cluster\nlock.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "a343bb7750e6a098909c34f5c5dfddbc4fa40053",
      "tree": "f4125368b85270b4fd619ae317ce0796605c579e",
      "parents": [
        "16b4289c7460ba9c04af40c574949dcca9029658"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 22 20:06:03 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 15:54:58 2006 -0400"
      },
      "message": "VFS: Fix access(\"file\", X_OK) in the presence of ACLs\n\nCurrently, the access() call will return incorrect information on NFS if\nthere exists an ACL that grants execute access to the user on a regular\nfile. The reason the information is incorrect is that the VFS overrides\nthis execute access in open_exec() by checking (inode-\u003ei_mode \u0026 0111).\n\nThis patch propagates the VFS execute bit check back into the generic\npermission() call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from 64cbae98848c4c99851cb0a405f0b4982cd76c1e commit)\n"
    },
    {
      "commit": "a634904a7de0d3a0bc606f608007a34e8c05bfee",
      "tree": "936d436adb118f7e7fbadd6eabf5296693861df0",
      "parents": [
        "ddeff520f02b92128132c282c350fa72afffb84a"
      ],
      "author": {
        "name": "ASANO Masahiro",
        "email": "masano@tnes.nec.co.jp",
        "time": "Tue Aug 22 20:06:02 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 15:49:14 2006 -0400"
      },
      "message": "VFS: add lookup hint for network file systems\n\nI\u0027m trying to speeding up mkdir(2) for network file systems.  A typical\nmkdir(2) calls two inode_operations: lookup and mkdir.  The lookup\noperation would fail with ENOENT in common case.  I think it is unnecessary\nbecause the subsequent mkdir operation can check it.  In case of creat(2),\nlookup operation is called with the LOOKUP_CREATE flag, so individual\nfilesystem can omit real lookup.  e.g.  nfs_lookup().\n\nHere is a sample patch which uses LOOKUP_CREATE and O_EXCL on mkdir,\nsymlink and mknod.  This uses the gadget for creat(2).\n\nAnd here is the result of a benchmark on NFSv3.\n  mkdir(2) 10,000 times:\n    original  50.5 sec\n    patched   29.0 sec\n\nSigned-off-by: ASANO Masahiro \u003cmasano@tnes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from fab7bf44449b29f9d5572a5dd8adcf7c91d5bf0f commit)\n"
    },
    {
      "commit": "5ac3a9c26c1cc4861d9cdd8b293fecbfcdc81afe",
      "tree": "6ca960fade3253ac358f3614e6a07361fc90d09e",
      "parents": [
        "d51374adf5f2f88155a072d3d801104e3c0c3d7f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 16 06:38:45 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 03 10:59:42 2006 -0400"
      },
      "message": "[PATCH] don\u0027t bother with aux entires for dummy context\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73d3ec5abad3f1730ac8530899d2c14d92f3ad63",
      "tree": "c2829a1e36ca155eecc7d4b8648fe9755247bec5",
      "parents": [
        "3e2efce067cec0099f99ae59f28feda99b02b498"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jul 13 13:16:39 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 03 10:50:30 2006 -0400"
      },
      "message": "[PATCH] fix missed create event for directory audit\n\nWhen an object is created via a symlink into an audited directory, audit misses\nthe event due to not having collected the inode data for the directory.  Modify\n__audit_inode_child() to copy the parent inode data if a parent wasn\u0027t found in\naudit_names[].\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3e2efce067cec0099f99ae59f28feda99b02b498",
      "tree": "94577cb6cb7f223319bb89a805b2d6945d42632e",
      "parents": [
        "46f5960fdbf359f0c75989854bbaebc1de7a1eb4"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jul 13 13:16:02 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 03 10:50:21 2006 -0400"
      },
      "message": "[PATCH] fix faulty inode data collection for open() with O_CREAT\n\nWhen the specified path is an existing file or when it is a symlink, audit\ncollects the wrong inode number, which causes it to miss the open() event.\nAdding a second hook to the open() path fixes this.\n\nAlso add audit_copy_inode() to consolidate some code.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "de45921535bfc3b1f63b426c2a9739635f864283",
      "tree": "5a20bb0ce44bef589b6699e645da272e1a54bbea",
      "parents": [
        "9ee8ab9fbf21e6b87ad227cd46c0a4be41ab749b"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Jul 14 00:23:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:50 2006 -0700"
      },
      "message": "[PATCH] struct file leakage\n\n2.6.16 leaks like hell. While testing, I found massive leakage\n(reproduced in openvz) in:\n\n*filp\n*size-4096\n\nAnd 1 object leaks in\n*size-32\n*size-64\n*size-128\n\nIt is the fix for the first one.  filp leaks in the bowels of namei.c.\n\nSeems, size-4096 is file table leaking in expand_fdtables.\n\nI have no idea what are the rest and why they show only accompanying\nanother leaks.  Some debugging structs?\n\n[akpm@osdl.org, Trond: remove the IS_ERR() check]\nSigned-off-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2eace23e924bd3f05aedea4fc505eb5508d2d93",
      "tree": "3e78dc1c4be979164a91665f56299e344fb6d6b6",
      "parents": [
        "a90b9c05df3c1e58eaedc28795d0f5abd896c098"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:06 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate i_mutex\n\nTeach special (recursive) locking code to the lock validator.  Has no effect\non non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45c9b11a1d07770cabb48cb0f7960a77650ffc64",
      "tree": "f1928b66fa23a5350cc15b0c448e9acefff66758",
      "parents": [
        "584e1236bbcdfec3f64c751908b8b4fe868c2d20"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Sun Jun 25 05:49:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:22 2006 -0700"
      },
      "message": "[PATCH] Implement AT_SYMLINK_FOLLOW flag for linkat\n\nWhen the linkat() syscall was added the flag parameter was added in the\nlast minute but it wasn\u0027t used so far.  The following patch should change\nthat.  My tests show that this is all that\u0027s needed.\n\nIf OLDNAME is a symlink setting the flag causes linkat to follow the\nsymlink and create a hardlink with the target.  This is actually the\nbehavior POSIX demands for link() as well but Linux wisely does not do\nthis.  With this flag (which will most likely be in the next POSIX\nrevision) the programmer can choose the behavior, defaulting to the safe\nvariant.  As a side effect it is now possible to implement a\nPOSIX-compliant link(2) function for those who are interested.\n\n  touch file\n  ln -s file symlink\n\n  linkat(fd, \"symlink\", fd, \"newlink\", 0)\n    -\u003e newlink is hardlink of symlink\n\n  linkat(fd, \"symlink\", fd, \"newlink\", AT_SYMLINK_FOLLOW)\n    -\u003e newlink is hardlink of file\n\nThe value of AT_SYMLINK_FOLLOW is determined by the definition we already\nuse in glibc.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "090d2b185d8680fc26a2eaf4245d4171dcf4baf1",
      "tree": "67e604e3cd1bad3cfd034bced19a0fbff6a80c30",
      "parents": [
        "c330dda908b5a46469a997eea90b66f2f9f02b34"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:05:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] read_mapping_page for address space\n\nAdd read_mapping_page() which is used for callers that pass\nmapping-\u003ea_ops-\u003ereadpage as the filler for read_cache_page.  This removes\nsome duplication from filesystem code.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c937dcc71021f2dbf78f904f03d962dd9bcc130",
      "tree": "6ab53c1cf1235515307d521cecc4f76afa34e137",
      "parents": [
        "6a2bceec0ea7fdc47aef9a3f2f771c201eaabe5d"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 08 23:19:31 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:28 2006 -0400"
      },
      "message": "[PATCH] log more info for directory entry change events\n\nWhen an audit event involves changes to a directory entry, include\na PATH record for the directory itself.  A few other notable changes:\n\n    - fixed audit_inode_child() hooks in fsnotify_move()\n    - removed unused flags arg from audit_inode()\n    - added audit log routines for logging a portion of a string\n\nHere\u0027s some sample output.\n\nbefore patch:\ntype\u003dSYSCALL msg\u003daudit(1149821605.320:26): arch\u003d40000003 syscall\u003d39 success\u003dyes exit\u003d0 a0\u003dbf8d3c7c a1\u003d1ff a2\u003d804e1b8 a3\u003dbf8d3c7c items\u003d1 ppid\u003d739 pid\u003d800 auid\u003d0 uid\u003d0 gid\u003d0 euid\u003d0 suid\u003d0 fsuid\u003d0 egid\u003d0 sgid\u003d0 fsgid\u003d0 tty\u003dttyS0 comm\u003d\"mkdir\" exe\u003d\"/bin/mkdir\" subj\u003droot:system_r:unconfined_t:s0-s0:c0.c255\ntype\u003dCWD msg\u003daudit(1149821605.320:26):  cwd\u003d\"/root\"\ntype\u003dPATH msg\u003daudit(1149821605.320:26): item\u003d0 name\u003d\"foo\" parent\u003d164068 inode\u003d164010 dev\u003d03:00 mode\u003d040755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003droot:object_r:user_home_t:s0\n\nafter patch:\ntype\u003dSYSCALL msg\u003daudit(1149822032.332:24): arch\u003d40000003 syscall\u003d39 success\u003dyes exit\u003d0 a0\u003dbfdd9c7c a1\u003d1ff a2\u003d804e1b8 a3\u003dbfdd9c7c items\u003d2 ppid\u003d714 pid\u003d777 auid\u003d0 uid\u003d0 gid\u003d0 euid\u003d0 suid\u003d0 fsuid\u003d0 egid\u003d0 sgid\u003d0 fsgid\u003d0 tty\u003dttyS0 comm\u003d\"mkdir\" exe\u003d\"/bin/mkdir\" subj\u003droot:system_r:unconfined_t:s0-s0:c0.c255\ntype\u003dCWD msg\u003daudit(1149822032.332:24):  cwd\u003d\"/root\"\ntype\u003dPATH msg\u003daudit(1149822032.332:24): item\u003d0 name\u003d\"/root\" inode\u003d164068 dev\u003d03:00 mode\u003d040750 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003droot:object_r:user_home_dir_t:s0\ntype\u003dPATH msg\u003daudit(1149822032.332:24): item\u003d1 name\u003d\"foo\" inode\u003d164010 dev\u003d03:00 mode\u003d040755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003droot:object_r:user_home_t:s0\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d09bb627d2470299dfb1af0e6d27fb4aece9196",
      "tree": "ce62b91f11c5df5fbee41aa053b33add79c2c37a",
      "parents": [
        "c7d2d28b9851d0ffc9924b0e36bac806d18ebf25"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 04 02:51:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 05 12:29:16 2006 -0700"
      },
      "message": "[PATCH] fs/namei.c: Call to file_permission() under a spinlock in do_lookup_path()\n\nFrom: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\nWe\u0027re presently running lock_kernel() under fs_lock via nfs\u0027s -\u003epermission\nhandler.  That\u0027s a ranking bug and sometimes a sleep-in-spinlock bug.  This\nproblem was introduced in the openat() patchset.\n\nWe should not need to hold the current-\u003efs-\u003elock for a codepath that doesn\u0027t\nuse current-\u003efs.\n\n[vsu@altlinux.ru: fix error path]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nSigned-off-by: Sergey Vlasov \u003cvsu@altlinux.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a244e1698ae3609cdfe24088e1293593cb7a5278",
      "tree": "81f3e151c9b8118a3a917dd6b0d3c75556dc170b",
      "parents": [
        "0cb3463f04e771869f481e2dd44f66419e850586"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Mar 31 02:32:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:19:01 2006 -0800"
      },
      "message": "[PATCH] fs/namei.c: make lookup_hash() static\n\nAs announced, lookup_hash() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "051d381259eb57d6074d02a6ba6e90e744f1a29f",
      "tree": "35d58c8a900fa7cea03ea05d9d03ee01d24d5f51",
      "parents": [
        "f75ba3ade8a4599d67040a9493d75a864e7b329c"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Mon Mar 27 01:14:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:40 2006 -0800"
      },
      "message": "[PATCH] autofs4: nameidata needs to be up to date for follow_link\n\nIn order to be able to trigger a mount using the follow_link inode method the\nnameidata struct that is passed in needs to have the vfsmount of the autofs\ntrigger not its parent.\n\nDuring a path walk if an autofs trigger is mounted on a dentry, when the\nfollow_link method is called, the nameidata struct contains the vfsmount and\nmountpoint dentry of the parent mount while the dentry that is passed in is\nthe root of the autofs trigger mount.  I believe it is impossible to get the\nvfsmount of the trigger mount, within the follow_link method, when only the\nparent vfsmount and the root dentry of the trigger mount are known.\n\nThis patch updates the nameidata struct on entry to __do_follow_link if it\ndetects that it is out of date.  It moves the path_to_nameidata to above\n__do_follow_link to facilitate calling it from there.  The dput_path is moved\nas well as that seemed sensible.  No changes are made to these two functions.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b9a3917366028cc451a98dd22e3bcd537d4e5c1",
      "tree": "d911058720e0a9aeeaf9f407ccdc6fbf4047f47d",
      "parents": [
        "3661f00e2097676847deb01add1a0918044bd816",
        "71e1c784b24a026a490b3de01541fc5ee14ebc09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:24:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:24:53 2006 -0800"
      },
      "message": "Merge branch \u0027audit.b3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: (22 commits)\n  [PATCH] fix audit_init failure path\n  [PATCH] EXPORT_SYMBOL patch for audit_log, audit_log_start, audit_log_end and audit_format\n  [PATCH] sem2mutex: audit_netlink_sem\n  [PATCH] simplify audit_free() locking\n  [PATCH] Fix audit operators\n  [PATCH] promiscuous mode\n  [PATCH] Add tty to syscall audit records\n  [PATCH] add/remove rule update\n  [PATCH] audit string fields interface + consumer\n  [PATCH] SE Linux audit events\n  [PATCH] Minor cosmetic cleanups to the code moved into auditfilter.c\n  [PATCH] Fix audit record filtering with !CONFIG_AUDITSYSCALL\n  [PATCH] Fix IA64 success/failure indication in syscall auditing.\n  [PATCH] Miscellaneous bug and warning fixes\n  [PATCH] Capture selinux subject/object context information.\n  [PATCH] Exclude messages by message type\n  [PATCH] Collect more inode information during syscall processing.\n  [PATCH] Pass dentry, not just name, in fsnotify creation hooks.\n  [PATCH] Define new range of userspace messages.\n  [PATCH] Filter rule comparators\n  ...\n\nFixed trivial conflict in security/selinux/hooks.c\n"
    },
    {
      "commit": "7e53cac41da9ebb9be774220c1b2615182667c9d",
      "tree": "e7da5e8189ed1949d091d28e132736542352b739",
      "parents": [
        "341546f5ad6fce584531f744853a5807a140f2a9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Mar 25 03:07:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:58 2006 -0800"
      },
      "message": "[PATCH] Honour AOP_TRUNCATE_PAGE returns in page_symlink\n\nAs prepare_write, commit_write and readpage are allowed to return\nAOP_TRUNCATE_PAGE, page_symlink should respond to them.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4af4c52f34606bdaab6930a845550c6fb02078a4",
      "tree": "a61f9a164fea1819c3bfb970dbffa5d778935965",
      "parents": [
        "8d8c85117fbcbaea7718870ad4b1ddd12940d9b0"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Sat Mar 25 03:06:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:51 2006 -0800"
      },
      "message": "[PATCH] Missed error checking for intent\u0027s filp in open_namei().\n\nIt seems there is error check missing in open_namei for errors returned\nthrough intent.open.file (from lookup_instantiate_filp).\n\nIf there is plain open performed, then such a check done inside\n__path_lookup_intent_open called from path_lookup_open(), but when the open\nis performed with O_CREAT flag set, then __path_lookup_intent_open is only\ncalled with LOOKUP_PARENT set where no file opening can occur yet.\n\nLater on lookup_hash is called where exact opening might take place and\nintent.open.file may be filled.  If it is filled with error value of some\nsort, then we get kernel attempting to dereference this error value as\naddress (and corresponding oops) in nameidata_to_filp() called from\nfilp_open().\n\nWhile this is relatively simple to workaround in -\u003elookup() method by just\nchecking lookup_instantiate_filp() return value and returning error as\nneeded, this is not so easy in -\u003ed_revalidate(), where we can only return\n\"yes, dentry is valid\" or \"no, dentry is invalid, perform full lookup\nagain\", and just returning 0 on error would cause extra lookup (with\npotential extra costly RPCs).\n\nSo in short, I believe that there should be no difference in error handling\nfor opening a file and creating a file in open_namei() and propose this\nsimple patch as a solution.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a11f3a0574a5734db3e5de38922430d005d35118",
      "tree": "2f332f623463c5909dc37d20cbf44421854f775a",
      "parents": [
        "144efe3e3e5ad57af549bf800fa4560d7c74e9fe"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: vfs_rename_mutex\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73241ccca0f7786933f1d31b3d86f2456549953a",
      "tree": "daa7efabfb7aa2f511a467606786820949e8763e",
      "parents": [
        "f38aa94224c5517a40ba56d453779f70d3229803"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Nov 03 16:00:25 2005 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 20 14:08:53 2006 -0500"
      },
      "message": "[PATCH] Collect more inode information during syscall processing.\n\nThis patch augments the collection of inode info during syscall\nprocessing. It represents part of the functionality that was provided\nby the auditfs patch included in RHEL4.\n\nSpecifically, it:\n\n- Collects information for target inodes created or removed during\n  syscalls.  Previous code only collects information for the target\n  inode\u0027s parent.\n\n- Adds the audit_inode() hook to syscalls that operate on a file\n  descriptor (e.g. fchown), enabling audit to do inode filtering for\n  these calls.\n\n- Modifies filtering code to check audit context for either an inode #\n  or a parent inode # matching a given rule.\n\n- Modifies logging to provide inode # for both parent and child.\n\n- Protect debug info from NULL audit_names.name.\n\n[AV: folded a later typo fix from the same author]\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f38aa94224c5517a40ba56d453779f70d3229803",
      "tree": "30d0f7390cb2f1cf33a55080cb6c0676727af1fa",
      "parents": [
        "90d526c074ae5db484388da56c399acf892b6c17"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Nov 03 15:57:06 2005 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 20 14:08:53 2006 -0500"
      },
      "message": "[PATCH] Pass dentry, not just name, in fsnotify creation hooks.\n\nThe audit hooks (to be added shortly) will want to see dentry-\u003ed_inode\ntoo, not just the name.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "0adb25d2e71ab047423d6fc63d5d184590d0a66f",
      "tree": "0fd00ea22c07c88c3f24085cbf89f0a272f56697",
      "parents": [
        "8bd0ee93fef9733c72fef1817330b3ee2b71cf9d"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Sat Mar 11 03:27:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 11 09:19:34 2006 -0800"
      },
      "message": "[PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside\n\nThis patch fixes illegal __GFP_FS allocation inside ext3 transaction in\next3_symlink().  Such allocation may re-enter ext3 code from\ntry_to_free_pages.  But JBD/ext3 code keeps a pointer to current journal\nhandle in task_struct and, hence, is not reentrable.\n\nThis bug led to \"Assertion failure in journal_dirty_metadata()\" messages.\n\nhttp://bugzilla.openvz.org/show_bug.cgi?id\u003d115\n\nSigned-off-by: Andrey Savochkin \u003csaw@saw.sw.com.sg\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c04030e16dbea2f7581f82cc6688695927f6ac5b",
      "tree": "7ff5cd2494a133f1bf571f7af02e656bb01d124f",
      "parents": [
        "ee713059d4922e4ee17700496d9eb3b95b1ab836"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Fri Feb 24 13:04:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 24 14:31:39 2006 -0800"
      },
      "message": "[PATCH] flags parameter for linkat\n\nI\u0027m currently at the POSIX meeting and one thing covered was the\nincompatibility of Linux\u0027s link() with the POSIX definition.  The name.\nLinux does not follow symlinks, POSIX requires it does.\n\nEven if somebody thinks this is a good default behavior we cannot change this\nbecause it would break the ABI.  But the fact remains that some application\nmight want this behavior.\n\nWe have one chance to help implementing this without breaking the behavior.\n For this we could use the new linkat interface which would need a new\nflags parameter.  If the new parameter is AT_SYMLINK_FOLLOW the new\nbehavior could be invoked.\n\nI do not want to introduce such a patch now.  But we could add the\nparameter now, just don\u0027t use it.  The patch below would do this.  Can we\nget this late patch applied before the release more or less fixes the\nsyscall API?\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3bc8414b079ec372485c99ed1f33c6c42ca9d756",
      "tree": "bdb939f8ef5ad746ac61948c8476683c9e83334f",
      "parents": [
        "c00a76aea339b427b47ddc28de06dee0a652e801"
      ],
      "author": {
        "name": "Suzuki",
        "email": "suzuki@In.ibm.com",
        "time": "Tue Feb 07 12:58:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:32 2006 -0800"
      },
      "message": "[PATCH] Fix do_path_lookup() to add the check for error in link_path_walk()\n\nFix do_path_lookup() to avoid accessing invalid dentry or inode when the\nlink_path_walk() has failed.  This should fix Bugme #5897.\n\nSigned-off-by: Suzuki K P \u003csuzuki@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "170aa3d02614ae621d54af10555e2f48977ae8de",
      "tree": "c1a93a5c95ccc2225639a7c878f6c16b7c317924",
      "parents": [
        "f55eab822b93864ef4eef3bd7eadac2a727c914b"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Sat Feb 04 23:28:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] namei.c: unlock missing in error case\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f55eab822b93864ef4eef3bd7eadac2a727c914b",
      "tree": "ab5103610ecc7699a7307c157c517f2ad790e3a7",
      "parents": [
        "4484ebf12bdb0ebcdc6e8951243cbab3d7f6f4c1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 04 23:28:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] VFS: Ensure LOOKUP_CONTINUE flag is preserved by link_path_walk()\n\nWhen walking a path, the LOOKUP_CONTINUE flag is used by some filesystems\n(for instance NFS) in order to determine whether or not it is looking up\nthe last component of the path.  It this is the case, it may have to look\nat the intent information in order to perform various tasks such as atomic\nopen.\n\nA problem currently occurs when link_path_walk() hits a symlink.  In this\ncase LOOKUP_CONTINUE may be cleared prematurely when we hit the end of the\npath passed by __vfs_follow_link() (i.e.  the end of the symlink path)\nrather than when we hit the end of the path passed by the user.\n\nThe solution is to have link_path_walk() clear LOOKUP_CONTINUE if and only\nif that flag was unset when we entered the function.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7045f37b17ffa6e85435ca980122b46a74caa7e4",
      "tree": "bdf7544b9d6412199c4dec1b4897822c9b6daeab",
      "parents": [
        "99acf0442111cc452ac1b93868dde8f6ff37a989"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Wed Feb 01 03:06:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:27 2006 -0800"
      },
      "message": "[PATCH] DocBook: fix some kernel-doc comments in fs and block\n\nUpdate some parameter descriptions to actually match the code.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5590ff0d5528b60153c0b4e7b771472b5a95e297",
      "tree": "5fdccf2354269702f71beb8e0a2942e4167fd992",
      "parents": [
        "e2f99018eb7b29954747a2dd78e9fc0c36a60f0f"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jan 18 17:43:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] vfs: *at functions: core\n\nHere is a series of patches which introduce in total 13 new system calls\nwhich take a file descriptor/filename pair instead of a single file\nname.  These functions, openat etc, have been discussed on numerous\noccasions.  They are needed to implement race-free filesystem traversal,\nthey are necessary to implement a virtual per-thread current working\ndirectory (think multi-threaded backup software), etc.\n\nWe have in glibc today implementations of the interfaces which use the\n/proc/self/fd magic.  But this code is rather expensive.  Here are some\nresults (similar to what Jim Meyering posted before).\n\nThe test creates a deep directory hierarchy on a tmpfs filesystem.  Then\nrm -fr is used to remove all directories.  Without syscall support I get\nthis:\n\nreal    0m31.921s\nuser    0m0.688s\nsys     0m31.234s\n\nWith syscall support the results are much better:\n\nreal    0m20.699s\nuser    0m0.536s\nsys     0m20.149s\n\nThe interfaces are for obvious reasons currently not much used.  But they\u0027ll\nbe used.  coreutils (and Jeff\u0027s posixutils) are already using them.\nFurthermore, code like ftw/fts in libc (maybe even glob) will also start using\nthem.  I expect a patch to make follow soon.  Every program which is walking\nthe filesystem tree will benefit.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f16623569e2ec055b489462315f5296f153d119b",
      "tree": "daef533c4ba906c0618795c0f4b8584db33268ef",
      "parents": [
        "652050aec936fdd70ed9cbce1cd1ef30a7c9d117"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:21:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:15 2006 -0800"
      },
      "message": "[PATCH] Mark some key VFS functions as __always_inline\n\nMark a few VFS functions as mandatory inline (based on Al Viro\u0027s request);\nthese must be inline due to stack usage issues during a recursive loop that\nhappens during the recursive symlink resolution (symlink to a symlink to a\nsymlink ..)\n\nThis patch at this point does not change behavior and is for documentation\npurposes only (but this changes later in the series)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16f7e0fe2ecc30f30652e8185e1772cdebe39109",
      "tree": "e668703267c7b02f1af3cc1581bb4366a5370fdd",
      "parents": [
        "c59ede7b78db329949d9cdcd7064e22d357560ef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (fs/)\n\nfs: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4a30131e7dbb17e5fec6958bfac9da9aff1fa29b",
      "tree": "2ff6139b393a9a413e2ea4db4dd2d15eec2201f8",
      "parents": [
        "788540141f4549637e89aadca6e25cf25eb53383"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jan 08 01:02:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:52 2006 -0800"
      },
      "message": "[PATCH] Fix some problems with truncate and mtime semantics.\n\nSUS requires that when truncating a file to the size that it currently\nis:\n  truncate and ftruncate should NOT modify ctime or mtime\n  O_TRUNC SHOULD modify ctime and mtime.\n\nCurrently mtime and ctime are always modified on most local\nfilesystems (side effect of -\u003etruncate) or never modified (on NFS).\n\nWith this patch:\n  ATTR_CTIME|ATTR_MTIME are sent with ATTR_SIZE precisely when\n    an update of these times is required whether size changes or not\n    (via a new argument to do_truncate).  This allows NFS to do\n    the right thing for O_TRUNC.\n  inode_setattr nolonger forces ATTR_MTIME|ATTR_CTIME when the ATTR_SIZE\n    sets the size to it\u0027s current value.  This allows local filesystems\n    to do the right thing for f?truncate.\n\nAlso, the logic in inode_setattr is changed a bit so there are two return\npoints.  One returns the error from vmtruncate if it failed, the other\nreturns 0 (there can be no other failure).\n\nFinally, if vmtruncate succeeds, and ATTR_SIZE is the only change\nrequested, we now fall-through and mark_inode_dirty.  If a filesystem did\nnot have a -\u003etruncate function, then vmtruncate will have changed i_size,\nwithout marking the inode as \u0027dirty\u0027, and I think this is wrong.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "0ce6e62bd6591777bd92873e2db93fdbc5228122"
}
