)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "defaa47c11d4e7a1de0d926bc659fd8a03df2d27",
      "old_mode": 33188,
      "old_path": "fs/namei.c",
      "new_id": "3bdb29615a9d7e2655601c7151b4496c80b1a74b",
      "new_mode": 33188,
      "new_path": "fs/namei.c"
    },
    {
      "type": "modify",
      "old_id": "b7dd24917f0d5cccea5661dfefa8796bea944164",
      "old_mode": 33188,
      "old_path": "include/linux/namei.h",
      "new_id": "2e21af0989d9dc603484fd75d622787696fe2342",
      "new_mode": 33188,
      "new_path": "include/linux/namei.h"
    }
  ]
}
