)]}'
{
  "log": [
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "9b6e31021122babe3b3a67b102479f740928b5eb",
      "tree": "aca5a8aa7af09e4aa4c30de4e4479164a44de273",
      "parents": [
        "9850c056559f3633a32d810aaf00ced39437b364"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 13 22:10:57 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:42 2010 -0500"
      },
      "message": "Fix configfs leak\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3c48f23adada870db612a0dd3488605c4af5c0a5",
      "tree": "9686ef8f8f02ef66b4de37043ff1b8487afc4dde",
      "parents": [
        "a939b96cccdb65df80a52447ec8e4a6d79c56dbb"
      ],
      "author": {
        "name": "Subrata Modak",
        "email": "subrata@linux.vnet.ibm.com",
        "time": "Sun Apr 19 01:10:03 2009 +0530"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 21 12:59:21 2009 -0700"
      },
      "message": "configfs: Fix Trivial Warning in fs/configfs/symlink.c\n\nI observed the following build warning with fs/configfs/symlink.c:\n\nfs/configfs/symlink.c: In function \u0027configfs_symlink\u0027:\nfs/configfs/symlink.c:138: warning: \u0027target_item\u0027 may be used uninitialized in this function\n\nHere is a small fix for this.\n\nCc: Patrick Mochel \u003cmochel@osdl.org\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Sachin P Sant \u003csachinp@linux.vnet.ibm.com\u003e\nSigned-Off-By: Subrata Modak \u003csubrata@linux.vnet.ibm.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "421748ecde8e69a6364e5ae66eb3bf87e1f995c0",
      "tree": "50ef878f8c46b1ec729625ed678d04aaeaaee6dd",
      "parents": [
        "a63bb99660d82dfe7c51588e1f9aadefb756ba51"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Aug 02 01:04:36 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:12:52 2008 -0400"
      },
      "message": "[PATCH] assorted path_lookup() -\u003e kern_path() conversions\n\nmore nameidata eviction\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a109f2a4155f168047aa2f5b3a170e279bef89a",
      "tree": "8e9a080046fb1abdba10e288b89e92cc4c39f6ea",
      "parents": [
        "9a73d78cda750f12e25eb811878f2d9dbab1bc6e"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "louis.rilling@kerlabs.com",
        "time": "Fri Jul 04 16:56:05 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jul 31 16:21:13 2008 -0700"
      },
      "message": "[PATCH] configfs: Prevent userspace from creating new entries under attaching directories\n\nprocess 1: \t\t\t\t\tprocess 2:\nconfigfs_mkdir(\"A\")\n  attach_group(\"A\")\n    attach_item(\"A\")\n      d_instantiate(\"A\")\n    populate_groups(\"A\")\n      mutex_lock(\"A\")\n      attach_group(\"A/B\")\n        attach_item(\"A\")\n          d_instantiate(\"A/B\")\n\t\t\t\t\t\tmkdir(\"A/B/C\")\n\t\t\t\t\t\t  do_path_lookup(\"A/B/C\", LOOKUP_PARENT)\n\t\t\t\t\t\t    ok\n\t\t\t\t\t\t  lookup_create(\"A/B/C\")\n\t\t\t\t\t\t    mutex_lock(\"A/B\")\n\t\t\t\t\t\t    ok\n\t\t\t\t\t\t  configfs_mkdir(\"A/B/C\")\n\t\t\t\t\t\t    ok\n      attach_group(\"A/C\")\n        attach_item(\"A/C\")\n          d_instantiate(\"A/C\")\n        populate_groups(\"A/C\")\n          mutex_lock(\"A/C\")\n          attach_group(\"A/C/D\")\n            attach_item(\"A/C/D\")\n              failure\n          mutex_unlock(\"A/C\")\n          detach_groups(\"A/C\")\n            nothing to do\n\t\t\t\t\t\tmkdir(\"A/C/E\")\n\t\t\t\t\t\t  do_path_lookup(\"A/C/E\", LOOKUP_PARENT)\n\t\t\t\t\t\t    ok\n\t\t\t\t\t\t  lookup_create(\"A/C/E\")\n\t\t\t\t\t\t    mutex_lock(\"A/C\")\n\t\t\t\t\t\t    ok\n\t\t\t\t\t\t  configfs_mkdir(\"A/C/E\")\n\t\t\t\t\t\t    ok\n        detach_item(\"A/C\")\n        d_delete(\"A/C\")\n      mutex_unlock(\"A\")\n      detach_groups(\"A\")\n        mutex_lock(\"A/B\")\n        detach_group(\"A/B\")\n\t  detach_groups(\"A/B\")\n\t    nothing since no _default_ group\n          detach_item(\"A/B\")\n        mutex_unlock(\"A/B\")\n        d_delete(\"A/B\")\n    detach_item(\"A\")\n    d_delete(\"A\")\n\nTwo bugs:\n\n1/ \"A/B/C\" and \"A/C/E\" are created, but never removed while their parent are\nremoved in the end. The same could happen with symlink() instead of mkdir().\n\n2/ \"A\" and \"A/C\" inodes are not locked while detach_item() is called on them,\n   which may probably confuse VFS.\n\nThis commit fixes 1/, tagging new directories with CONFIGFS_USET_CREATING before\nbuilding the inode and instantiating the dentry, and validating the whole\ngroup+default groups hierarchy in a second pass by clearing\nCONFIGFS_USET_CREATING.\n\tmkdir(), symlink(), lookup(), and dir_open() simply return -ENOENT if\ncalled in (or linking to) a directory tagged with CONFIGFS_USET_CREATING. This\ndoes not prevent userspace from calling stat() successfuly on such directories,\nbut this prevents userspace from adding (children to | symlinking from/to |\nread/write attributes of | listing the contents of) not validated items. In\nother words, userspace will not interact with the subsystem on a new item until\nthe new item creation completes correctly.\n\tIt was first proposed to re-use CONFIGFS_USET_IN_MKDIR instead of a new\nflag CONFIGFS_USET_CREATING, but this generated conflicts when checking the\ntarget of a new symlink: a valid target directory in the middle of attaching\na new user-created child item could be wrongly detected as being attached.\n\n2/ is fixed by next commit.\n\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9a73d78cda750f12e25eb811878f2d9dbab1bc6e",
      "tree": "abdc6537d51ee4faeb41c452428f2bde72abc9c8",
      "parents": [
        "4768e9b18dc63719209c68920d4ae52dc49b6161"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "louis.rilling@kerlabs.com",
        "time": "Fri Jun 20 14:09:22 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jul 31 16:21:13 2008 -0700"
      },
      "message": "[PATCH] configfs: Fix failing symlink() making rmdir() fail\n\nOn a similar pattern as mkdir() vs rmdir(), a failing symlink() may make rmdir()\nfail for the symlink\u0027s parent and the symlink\u0027s target as well.\n\nfailing symlink() making target\u0027s rmdir() fail:\n\n\tprocess 1:\t\t\t\tprocess 2:\n\tsymlink(\"A/S\" -\u003e \"B\")\n\t  allow_link()\n\t  create_link()\n\t    attach to \"B\" links list\n\t\t\t\t\t\trmdir(\"B\")\n\t\t\t\t\t\t  detach_prep(\"B\")\n\t\t\t\t\t\t    error because of new link\n\t    configfs_create_link(\"A\", \"S\")\n\t      error (eg -ENOMEM)\n\nfailing symlink() making parent\u0027s rmdir() fail:\n\n\tprocess 1:\t\t\t\tprocess 2:\n\tsymlink(\"A/D/S\" -\u003e \"B\")\n\t  allow_link()\n\t  create_link()\n\t    attach to \"B\" links list\n\t    configfs_create_link(\"A/D\", \"S\")\n\t      make_dirent(\"A/D\", \"S\")\n\t\t\t\t\t\trmdir(\"A\")\n\t\t\t\t\t\t  detach_prep(\"A\")\n\t\t\t\t\t\t    detach_prep(\"A/D\")\n\t\t\t\t\t\t      error because of \"S\"\n\t      create(\"S\")\n\t        error (eg -ENOMEM)\n\nWe cannot use the same solution as for mkdir() vs rmdir(), since rmdir() on the\ntarget cannot wait on the i_mutex of the new symlink\u0027s parent without risking a\ndeadlock (with other symlink() or sys_rename()). Instead we define a global\nmutex protecting all configfs symlinks attachment, so that rmdir() can avoid the\nraces above.\n\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4768e9b18dc63719209c68920d4ae52dc49b6161",
      "tree": "ee9e805c405ea6a6cdf44ba30fd66047bc522b1b",
      "parents": [
        "dacdd0e04768da1fd2b24a6ee274c582b40d0c5b"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "louis.rilling@kerlabs.com",
        "time": "Mon Jun 23 14:16:17 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jul 31 16:21:12 2008 -0700"
      },
      "message": "[PATCH] configfs: Fix symlink() to a removing item\n\nThe rule for configfs symlinks is that symlinks always point to valid\nconfig_items, and prevent the target from being removed. However,\nconfigfs_symlink() only checks that it can grab a reference on the target item,\nwithout ensuring that it remains alive until the symlink is correctly attached.\n\nThis patch makes configfs_symlink() fail whenever the target is being removed,\nusing the CONFIGFS_USET_DROPPING flag set by configfs_detach_prep() and\nprotected by configfs_dirent_lock.\n\nThis patch introduces a similar (weird?) behavior as with mkdir failures making\nrmdir fail: if symlink() races with rmdir() of the parent directory (or its\nyoungest user-created ancestor if parent is a default group) or rmdir() of the\ntarget directory, and then fails in configfs_create(), this can make the racing\nrmdir() fail despite the concerned directory having no user-created entry (resp.\nno symlink pointing to it or one of its default groups) in the end.\nThis behavior is fixed in later patches.\n\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e75206517504461778c283b942440ef312e437d5",
      "tree": "a0acb0d8cc4527fc00560d7b78a971100fba7f57",
      "parents": [
        "11c3b79218390a139f2d474ee1e983a672d5839a"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "Louis.Rilling@kerlabs.com",
        "time": "Thu Jun 12 17:26:47 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 14 13:57:16 2008 -0700"
      },
      "message": "configfs: call drop_link() to cleanup after create_link() failure\n\nWhen allow_link() succeeds but create_link() fails, the subsystem is not\ninformed of the failure.\n\nThis patch fixes this by calling drop_link() on create_link() failures.\n\nSigned-off-by: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5301a77da2da1e4c22573e0e8d394a653b8ad9f9",
      "tree": "c2a6186510c3a4502d923cf3f5d445fa821cb277",
      "parents": [
        "6f61076406251626be39651d114fac412b1e0c39"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "Louis.Rilling@kerlabs.com",
        "time": "Mon Jun 16 19:00:59 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 14 13:57:16 2008 -0700"
      },
      "message": "configfs: Protect configfs_dirent s_links list mutations\n\nSymlinks to a config_item are listed under its configfs_dirent s_links, but the\nlist mutations are not protected by any common lock.\n\nThis patch uses the configfs_dirent_lock spinlock to add the necessary\nprotection.\n\nNote: we should also protect the list_empty() test in configfs_detach_prep() but\n1/ the lock should not be released immediately because nothing would prevent the\nlist from being filled after a successful list_empty() test, making the problem\ntricky,\n2/ this will be solved by the rmdir() vs rename() deadlock bugfix.\n\nSigned-off-by: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6f61076406251626be39651d114fac412b1e0c39",
      "tree": "d7adb1de212cfb7ead490b448bf75ce3b3b91c9c",
      "parents": [
        "fe9f387740ac7cb3b7c2fffa76807e997e6c6292"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "Louis.Rilling@kerlabs.com",
        "time": "Mon Jun 16 19:00:58 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 14 13:57:15 2008 -0700"
      },
      "message": "configfs: Introduce configfs_dirent_lock\n\nThis patch introduces configfs_dirent_lock spinlock to protect configfs_dirent\ntraversals against linkage mutations (add/del/move). This will allow\nconfigfs_detach_prep() to avoid locking i_mutexes.\n\nLocking rules for configfs_dirent linkage mutations are the same plus the\nrequirement of taking configfs_dirent_lock. For configfs_dirent walking, one can\neither take appropriate i_mutex as before, or take configfs_dirent_lock.\n\nThe spinlock could actually be a mutex, but the critical sections are either\nO(1) or should not be too long (default groups walking in last patch).\n\nChangeLog:\n  - Clarify the comment on configfs_dirent_lock usage\n  - Move sd-\u003es_element init before linking the new dirent\n  - In lseek(), do not release configfs_dirent_lock before the dirent is\n    relinked.\n\nSigned-off-by: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "8e24eea728068bbeb6a3c500b848f883a20bf225",
      "tree": "93e79da649723e2766237505b22725fec395f139",
      "parents": [
        "530b6412786d7f83592c1a8e2445541ed73fca76"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "fs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\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": "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": "754661f143e70d66eae6c48532ca245aa05dec0e",
      "tree": "c3ed0f7f96061931e497ed92d2b21294756b4831",
      "parents": [
        "9c2e08c592cd357a8330c34def1e8ecfdcf53275"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:38 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 1\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": "e7515d065d09f6450c996a8fa206ad66569e183c",
      "tree": "fe9c2514c555b79c67ed29b7393b6c853b9d70f4",
      "parents": [
        "22dd0e88b70f5faa3a0101081e290431c3439189"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Mar 10 11:42:30 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Jun 29 14:43:01 2006 -0700"
      },
      "message": "configfs: Clear up a few extra spaces where there should be TABs.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "1a1974fd4533afdb73873cdacb942d9a79ff7c9b",
      "tree": "2ca6e62b007f54a4b4d755bb98ad9692e4547395",
      "parents": [
        "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d"
      ],
      "author": {
        "name": "Eric Sesterhenn / snakebyte",
        "email": "snakebyte@gmx.de",
        "time": "Fri Jan 27 10:32:24 2006 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 03 14:03:09 2006 -0800"
      },
      "message": "[PATCH] BUG_ON() Conversion in fs/configfs/\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "3d0f89bb169482d26d5aa4e82e763077e7e9bc4d",
      "tree": "2d2317ce1417202322e3f715534fab80394bd5d2",
      "parents": [
        "62ca3d2603571dc2b1b4c1368e19d44b599062e2"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jan 25 13:31:07 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 03 14:01:05 2006 -0800"
      },
      "message": "configfs: Add permission and ownership to configfs objects.\n\nconfigfs always made item and attribute ownership root.root and\npermissions based on a umask of 022.  Add -\u003esetattr() to allow\nchown(2)/chmod(2), and persist the changes for the lifetime of the\nitems and attributes.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
      "tree": "7bfe4eeab8ce784b767cf30886623d456c384718",
      "parents": [
        "88026842b0a760145aa71d69e74fbc9ec118ca44"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Dec 15 14:29:43 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:28 2006 -0800"
      },
      "message": "[PATCH] configfs: User-driven configuration filesystem\n\nConfigfs, a file system for userspace-driven kernel object configuration.\nThe OCFS2 stack makes extensive use of this for propagation of cluster\nconfiguration information into kernel.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    }
  ]
}
