)]}'
{
  "log": [
    {
      "commit": "aeaa5ccd6421fbf9e7ded0ac67b12ea2b9fcf51e",
      "tree": "f614a33edbd3daab32d616446eb45a526e68d21b",
      "parents": [
        "4e70af56319e56423d6eb1ce25fc321cdf8cd41d"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Mon Feb 15 18:07:39 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 20 00:47:31 2010 -0500"
      },
      "message": "vfs: don\u0027t call ima_file_check() unconditionally in nfsd_open()\n\ncommit 1e41568d7378d1ba8c64ba137b9ddd00b59f893a (\"Take ima_path_check()\nin nfsd past dentry_open() in nfsd_open()\") moved this code back to its\noriginal location but missed the \"else\".\n\nSigned-off-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "deb0c98c7f6035d47a247e548384517a955314a5",
      "tree": "26428b06c7c0c7db106d731c61c1dee2069c3a39",
      "parents": [
        "a5f28ae4df291d81d9d23066f88c55ca45e388d3",
        "260c64d23532caf19abb77e696971da05c388489"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 08 17:08:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 08 17:08:01 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux:\n  Revert \"nfsd4: fix error return when pseudoroot missing\"\n"
    },
    {
      "commit": "260c64d23532caf19abb77e696971da05c388489",
      "tree": "75e0565f42f5e0639b5436c33470f67a591406b5",
      "parents": [
        "b292cf9ce70d221c3f04ff62db5ab13d9a249ca8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 08 13:42:26 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 08 15:25:23 2010 -0500"
      },
      "message": "Revert \"nfsd4: fix error return when pseudoroot missing\"\n\nCommit f39bde24b275ddc45d fixed the error return from PUTROOTFH in the\ncase where there is no pseudofilesystem.\n\nThis is really a case we shouldn\u0027t hit on a correctly configured server:\nin the absence of a root filehandle, there\u0027s no point accepting version\n4 NFS rpc calls at all.\n\nBut the shared responsibility between kernel and userspace here means\nthe kernel on its own can\u0027t eliminate the possiblity of this happening.\nAnd we have indeed gotten this wrong in distro\u0027s, so new client-side\nmount code that attempts to negotiate v4 by default first has to work\naround this case.\n\nTherefore when commit f39bde24b275ddc45d arrived at roughly the same\ntime as the new v4-default mount code, which explicitly checked only for\nthe previous error, the result was previously fine mounts suddenly\nfailing.\n\nWe\u0027ll fix both sides for now: revert the error change, and make the\nclient-side mount workaround more robust.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9bbb6cad0173e6220f3ac609e26beb48dab3b7cd",
      "tree": "680e0de3071c938ca9858fa9ed5bd5ca8ff2f20f",
      "parents": [
        "54bb6552bd9405dc7685653157a4ec260c77a71c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Jan 26 17:02:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "ima: rename ima_path_check to ima_file_check\n\nima_path_check actually deals with files!  call it ima_file_check instead.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8eb988c70e7709b7bd1a69f0ec53d19ac20dea84",
      "tree": "6d0283a9fbca5cc104f591b9cc628edf39bc0b05",
      "parents": [
        "1e41568d7378d1ba8c64ba137b9ddd00b59f893a"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Jan 20 15:35:41 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "fix ima breakage\n\nThe \"Untangling ima mess, part 2 with counters\" patch messed\nup the counters.  Based on conversations with Al Viro, this patch\nstreamlines ima_path_check() by removing the counter maintaince.\nThe counters are now updated independently, from measuring the file,\nin __dentry_open() and alloc_file() by calling ima_counts_get().\nima_path_check() is called from nfsd and do_filp_open().\nIt also did not measure all files that should have been measured.\nReason: ima_path_check() got bogus value passed as mask.\n[AV: mea culpa]\n[AV: add missing nfsd bits]\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1e41568d7378d1ba8c64ba137b9ddd00b59f893a",
      "tree": "755987f08fe2cc44dbdac089eb18a21ec844f179",
      "parents": [
        "4b06e5b9ad8abb20105b2b25e42c509ebe9b2d76"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 26 05:43:08 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "Take ima_path_check() in nfsd past dentry_open() in nfsd_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "93939f4e5df30e6229a0b5257fdcaf3faf88471c",
      "tree": "f30acb3e4a35ea96b342f3b1dd25700e7b531def",
      "parents": [
        "b1c0ec8966fa79891b796f58bf2bda1026ca5566",
        "b292cf9ce70d221c3f04ff62db5ab13d9a249ca8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux:\n  sunrpc: fix peername failed on closed listener\n  nfsd: make sure data is on disk before calling -\u003efsync\n  nfsd: fix \"insecure\" export option\n"
    },
    {
      "commit": "7211a4e859ad070b28545c06e0a6cb60b3b8aa31",
      "tree": "2a769132446f73cf593661428e68d7086168a5b2",
      "parents": [
        "f69ac2f5a36948e1adf071074414c5d1907b89b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Dec 25 17:44:45 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 06 17:37:26 2010 -0500"
      },
      "message": "nfsd: make sure data is on disk before calling -\u003efsync\n\nnfsd is not using vfs_fsync, so I missed it when changing the calling\nconvention during the 2.6.32 window.  This patch fixes it to not only\nstart the data writeout, but also wait for it to complete before calling\ninto -\u003efsync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3d354cbc43db36e7e8b27ed78901064b87864ffc",
      "tree": "08de81316e22a8edf430f4de9074968d2d73b57a",
      "parents": [
        "dd59f6c76b265ed2ff18b497d6105a9511b1feb1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Dec 20 10:43:35 2009 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 20 20:19:51 2009 -0800"
      },
      "message": "nfsd: fix \"insecure\" export option\n\nA typo in 12045a6ee9908b \"nfsd: let \"insecure\" flag vary by\npseudoflavor\" reversed the sense of the \"insecure\" flag.\n\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f69ac2f5a36948e1adf071074414c5d1907b89b7",
      "tree": "71fd91c4f6d644f118efe0e04c16413c44d15e00",
      "parents": [
        "7663dacd926584093dfc350892792054692b6cb3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 18 16:31:34 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Dec 20 10:22:58 2009 -0500"
      },
      "message": "nfsd: fix \"insecure\" export option\n\nA typo in 12045a6ee9908b \"nfsd: let \"insecure\" flag vary by\npseudoflavor\" reversed the sense of the \"insecure\" flag.\n\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bac5e54c29f352d962a2447d22735316b347b9f1",
      "tree": "7642993fa93164835ffaa2dacd341388193f1979",
      "parents": [
        "529e89430d6c0d64db8ac474cb95e68e2527c79a",
        "c05c4edd876b7ae92787d1295868afcb89b6a348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)\n  direct I/O fallback sync simplification\n  ocfs: stop using do_sync_mapping_range\n  cleanup blockdev_direct_IO locking\n  make generic_acl slightly more generic\n  sanitize xattr handler prototypes\n  libfs: move EXPORT_SYMBOL for d_alloc_name\n  vfs: force reval of target when following LAST_BIND symlinks (try #7)\n  ima: limit imbalance msg\n  Untangling ima mess, part 3: kill dead code in ima\n  Untangling ima mess, part 2: deal with counters\n  Untangling ima mess, part 1: alloc_file()\n  O_TRUNC open shouldn\u0027t fail after file truncation\n  ima: call ima_inode_free ima_inode_free\n  IMA: clean up the IMA counts updating code\n  ima: only insert at inode creation time\n  ima: valid return code from ima_inode_alloc\n  fs: move get_empty_filp() deffinition to internal.h\n  Sanitize exec_permission_lite()\n  Kill cached_lookup() and real_lookup()\n  Kill path_lookup_open()\n  ...\n\nTrivial conflicts in fs/direct-io.c\n"
    },
    {
      "commit": "1429b3eca23818f87f9fa569a15d9816de81f698",
      "tree": "3100f009ec8863ee4692ee197b8e0c16c11258e6",
      "parents": [
        "b65a9cfc2c38eebc33533280b8ad5841caee8b6e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:38:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 3: kill dead code in ima\n\nKill the \u0027update\u0027 argument of ima_path_check(), kill\ndead code in ima.\n\nCurrent rules: ima counters are bumped at the same time\nwhen the file switches from put_filp() fodder to fput()\none.  Which happens exactly in two places - alloc_file()\nand __dentry_open().  Nothing else needs to do that at\nall.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b65a9cfc2c38eebc33533280b8ad5841caee8b6e",
      "tree": "d6e5b713615cc5e65c900162ab09235ae4847909",
      "parents": [
        "0552f879d45cecc35d8e372a591fc5ed863bca58"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:27:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 2: deal with counters\n\n* do ima_get_count() in __dentry_open()\n* stop doing that in followups\n* move ima_path_check() to right after nameidata_to_filp()\n* don\u0027t bump counters on it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7663dacd926584093dfc350892792054692b6cb3",
      "tree": "3300005fc836d8a6661d758212289963f850d728",
      "parents": [
        "1557aca7904ed6fadd22cdc3364754070bb3d3c3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 04 19:49:00 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:47 2009 -0500"
      },
      "message": "nfsd: remove pointless paths in file headers\n\nThe new .h files have paths at the top that are now out of date.  While\nwe\u0027re here, just remove all of those from fs/nfsd; they never served any\npurpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1557aca7904ed6fadd22cdc3364754070bb3d3c3",
      "tree": "97af309e4cff7e9fc2cb9d90aeceff8404c2c47f",
      "parents": [
        "c7af6b0895229bd080b86afc91302b66f6df0378"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 04 19:36:06 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:46 2009 -0500"
      },
      "message": "nfsd: move most of nfsfh.h to fs/nfsd\n\nMost of this can be trivially moved to a private header as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "774b147828e32ec698e49d95d0498fc71da7082d",
      "tree": "a6fbbe083696229eff979e11a4fda1df3dd382f8",
      "parents": [
        "03a816b46d7eba78da11e4025f0af195b32fa464"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Dec 13 20:21:48 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:44 2009 -0500"
      },
      "message": "nfsd: make V4ROOT exports read-only\n\nI can\u0027t see any use for writeable V4ROOT exports.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03a816b46d7eba78da11e4025f0af195b32fa464",
      "tree": "5069e9183dd5535c61bc7eff8a8a03202a19568d",
      "parents": [
        "f2ca7153ca49a407ea1c7232c9fa7e9849f03f9c"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 15:06:05 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: restrict filehandles accepted in V4ROOT case\n\nOn V4ROOT exports, only accept filehandles that are the *root* of some\nexport.  This allows mountd to allow or deny access to individual\ndirectories and symlinks on the pseudofilesystem.\n\nNote that the checks in readdir and lookup are not enough, since a\nmalicious host with access to the network could guess filehandles that\nthey weren\u0027t able to obtain through lookup or readdir.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f2ca7153ca49a407ea1c7232c9fa7e9849f03f9c",
      "tree": "56e85e17fa0c579bf4d6aa12eec13da5833b2bb7",
      "parents": [
        "3227fa41abc191384fa81b3bcf52aa7fccb31536"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 12 17:26:19 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: allow exports of symlinks\n\nWe want to allow exports of symlinks, to allow mountd to communicate to\nthe kernel which symlinks lead to exports, and hence which symlinks need\nto be visible on the pseudofilesystem.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3227fa41abc191384fa81b3bcf52aa7fccb31536",
      "tree": "f50512f2feecfc2fde13b0843cbbfb87728e2442",
      "parents": [
        "82ead7fe41da960ed80652d13d5a1072f85f5aca"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:43:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: filter readdir results in V4ROOT case\n\nAs with lookup, we treat every boject as a mountpoint and pretend it\ndoesn\u0027t exist if it isn\u0027t exported.\n\nThe preexisting code here is confusing, but I haven\u0027t yet figured out\nhow to make it clearer.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "82ead7fe41da960ed80652d13d5a1072f85f5aca",
      "tree": "b4f870c1c6ef0e66ceca68be03a8e4eb3b139e2e",
      "parents": [
        "3b6cee7bc4b2f7858e9202293104acda8826bb68"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:33:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:23 2009 -0500"
      },
      "message": "nfsd: filter lookup results in V4ROOT case\n\nWe treat every object as a mountpoint and pretend it doesn\u0027t exist if\nit isn\u0027t exported.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3b6cee7bc4b2f7858e9202293104acda8826bb68",
      "tree": "52a1775073ef330a307ec6d81bc2da4d419a71b4",
      "parents": [
        "eb4c86c6a5adec423c9e615d4937fdddd06a16c5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:18:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:23 2009 -0500"
      },
      "message": "nfsd4: don\u0027t continue \"under\" mounts in V4ROOT case\n\nIf /A/mount/point/ has filesystem \"B\" mounted on top of it, and if \"A\"\nis exported, but not \"B\", then the nfs server has always returned to the\nclient a filehandle for the mountpoint, instead of for the root of \"B\",\nallowing the client to see the subtree of \"A\" that would otherwise be\nhidden by B.\n\nDisable this behavior in the case of V4ROOT exports; we implement the\npath restrictions of V4ROOT exports by treating *every* directory as if\nit were a mountpoint, and allowing traversal *only* if the new directory\nis exported.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "eb4c86c6a5adec423c9e615d4937fdddd06a16c5",
      "tree": "50aee7013c9ca92cce9828268af4ee3d220a416c",
      "parents": [
        "12045a6ee9908b38b6d286530c7d816e39071346"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 14:58:22 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:00:40 2009 -0500"
      },
      "message": "nfsd: introduce export flag for v4 pseudoroot\n\nNFSv4 differs from v2 and v3 in that it presents a single unified\nfilesystem tree, whereas v2 and v3 exported multiple filesystem (whose\nroots could be found using a separate mount protocol).\n\nOur original NFSv4 server implementation asked the administrator to\ndesignate a single filesystem as the NFSv4 root, then to mount\nfilesystems they wished to export underneath.  (Often using bind mounts\nof already-existing filesystems.)\n\nThis was conceptually simple, and allowed easy implementation, but\ncreated a serious obstacle to upgrading between v2/v3: since the paths\nto v4 filesystems were different, administrators would have to adjust\nall the paths in client-side mount commands when switching to v4.\n\nVarious workarounds are possible.  For example, the administrator could\nexport \"/\" and designate it as the v4 root.  However, the security risks\nof that approach are obvious, and in any case we shouldn\u0027t be requiring\nthe administrator to take extra steps to fix this problem; instead, the\nserver should present consistent paths across different versions by\ndefault.\n\nThese patches take a modified version of that approach: we provide a new\nexport option which exports only a subset of a filesystem.  With this\nflag, it becomes safe for mountd to export \"/\" by default, with no need\nfor additional configuration.\n\nWe begin just by defining the new flag.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "12045a6ee9908b38b6d286530c7d816e39071346",
      "tree": "649491cd62d895c32cde4ab488df7e32557eedff",
      "parents": [
        "e8e8753f7a32ce4f636771126fc8eba0dc4ad817"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 08 18:15:52 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 19:08:58 2009 -0500"
      },
      "message": "nfsd: let \"insecure\" flag vary by pseudoflavor\n\nThis was an oversight; it should be among the export flags that can be\nallowed to vary by pseudoflavor.  This allows an administrator to (for\nexample) allow auth_sys mounts only from low ports, but allow auth_krb5\nmounts to use any port.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e8e8753f7a32ce4f636771126fc8eba0dc4ad817",
      "tree": "b7298d70312e7ea267343ebe4ed001aa8f1986c8",
      "parents": [
        "9a74af21330c8d46efa977d088a62cc1bfa954e9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 12:53:32 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:51:29 2009 -0500"
      },
      "message": "nfsd: new interface to advertise export features\n\nSoon we will add the new V4ROOT flag, and allow the INSECURE flag to\nvary by pseudoflavor.  It would be useful for nfs-utils (for example,\nfor improved exportfs error reporting) to be able to know when this\nhappens.  Use this new interface for that purpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9a74af21330c8d46efa977d088a62cc1bfa954e9",
      "tree": "6f2e4b775738ae93da05ad475b244785bf40461e",
      "parents": [
        "68590c382b875cc9a76b06097f3dff6730d787c1"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:30:56 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:12 2009 -0500"
      },
      "message": "nfsd: Move private headers to source directory\n\nLots of include/linux/nfsd/* headers are only used by\nnfsd module. Move them to the source directory\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "341eb184469f8e4a6841fc49a57ad4a27e51c335",
      "tree": "df6b06cc5b15ae421b589865fc008df1219589a4",
      "parents": [
        "72579ac9cd68081108277c31781b127d0f420d61"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:29:12 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:09 2009 -0500"
      },
      "message": "nfsd: Source files #include cleanups\n\nNow that the headers are fixed and carry their own wait, all fs/nfsd/\nsource files can include a minimal set of headers. and still compile just\nfine.\n\nThis patch should improve the compilation speed of the nfsd module.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "57ecb34febc4c133ca0ccc7817796605a78a01d3",
      "tree": "cc0b9443c5b1c56c138b3bc0066d36afe55faaeb",
      "parents": [
        "864f0f61f829bac5f150a903aad9619322a25424"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 01 19:42:57 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:06:54 2009 -0500"
      },
      "message": "nfsd4: fix share mode permissions\n\nNFSv4 opens may function as locks denying other NFSv4 users the rights\nto open a file.\n\nWe\u0027re requiring a user to have write permissions before they can deny\nwrite.  We\u0027re *not* requiring a user to have write permissions to deny\nread, which is if anything a more drastic denial.\n\nWhat was intended was to require write permissions for DENY_READ.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "864f0f61f829bac5f150a903aad9619322a25424",
      "tree": "77a864ab5538255dfba454d13f67de60807f2973",
      "parents": [
        "9b8b317d58084b9a44f6f33b355c4278d9f841fb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 25 17:42:05 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 25 17:55:46 2009 -0500"
      },
      "message": "nfsd: simplify fh_verify access checks\n\nAll nfsd security depends on the security checks in fh_verify, and\nespecially on nfsd_setuser().\n\nIt therefore bothers me that the nfsd_setuser call may be made from\nthree different places, depending on whether the filehandle has already\nbeen mapped to a dentry, and on whether subtreechecking is in force.\n\nInstead, make an unconditional call in fh_verify(), so it\u0027s trivial to\nverify that the call always occurs.\n\nThat leaves us with a redundant nfsd_setuser() call in the subtreecheck\ncase--it needs the correct user set earlier in order to check execute\npermissions on the path to this filehandle--but I\u0027m willing to accept\nthat minor inefficiency in the subtreecheck case in return for more\nstraightforward permission checking.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9b8b317d58084b9a44f6f33b355c4278d9f841fb",
      "tree": "e0df89800bf4301c4017db3cdf04a2056ec1a852",
      "parents": [
        "78c210efdefe07131f91ed512a3308b15bb14e2f",
        "648f4e3e50c4793d9dbf9a09afa193631f76fa26"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 23 12:34:58 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 23 12:34:58 2009 -0500"
      },
      "message": "Merge commit \u0027v2.6.32-rc8\u0027 into HEAD\n"
    },
    {
      "commit": "479c2553af9a176a0613894b9f1ec73425fd56a3",
      "tree": "3d306d6ee61bfbd6117f2a6e8ec54bffe472c9a2",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Sat Nov 14 10:47:07 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 12:55:55 2009 -0800"
      },
      "message": "Fix memory corruption caused by nfsd readdir+\n\nCommit 8177e6d6dfb9cd03d9bdeb647c32161f8f58f686 (\"nfsd: clean up\nreaddirplus encoding\") introduced single character typo in nfs3 readdir+\nimplementation.  Unfortunately that typo has quite bad side effects:\nrandom memory corruption, followed (on my box) with immediate\nspontaneous box reboot.\n\nUsing \u0027p1\u0027 instead of \u0027p\u0027 fixes my Linux box rebooting whenever VMware\nESXi box tries to list contents of my home directory.\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a3adadee42f2865bb867b8c5f4955b7def9baad",
      "tree": "de98be9152faba8ea38bae24a7f5cce33ae99148",
      "parents": [
        "ea4878a24d7e6a467d369b962bab95bd6a12cbe0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 04 18:12:35 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Nov 13 13:23:02 2009 -0500"
      },
      "message": "nfsd: make fs/nfsd/vfs.h for common includes\n\nNone of this stuff is used outside nfsd, so move it out of the common\nlinux include directory.\n\nActually, probably none of the stuff in include/linux/nfsd/nfsd.h really\nbelongs there, so later we may remove that file entirely.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8c10cbdb4af642d9a2efb45ea89251aaab905360",
      "tree": "5d3527560565ed0a9d392368b14c581db5707c79",
      "parents": [
        "1b7e0403c6a72d18bebd4f2a6858b6c69c4bd428"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Oct 19 12:04:53 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 05 12:06:29 2009 -0500"
      },
      "message": "nfsd: use STATEID_FMT and STATEID_VAL for printing stateids\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1b7e0403c6a72d18bebd4f2a6858b6c69c4bd428",
      "tree": "94ef83aeae87abc76464b58e439642c5bcd79050",
      "parents": [
        "aba24d71580180dfdf6a1a83a5858a1c048fd785"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Mon Nov 02 16:59:07 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 04 13:46:37 2009 -0500"
      },
      "message": "nfsd: register NFS_ACL with rpcbind\n\nModify the NFS server to register the NFS_ACL services with the rpcbind\ndaemon.  This allows the client to ping for the existence of the NFS_ACL\nsupport via commands such as \"rpcinfo -t \u003cserver\u003e nfs_acl\".\n\nThis patch also modifies the NFS_ACL support so that responses to\nversion 2 NULLPROC requests can be made.\n\nThe changelog for the patch which turned off this functionality\nmentioned something about not registering the NFS_ACL as being part of\nsome tradition.  I can\u0027t find this tradition and the only other\nimplementation which supports NFS_ACL does register them with the\nrpcbind daemon.\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aba24d71580180dfdf6a1a83a5858a1c048fd785",
      "tree": "fc96b617d4ec4b92965513cab2a1bdfc8298fec5",
      "parents": [
        "dc83d6e27fa80babe31c80aa8568f125f72edf57"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Wed Oct 21 16:45:02 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 19:34:44 2009 -0400"
      },
      "message": "nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups\n\nWe have been doing some extensive testing of Linux support for ACLs on\nNFDS v4. We have noticed that the server rejects ACLs where the groups\nare out of order, for example, the following ACL is rejected:\n\nA::OWNER@:rwaxtTcCy\nA::user101@domain:rwaxtcy\nA::GROUP@:rwaxtcy\nA:g:group102@domain:rwaxtcy\nA:g:group101@domain:rwaxtcy\nA::EVERYONE@:rwaxtcy\n\nExamining the server code, I found that after converting an NFS v4 ACL\nto POSIX, sort_pacl is called to sort the user ACEs and group ACEs.\nUnfortunately, a minor bug causes the group sort to be skipped.\n\nSigned-off-by: Frank Filz \u003cffilzlnx@us.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "efe0cb6d5a1f20ad4df045a055048afed4c5e660",
      "tree": "850a3205944995a78f321cac0ed04cb260055d14",
      "parents": [
        "dd829c45640ff14d7a039af40b3b3975f1b2e484"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 24 20:52:16 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 19:34:43 2009 -0400"
      },
      "message": "nfsd4.1: common slot allocation size calculation\n\nWe do the same calculation in a couple places; use a helper function,\nand add a little documentation, in the hopes of preventing bugs like\nthat fixed in the last patch.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dd829c45640ff14d7a039af40b3b3975f1b2e484",
      "tree": "e19e0b89419521e5baeb095ca858493a2d47bcf7",
      "parents": [
        "dc7a08166f3a5f23e79e839a8a88849bd3397c32"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Oct 21 17:54:13 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 19:34:43 2009 -0400"
      },
      "message": "nfsd4.1: fix session memory use calculation\n\nUnbalanced calculations on creation and destruction of sessions could\ncause our estimate of cache memory used to become negative, sometimes\nresulting in spurious SERVERFAULT returns to client CREATE_SESSION\nrequests.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e343eb0d60f74547e0aeb5bd151105c2e6cfe588",
      "tree": "92586df0daf3298262a957640e5c86679c963f41",
      "parents": [
        "ddc04fd4d5163aee9ebdb38a56c365b602e2b7b7",
        "012abeea669ea49636cf952d13298bb68654146a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 18:45:17 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 18:45:17 2009 -0400"
      },
      "message": "Merge commit \u0027v2.6.32-rc5\u0027 into for-2.6.33\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ddc04fd4d5163aee9ebdb38a56c365b602e2b7b7",
      "tree": "6cb3c4abed9f0cbefbd2086c6e946ac312684f61",
      "parents": [
        "f39bde24b275ddc45df1ed835725b609e178c7a0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Sep 23 21:32:21 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 28 12:40:15 2009 -0400"
      },
      "message": "nfsd41: use sv_max_mesg for forechannel max sizes\n\nca_maxresponsesize and ca_maxrequest size include the RPC header.\n\nsv_max_mesg is sv_max_payolad plus a page for overhead and is used in\nsvc_init_buffer to allocate server buffer space for both the request and reply.\nNote that this means we can service an RPC compound that requires\nca_maxrequestsize (MAXWRITE) or ca_max_responsesize (MAXREAD) but that we do\nnot support an RPC compound that requires both ca_maxrequestsize and\nca_maxresponsesize.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[bfields@citi.umich.edu: more documentation updates]\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f39bde24b275ddc45df1ed835725b609e178c7a0",
      "tree": "17708324bb82f3fb4db2e9902dbcc9de03cbc1ff",
      "parents": [
        "289ede453e5a621de19c61e630302b1845cc1d59"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Sep 27 14:41:43 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 28 12:21:26 2009 -0400"
      },
      "message": "nfsd4: fix error return when pseudoroot missing\n\nWe really shouldn\u0027t hit this case at all, and forthcoming kernel and\nnfs-utils changes should eliminate this case; if it does happen,\nconsider it a bug rather than reporting an error that doesn\u0027t really\nmake sense for the operation (since there\u0027s no reason for a server to be\naccepting v4 traffic yet have no root filehandle).\n\nAlso move some exp_pseudoroot code into a helper function while we\u0027re\nhere.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "289ede453e5a621de19c61e630302b1845cc1d59",
      "tree": "0935cb943ed716441e22cea668ef60bc3bb2e3cf",
      "parents": [
        "fed83811269d0f559d2da9139e12c5e5d9874d5c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Sep 26 20:32:24 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 28 12:07:53 2009 -0400"
      },
      "message": "nfsd: minor nfsd_lookup cleanup\n\nBreak out some of nfsd_lookup_dentry into helper functions.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fed83811269d0f559d2da9139e12c5e5d9874d5c",
      "tree": "148843d2c71b54ec556a46702c3a0e3e8d1056d4",
      "parents": [
        "03d6a74b5f85ff46f20e1382982b7f4860f5fec6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Sep 26 16:53:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 28 12:07:52 2009 -0400"
      },
      "message": "nfsd4: cross mountpoints when looking up parents\n\n3c394ddaa7ea4205f933fd9b481166b2669368a9 \"nfsd4: nfsv4 clients should\ncross mountpoints\" forgot to handle lookups of parents directories.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: 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": "a87e84b5cdfacf11af4e8a85c4bca9793658536f",
      "tree": "f8e3cb2d339d8ed0e987d55f725e501730cdc81d",
      "parents": [
        "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
        "3c394ddaa7ea4205f933fd9b481166b2669368a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux: (68 commits)\n  nfsd4: nfsv4 clients should cross mountpoints\n  nfsd: revise 4.1 status documentation\n  sunrpc/cache: avoid variable over-loading in cache_defer_req\n  sunrpc/cache: use list_del_init for the list_head entries in cache_deferred_req\n  nfsd: return success for non-NFS4 nfs4_state_start\n  nfsd41: Refactor create_client()\n  nfsd41: modify nfsd4.1 backchannel to use new xprt class\n  nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n  nfsd41: Backchannel: cb_sequence callback\n  nfsd41: Backchannel: Setup sequence information\n  nfsd41: Backchannel: Server backchannel RPC wait queue\n  nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n  nfsd41: Backchannel: callback infrastructure\n  nfsd4: use common rpc_cred for all callbacks\n  nfsd4: allow nfs4 state startup to fail\n  SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous\n  nfsd4: fix null dereference creating nfsv4 callback client\n  nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n  nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n  sunrpc/cache: simplify cache_fresh_locked and cache_fresh_unlocked.\n  ...\n"
    },
    {
      "commit": "7b021967c5e1463936042c8da72b550d3cabe9ac",
      "tree": "efb5c26216851a93b3db3fba55858af04c8a15c5",
      "parents": [
        "6aed62853c72e29f2c97bbac7712cb398e8c9437"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make lock_manager_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@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": "3c394ddaa7ea4205f933fd9b481166b2669368a9",
      "tree": "6c1cfe2fefe0959c4eeb5b43e1c9f151ee1e2df3",
      "parents": [
        "285a0f00c27a02f1223a198c88de2130e9bab059"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 15:02:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 21 16:02:25 2009 -0400"
      },
      "message": "nfsd4: nfsv4 clients should cross mountpoints\n\nAllow NFS v4 clients to seamlessly cross mount point without\nhave to set either the \u0027crossmnt\u0027 or the \u0027nohide\u0027 export\noptions.\n\nSigned-Off-By: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b09333c4644d173d95b8f3fd4f1dc4375d91be2a",
      "tree": "221ff0f07f8845775e550282e26abbc60773ee35",
      "parents": [
        "3ddc8bf5f31c906c558ce3da4856208a864d2fc1"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:27:34 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:52:13 2009 -0400"
      },
      "message": "nfsd41: Refactor create_client()\n\nMove common initialization of \u0027struct nfs4_client\u0027 inside create_client().\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n\n[nfsd41: Remember the auth flavor to use for callbacks]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ddc8bf5f31c906c558ce3da4856208a864d2fc1",
      "tree": "dc0e56c769fee36ea66b724826d6112382e22bb3",
      "parents": [
        "0421b5c55acd0e88920cb9a5bcea6ed738186853"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Thu Sep 10 12:27:21 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:52:13 2009 -0400"
      },
      "message": "nfsd41: modify nfsd4.1 backchannel to use new xprt class\n\nThis patch enables the use of the nfsv4.1 backchannel.\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n[initialize rpc_create_args.bc_xprt too]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0421b5c55acd0e88920cb9a5bcea6ed738186853",
      "tree": "d19e8b22635ba8caa36d9ac1cddf6ab3176c7fb7",
      "parents": [
        "2af73580b7d7b687175f47ba092640761602b221"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:27:04 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:52:12 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[nfsd41: cb_recall callback]\n[Share v4.0 and v4.1 back channel xdr]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Share v4.0 and v4.1 back channel xdr]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use nfsd4_cb_sequence for callback minorversion]\n[nfsd41: conditionally decode_sequence in nfs4_xdr_dec_cb_recall]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Backchannel: Add sequence arguments to callback RPC arguments]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[pulled-in definition of nfsd4_cb_done]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2af73580b7d7b687175f47ba092640761602b221",
      "tree": "6136af3800ff00204b8a07b4f7b07472b8b06206",
      "parents": [
        "2a1d1b593803d7c18a369bf148f3b48c5a3260fc"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Sep 10 12:26:51 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:56 2009 -0400"
      },
      "message": "nfsd41: Backchannel: cb_sequence callback\n\nImplement the cb_sequence callback conforming to draft-ietf-nfsv4-minorversion1\n\nNote: highest slot id and target highest slot id do not have to be 0\nas was previously implemented.  They can be greater than what the\nnfs server sent if the client supports a larger slot table on the\nbackchannel.  At this point we just ignore that.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[Rework the back channel xdr using the shared v4.0 and v4.1 framework.]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[fixed indentation]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use nfsd4_cb_sequence for callback minorversion]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: fix verification of CB_SEQUENCE highest slot id[\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Backchannel: Remove old backchannel serialization]\n[nfsd41: Backchannel: First callback sequence ID should be 1]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: decode_cb_sequence does not need to actually decode ignored fields]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2a1d1b593803d7c18a369bf148f3b48c5a3260fc",
      "tree": "40cd8e5498ad680eec740923d512c0bf5fe114b3",
      "parents": [
        "199ff35e1c8724871e157c2e48556c2794946e82"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:26:38 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:56 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Setup sequence information\n\nFollows the model used by the NFS client.  Setup the RPC prepare and done\nfunction pointers so that we can populate the sequence information if\nminorversion \u003d\u003d 1.  rpc_run_task() is then invoked directly just like\nexisting NFS client operations do.\n\nnfsd4_cb_prepare() determines if the sequence information needs to be setup.\nIf the slot is in use, it adds itself to the wait queue.\n\nnfsd4_cb_done() wakes anyone sleeping on the callback channel wait queue\nafter our RPC reply has been received.  It also sets the task message\nresult pointer to NULL to clearly indicate we\u0027re done using it.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[define and initialize cl_cb_seq_nr here]\n[pulled out unused defintion of nfsd4_cb_done]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "199ff35e1c8724871e157c2e48556c2794946e82",
      "tree": "18bcf50bef1ad405013e4da1c1d76c9d153f153a",
      "parents": [
        "132f97715c098393fb8de3c26b07b9fdbd2334f1"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:26:25 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:55 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Server backchannel RPC wait queue\n\nRPC callback requests will wait on this wait queue if the backchannel\nis out of slots.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "132f97715c098393fb8de3c26b07b9fdbd2334f1",
      "tree": "293a4cfc826e8597aeafcb64e8452a57fea25f08",
      "parents": [
        "38524ab38f2752beee262a97403d871665838172"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:26:12 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:55 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n\nFollow the model we use in the client. Make the sequence arguments\npart of the regular RPC arguments.  None of the callbacks that are\nsoon to be implemented expect results that need to be passed back\nto the caller, so we don\u0027t define a separate RPC results structure.\nFor session validation, the cb_sequence decoding will use a pointer\nto the sequence arguments that are part of the RPC argument.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[define struct nfsd4_cb_sequence here]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "38524ab38f2752beee262a97403d871665838172",
      "tree": "cbccd7de004d2ad437bd514fc3baefefd6a711f5",
      "parents": [
        "80fc015bdfe1f5b870c1e1ee02d78e709523fee7"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Sep 10 12:25:59 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:55 2009 -0400"
      },
      "message": "nfsd41: Backchannel: callback infrastructure\n\nKeep the xprt used for create_session in cl_cb_xprt.\nMark cl_callback.cb_minorversion \u003d 1 and remember\nthe client provided cl_callback.cb_prog rpc program number.\nUse it to probe the callback path.\n\nUse the client\u0027s network address to initialize as the\ncallback\u0027s address as expected by the xprt creation\nroutines.\n\nDefine xdr sizes and code nfs4_cb_compound header to be able\nto send a null callback rpc.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[get callback minorversion from fore channel\u0027s]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: change bc_sock to bc_xprt]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pulled definition for cl_cb_xprt]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: set up backchannel\u0027s cb_addr]\n[moved rpc_create_args init to \"nfsd: modify nfsd4.1 backchannel to use new xprt class\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "80fc015bdfe1f5b870c1e1ee02d78e709523fee7",
      "tree": "f56fd466add111a4c6bcc29d127325e3e77b4669",
      "parents": [
        "29ab23cc5d351658d01a4327d55e9106a73fd04f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 18:07:35 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:34 2009 -0400"
      },
      "message": "nfsd4: use common rpc_cred for all callbacks\n\nCallbacks are always made using the machine\u0027s identity, so we can use a\nsingle auth_generic credential shared among callbacks to all clients and\nlet the rpc code take care of the rest.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "29ab23cc5d351658d01a4327d55e9106a73fd04f",
      "tree": "8df00000a93e783f4bc152c20a437338a4f57fde",
      "parents": [
        "5d351754fcf58d1a604aa7cf95c2805e8a098ad9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 15:56:50 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:33 2009 -0400"
      },
      "message": "nfsd4: allow nfs4 state startup to fail\n\nThe failure here is pretty unlikely, but we should handle it anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "886e3b7fe6054230c89ae078a09565ed183ecc73",
      "tree": "95978914331e3b9f4e2f22f7c645ec039f6d77aa",
      "parents": [
        "4be36ca0cefc09725f52a9590d061399d3e524d7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 12:22:42 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:33 2009 -0400"
      },
      "message": "nfsd4: fix null dereference creating nfsv4 callback client\n\nOn setting up the callback to the client, we attempt to use the same\nauthentication flavor the client did.  We find an rpc cred to use by\ncalling rpcauth_lookup_credcache(), which assumes that the given\nauthentication flavor has a credentials cache.  However, this is not\nrequired to be true--in particular, auth_null does not use one.\nInstead, we should call the auth\u0027s lookup_cred() method.\n\nWithout this, a client attempting to mount using nfsv4 and auth_null\ntriggers a null dereference.\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4be36ca0cefc09725f52a9590d061399d3e524d7",
      "tree": "00390a68d17ee182f5663eb2337ba56804d44a76",
      "parents": [
        "f300baba5a1536070d6d77bf0c8c4ca999bb4f0f"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Sep 10 12:25:46 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Sep 13 15:57:39 2009 -0400"
      },
      "message": "nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ab3bbaa8b257845e248e9a01d12a69ca245f4197",
      "tree": "f3054be9bd612194826ed6969d01346d329c3306",
      "parents": [
        "332a3392188e0ad966543c87b8da2b9d246f301d",
        "2ecda72b49a0849ce41e7fa1fa974a245b9119f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027\n"
    },
    {
      "commit": "aed100fafb90aaabe8fb31e58af9dc7e68696507",
      "tree": "2567f2aa9f0bac26910e6d2910fbdd044a5ab8e2",
      "parents": [
        "8177e6d6dfb9cd03d9bdeb647c32161f8f58f686"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 14:40:36 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 15:48:00 2009 -0400"
      },
      "message": "nfsd: fix leak on error in nfsv3 readdir\n\nNote the !dchild-\u003ed_inode case can leak the filehandle.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8177e6d6dfb9cd03d9bdeb647c32161f8f58f686",
      "tree": "3e6781150308ea56183593e0d4c1380a8515e6b6",
      "parents": [
        "1be10a88cac5e589cdd2bcb0cf6a13ed30bcc233"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 14:13:09 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 15:47:40 2009 -0400"
      },
      "message": "nfsd: clean up readdirplus encoding\n\nMake the return from compose_entry_fh() zero or an error, even though\nthe returned error isn\u0027t used, just to make the meaning of the return\nimmediately obvious.\n\nMove some repeated code out of main function into helper.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1be10a88cac5e589cdd2bcb0cf6a13ed30bcc233",
      "tree": "2d4b7fe5a1d45162d38388206772644486cd1328",
      "parents": [
        "2671a4bf3516757ca028c139a7902a50f2bd994a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 11:59:32 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 11:59:32 2009 -0400"
      },
      "message": "nfsd4: filehandle leak or error exit from fh_compose()\n\nA number of callers (nfsd4_encode_fattr(), at least) don\u0027t bother to\nrelease the filehandle returned to fh_compose() if fh_compose() returns\nan error.  So, modify fh_compose() to release the filehandle before\nreturning an error.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2671a4bf3516757ca028c139a7902a50f2bd994a",
      "tree": "9b60719bdd52cdae10f4b64525c13f072e1ac7b0",
      "parents": [
        "bc6c53d5a1383d5d9632adf33bd03458cfc0869d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 02 16:48:32 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Sep 03 16:57:57 2009 -0400"
      },
      "message": "NFSd: Fix filehandle leak in exp_pseudoroot() and nfsd4_path()\n\nnfsd4_path() allocates a temporary filehandle and then fails to free it\nbefore the function exits, leaking reference counts to the dentry and\nexport that it refers to.\n\nAlso, nfsd4_lookupp() puts the result of exp_pseudoroot() in a temporary\nfilehandle which it releases on success of exp_pseudoroot() but not on\nfailure; fix exp_pseudoroot to ensure that on failure it releases the\nfilehandle before returning.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bc6c53d5a1383d5d9632adf33bd03458cfc0869d",
      "tree": "6caf2e75f17efca08884dcaccb750901e2af2b26",
      "parents": [
        "8e498751f2f36074ffa6fc7f0a9ec6e055b350e6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 19:50:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 23:54:48 2009 -0400"
      },
      "message": "nfsd: move fsid_type choice out of fh_compose\n\nMore trivial cleanup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8e498751f2f36074ffa6fc7f0a9ec6e055b350e6",
      "tree": "5b62bd1cc72977ba3c3d0e7210162c6be6e22f9f",
      "parents": [
        "557ce2646e775f6bda734dd92b10d4780874b9c7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 19:31:32 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 23:53:51 2009 -0400"
      },
      "message": "nfsd: move some of fh_compose into helper functions\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e0e817392b9acf2c98d3be80c233dddb1b52003d",
      "tree": "ee680c020039313c9f9c40ab3542bb30a7363381",
      "parents": [
        "ed6d76e4c32de0c2ad5f1d572b948ef49e465176"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:13:40 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:01 2009 +1000"
      },
      "message": "CRED: Add some configurable debugging [try #6]\n\nAdd a config option (CONFIG_DEBUG_CREDENTIALS) to turn on some debug checking\nfor credential management.  The additional code keeps track of the number of\npointers from task_structs to any given cred struct, and checks to see that\nthis number never exceeds the usage count of the cred struct (which includes\nall references, not just those from task_structs).\n\nFurthermore, if SELinux is enabled, the code also checks that the security\npointer in the cred struct is never seen to be invalid.\n\nThis attempts to catch the bug whereby inode_has_perm() faults in an nfsd\nkernel thread on seeing cred-\u003esecurity be a NULL pointer (it appears that the\ncredential struct has been previously released):\n\n\thttp://www.kerneloops.org/oops.php?number\u003d252883\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "557ce2646e775f6bda734dd92b10d4780874b9c7",
      "tree": "a44a5e2f9d601a039f7ac9b30b5c4af95796fc23",
      "parents": [
        "bdac86e2154cfe47552639113265d1fa27cfbe72"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:04 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:06 2009 -0400"
      },
      "message": "nfsd41: replace page based DRC with buffer based DRC\n\nUse NFSD_SLOT_CACHE_SIZE size buffers for sessions DRC instead of holding nfsd\npages in cache.\n\nConnectathon testing has shown that 1024 bytes for encoded compound operation\nresponses past the sequence operation is sufficient, 512 bytes is a little too\nsmall. Set NFSD_SLOT_CACHE_SIZE to 1024.\n\nAllocate memory for the session DRC in the CREATE_SESSION operation\nto guarantee that the memory resource is available for caching responses.\nAllocate each slot individually in preparation for slot table size negotiation.\n\nRemove struct nfsd4_cache_entry and helper functions for the old page-based\nDRC.\n\nThe iov_len calculation in nfs4svc_encode_compoundres is now always\ncorrect.  Replay is now done in nfsd4_sequence under the state lock, so\nthe session ref count is only bumped on non-replay. Clean up the\nnfs4svc_encode_compoundres session logic.\n\nThe nfsd4_compound_state statp pointer is also not used.\nRemove nfsd4_set_statp().\n\nMove useful nfsd4_cache_entry fields into nfsd4_slot.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bdac86e2154cfe47552639113265d1fa27cfbe72",
      "tree": "3e8e9aaac30ebea8e741c1da29c1caacf2943fea",
      "parents": [
        "a8dfdaeb7a8b1295f45d9d208dd27e6e20113d1b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:03 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:05 2009 -0400"
      },
      "message": "nfsd41: replace nfserr_resource in pure nfs41 responses\n\nnfserr_resource is not a legal error for NFSv4.1. Replace it with\nnfserr_serverfault for EXCHANGE_ID and CREATE_SESSION processing.\n\nWe will also need to map nfserr_resource to other errors in routines shared\nby NFSv4.0 and NFSv4.1\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a8dfdaeb7a8b1295f45d9d208dd27e6e20113d1b",
      "tree": "fd7bdabd4f66ee054fc2b2e2d6b39089d5a5b972",
      "parents": [
        "a649637c73a36174287a403cdda7607177d64523"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:02 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:05 2009 -0400"
      },
      "message": "nfsd41: use session maxreqs for sequence target and highest slotid\n\nThis fixes a bug in the sequence operation reply.\n\nThe sequence operation returns the highest slotid it will accept in the future\nin sr_highest_slotid, and the highest slotid it prefers the client to use.\nSince we do not re-negotiate the session slot table yet, these should both\nalways be set to the session ca_maxrequests.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a649637c73a36174287a403cdda7607177d64523",
      "tree": "8aec8e30b2f4cceaee9fa5ddaa88e694ea3e09dd",
      "parents": [
        "a06b1261bdb580b35967d0e055d1ab131b332254"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:05 2009 -0400"
      },
      "message": "nfsd41: bound forechannel drc size by memory usage\n\nBy using the requested ca_maxresponsesize_cached * ca_maxresponses to bound\na forechannel drc request size, clients can tailor a session to usage.\n\nFor example, an I/O session (READ/WRITE only) can have a much smaller\nca_maxresponsesize_cached (for only WRITE compound responses) and a lot larger\nca_maxresponses to service a large in-flight data window.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a06b1261bdb580b35967d0e055d1ab131b332254",
      "tree": "7ce3f00974741f29dcb815f427c242fe3384ca62",
      "parents": [
        "468de9e54a900559b55aa939a4daeaea1915e572"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 31 15:16:11 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 20:00:17 2009 -0400"
      },
      "message": "NFSD: Fix a bug in the NFSv4 \u0027supported attrs\u0027 mandatory attribute\n\nThe fact that the filesystem doesn\u0027t currently list any alternate\nlocations does _not_ imply that the fs_locations attribute should be\nmarked as \"unsupported\".\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "468de9e54a900559b55aa939a4daeaea1915e572",
      "tree": "fa9f57f48f7f136fc5e4d821454ffb47ec0c22f6",
      "parents": [
        "d8d0b85b11476ce59684ad2998e91a522df518a0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Aug 27 12:07:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 28 12:20:15 2009 -0400"
      },
      "message": "nfsd41: expand solo sequence check\n\nCompounds consisting of only a sequence operation don\u0027t need any\nadditional caching beyond the sequence information we store in the slot\nentry.  Fix nfsd4_is_solo_sequence to identify this case correctly.\n\nThe additional check for a failed sequence in nfsd4_store_cache_entry()\nis redundant, since the nfsd4_is_solo_sequence call lower down catches\nthis case.\n\nThe final ce_cachethis set in nfsd4_sequence is also redundant.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d8d0b85b11476ce59684ad2998e91a522df518a0",
      "tree": "b54333f714aa96fd8c6d179c92b7c7a97db157c2",
      "parents": [
        "b0401d725334a94d57335790b8ac2404144748ee"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Thu Aug 27 17:35:41 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 27 17:35:41 2009 -0400"
      },
      "message": "nfsd4: remove ACE4_IDENTIFIER_GROUP flag from GROUP@ entry\n\nRFC 3530 says \"ACE4_IDENTIFIER_GROUP flag MUST be ignored on entries\nwith these special identifiers.  When encoding entries with these\nspecial identifiers, the ACE4_IDENTIFIER_GROUP flag SHOULD be set to\nzero.\"  It really shouldn\u0027t matter either way, but the point is that\nthis flag is used to distinguish named users from named groups (since\nunix allows a group to have the same name as a user), so it doesn\u0027t\nreally make sense to use it on a special identifier such as this.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aaf84eb95a9c610c6413cee4836764ea9194eed3",
      "tree": "439d25aa70e6226ae8895db8a7503fd63a62a907",
      "parents": [
        "eac81736e6884484ebb45f8d0cba639f3285382b"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Aug 20 03:21:56 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 27 17:17:40 2009 -0400"
      },
      "message": "nfsd41: renew_client must be called under the state lock\n\nUntil we work out the state locking so we can use a spin lock to protect\nthe cl_lru, we need to take the state_lock to renew the client.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Do not renew state on error]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Simplify exit code]\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ed2d8aed52212610d4cb79be3cbf535b04be38dc",
      "tree": "6baac65cfa094ac79db8a473ad7bd4b1dbbc5c2a",
      "parents": [
        "55bb55dca0cecac2fb7b8c743db41361c011c8a8"
      ],
      "author": {
        "name": "Ryusei Yamaguchi",
        "email": "mandel59@gmail.com",
        "time": "Sun Aug 16 00:54:41 2009 +0900"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Aug 25 12:39:37 2009 -0400"
      },
      "message": "knfsd: Replace lock_kernel with a mutex in nfsd pool stats.\n\nlock_kernel() in knfsd was replaced with a mutex. The later\ncommit 03cf6c9f49a8fea953d38648d016e3f46e814991 (\"knfsd:\nadd file to export stats about nfsd pools\") did not follow\nthat change. This patch fixes the issue.\n\nAlso move the get and put of nfsd_serv to the open and close methods\n(instead of start and stop methods) to allow atomic check and increment\nof reference count in the open method (where we can still return an\nerror).\n\nSigned-off-by: Ryusei Yamaguchi \u003cmandel59@gmail.com\u003e\nSigned-off-by: Isaku Yamahata \u003cyamahata@valinux.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nCc: Greg Banks \u003cgnb@fmeh.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "55bb55dca0cecac2fb7b8c743db41361c011c8a8",
      "tree": "148b3ccee78940f424c3ecc1c5b2e9f46527a200",
      "parents": [
        "8f55f3c0a013c42fb733997da54a3326c74601e8"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Fri Aug 14 15:02:30 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Aug 24 20:01:22 2009 -0400"
      },
      "message": "nfsd: Fix unnecessary deny bits in NFSv4 ACL\n\nThe group deny entries end up denying tcy even though tcy was just\nallowed by the allow entry. This appears to be due to:\n\tace-\u003eaccess_mask \u003d mask_from_posix(deny, flags);\ninstead of:\n\tace-\u003eaccess_mask \u003d deny_mask_from_posix(deny, flags);\n\nDenying a previously allowed bit has no effect, so this shouldn\u0027t affect\nbehavior, but it\u0027s ugly.\n\nSigned-off-by: Frank Filz \u003cffilzlnx@us.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fbf4665f41b02e757ab9d9198df65e319388e728",
      "tree": "ec0b8b4f3809ee38088504bf51440ee12f501085",
      "parents": [
        "7077ecbabd626cce1fcf5cc9766c83ec04d919f9"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:59 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:44 2009 -0400"
      },
      "message": "nfsd: populate sin6_scope_id on callback address with scopeid from rq_addr on SETCLIENTID call\n\nWhen a SETCLIENTID call comes in, one of the args given is the svc_rqst.\nThis struct contains an rq_addr field which holds the address that sent\nthe call. If this is an IPv6 address, then we can use the sin6_scope_id\nfield in this address to populate the sin6_scope_id field in the\ncallback address.\n\nAFAICT, the rq_addr.sin6_scope_id is non-zero if and only if the client\nmounted the server\u0027s link-local address.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7077ecbabd626cce1fcf5cc9766c83ec04d919f9",
      "tree": "20123b656c9e95d5bec27d552ec6e46f84c5bb1b",
      "parents": [
        "aa9a4ec7707a5391cde556f3fa1b0eb4bca3bcf6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:58 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:44 2009 -0400"
      },
      "message": "nfsd: add support for NFSv4 callbacks over IPv6\n\nThe framework to add this is all in place. Now, add the code to allow\nsupport for establishing a callback channel on an IPv6 socket.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aa9a4ec7707a5391cde556f3fa1b0eb4bca3bcf6",
      "tree": "abb684bea62a77a0172d6be2f45f0414acedc5cc",
      "parents": [
        "363168b4ea8ec26aeb982ac6024a09f907ecd27e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:57 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:43 2009 -0400"
      },
      "message": "nfsd: convert nfs4_cb_conn struct to hold address in sockaddr_storage\n\n...rather than as a separate address and port fields. This will be\nnecessary for implementing callbacks over IPv6. Also, convert\ngen_callback to use the standard rpcuaddr2sockaddr routine rather than\nits own private one.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "363168b4ea8ec26aeb982ac6024a09f907ecd27e",
      "tree": "95e626b67a238047caad3ce445b27eef98330780",
      "parents": [
        "be3ad6b0b675fd1d6b48362ca30bdee75fbef6b4"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:56 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:43 2009 -0400"
      },
      "message": "nfsd: make nfs4_client-\u003ecl_addr a struct sockaddr_storage\n\nIt\u0027s currently a __be32, which isn\u0027t big enough to hold an IPv6 address.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e9dc122166b8d863d3057a66ada04838e5548e52",
      "tree": "749e15bf719b64bf9113db7acd8e043d9742cb26",
      "parents": [
        "560ab42ef923aaf2e4347315bdfcc74b2708972c",
        "405d8f8b1d936414da2093d4149ff790ff3f84a5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:29 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:29 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 into for-2.6.32-incoming\n\nConflicts:\n\tnet/sunrpc/cache.c\n"
    },
    {
      "commit": "f884dcaead5f17bf586ac5fe6a3ad07b5203616a",
      "tree": "2406444df167f1d67b38733b544f2e2a96c778c7",
      "parents": [
        "976a6f921cad26651d25e73826c05c7a023f5fa4",
        "8854e82d9accc80f43c0bc3ff06b5979ac858185"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:58 2009 -0400"
      },
      "message": "Merge branch \u0027sunrpc_cache-for-2.6.32\u0027 into nfs-for-2.6.32\n"
    },
    {
      "commit": "bc74b4f5e63a09fb78e245794a0de1e5a2716bbe",
      "tree": "5e96e63fd69303162456549f12bff5f9b2ee2a22",
      "parents": [
        "da77005f0d64486cd760f43d9b7cc2379262a363"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:29 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:29 2009 -0400"
      },
      "message": "SUNRPC: Allow the cache_detail to specify alternative upcall mechanisms\n\nFor events that are rare, such as referral DNS lookups, it makes limited\nsense to have a daemon constantly listening for upcalls on a channel. An\nalternative in those cases might simply be to run the app that fills the\ncache using call_usermodehelper_exec() and friends.\n\nThe following patch allows the cache_detail to specify alternative upcall\nmechanisms for these particular cases.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2da8ca26c6bfad685bfddf39728eac1c83906aa9",
      "tree": "77d0d4ed305009bd5bf82b1456d4ed5ab1db5002",
      "parents": [
        "e57aed77ad48d28ac617ba157ad2f665f5301b30"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:26 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:26 2009 -0400"
      },
      "message": "NFSD: Clean up the idmapper warning...\n\nWhat part of \u0027internal use\u0027 is so hard to understand?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4116092b92f859e5e9a90c99d740933e651ee8c0",
      "tree": "0b06619ad84d483758873257daf377e5e3eca5d1",
      "parents": [
        "c15128c5e428af1e8ada1476484a74c970665edd"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:40 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:40 2009 -0400"
      },
      "message": "NFSD: Support IPv6 addresses in write_failover_ip()\n\nIn write_failover_ip(), replace the sscanf() with a call to the common\nsunrpc.ko presentation address parser.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "abfabf8cafa60e7876a7193fb344f739f690071d",
      "tree": "1cc9faa1a82d7ac7ef08bdb8af7acb8a30c9903d",
      "parents": [
        "c8647947f8c13ee2647505debae284ab1c859e65"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:18 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 16:12:34 2009 -0400"
      },
      "message": "nfsd41: encode replay sequence from the slot values\n\nThe sequence operation is not cached; always encode the sequence operation on\na replay from the slot table and session values. This simplifies the sessions\nreplay logic in nfsd4_proc_compound.\n\nIf this is a replay of a compound that was specified not to be cached, return\nNFS4ERR_RETRY_UNCACHED_REP.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c8647947f8c13ee2647505debae284ab1c859e65",
      "tree": "8a8ae32fde3994a7b364b8caa0dd59fcae8d271d",
      "parents": [
        "49557cc74c7bdf6a984be227ead9a84b3a26f053"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:17 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:36 2009 -0400"
      },
      "message": "nfsd41: rename nfsd4_enc_uncached_replay\n\nThis function is only used for SEQUENCE replay.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "49557cc74c7bdf6a984be227ead9a84b3a26f053",
      "tree": "796abd9b62301d16f3307dacd0b21e47b79622b1",
      "parents": [
        "88e588d56a2f0226a34386b94a03fda97d2b8e67"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:16 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:29 2009 -0400"
      },
      "message": "nfsd41: Use separate DRC for setclientid\n\nInstead of trying to share the generic 4.1 reply cache code for the\nCREATE_SESSION reply cache, it\u0027s simpler to handle CREATE_SESSION\nseparately.\n\nThe nfs41 single slot clientid DRC holds the results of create session\nprocessing.  CREATE_SESSION can be preceeded by a SEQUENCE operation\n(an embedded CREATE_SESSION) and the create session single slot cache must be\nmaintained.  nfsd4_replay_cache_entry() and nfsd4_store_cache_entry() do not\nimplement the replay of an embedded CREATE_SESSION.\n\nThe clientid DRC slot does not need the inuse, cachethis or other fields that\nthe multiple slot session cache uses.  Replace the clientid DRC cache struct\nnfs4_slot cache with a new nfsd4_clid_slot cache.  Save the xdr struct\nnfsd4_create_session into the cache at the end of processing, and on a replay,\nreplace the struct for the replay request with the cached version all while\nunder the state lock.\n\nnfsd4_proc_compound will handle both the solo and embedded CREATE_SESSION case\nvia the normal use of encode_operation.\n\nErrors that do not change the create session cache:\nA create session NFS4ERR_STALE_CLIENTID error means that a client record\n(and associated create session slot) could not be found and therefore can\u0027t\nbe changed.  NFSERR_SEQ_MISORDERED errors do not change the slot cache.\n\nAll other errors get cached.\n\nRemove the clientid DRC specific check in nfs4svc_encode_compoundres to\nput the session only if cstate.session is set which will now always be true.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "88e588d56a2f0226a34386b94a03fda97d2b8e67",
      "tree": "a190c3618ed4772c9f9b36a948be33b5368fecba",
      "parents": [
        "5261dcf8eb3d098545a676030910cf2c05a00e6c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:23 2009 -0400"
      },
      "message": "nfsd41: change check_slot_seqid parameters\n\nFor separation of session slot and clientid slot processing.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5261dcf8eb3d098545a676030910cf2c05a00e6c",
      "tree": "7ebde7d066f54842bf990005b6f4847e40ee72f6",
      "parents": [
        "0c193054a4c1cf190d2f23e5e91bd14402e43912"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:14 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:15 2009 -0400"
      },
      "message": "nfsd41: remove redundant forechannel max requests check\n\nThis check is done in set_forechannel_maxreqs.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0c193054a4c1cf190d2f23e5e91bd14402e43912",
      "tree": "f2fc6efa35b0cfa621b43894e2dfd57762e65d0f",
      "parents": [
        "6a14dd1a4fe1bd00e02a96c97015cedfddda58ed"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 19:09:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:05 2009 -0400"
      },
      "message": "nfsd41: hange from page to memory based drc limits\n\nNFSD_SLOT_CACHE_SIZE is the size of all encoded operation responses\n(excluding the sequence operation) that we want to cache.\n\nFor now, keep NFSD_SLOT_CACHE_SIZE at PAGE_SIZE. It will be reduced\nwhen the DRC is changed from page based to memory based.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6a14dd1a4fe1bd00e02a96c97015cedfddda58ed",
      "tree": "0b1647f5ee7562d0be28c509f67215e9efdfc5e2",
      "parents": [
        "b101ebbc39f50f8af4657e517954ca874b13b364"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 19:06:45 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:59 2009 -0400"
      },
      "message": "nfsd41: reserve less memory for DRC\n\nAlso remove a slightly misleading comment.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b101ebbc39f50f8af4657e517954ca874b13b364",
      "tree": "a92e8df431a08450149b19c1db8365932e3ebc90",
      "parents": [
        "be98d1bbd1b872a10d64cdef0af10b9afcc48092"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 18:40:09 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:54 2009 -0400"
      },
      "message": "nfsd41: minor set_forechannel_maxreqs cleanup\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "be98d1bbd1b872a10d64cdef0af10b9afcc48092",
      "tree": "10685e758e2539cf1e579114643b78c143ccee89",
      "parents": [
        "413d63d7106b914a4a004ac08698f10c618e4616"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 18:49:05 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:48 2009 -0400"
      },
      "message": "nfsd41: reclaim DRC memory on session free\n\nThis fixes a leak which would eventually lock out new clients.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "413d63d7106b914a4a004ac08698f10c618e4616",
      "tree": "e481bf2f0da4388707bebfd1d3a2e69ee44614f8",
      "parents": [
        "2522a776c1b9b5c93383d07717f895cc1a56a87a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 11:37:25 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:41 2009 -0400"
      },
      "message": "nfsd: minor write_pool_threads exit cleanup\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2522a776c1b9b5c93383d07717f895cc1a56a87a",
      "tree": "1233866afaa4d6caf135f4714c30dd3c8f2cb270",
      "parents": [
        "4bd9b0f4afc76cf972578c702e1bc1b6f2d10ba5"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "eric.sesterhenn@focus-voip.de",
        "time": "Tue Jul 28 14:32:08 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:34 2009 -0400"
      },
      "message": "Fix memory leak in write_pool_threads\n\nkmemleak produces the following warning\n\nunreferenced object 0xc9ec02a0 (size 8):\n  comm \"cat\", pid 19048, jiffies 730243\n  backtrace:\n    [\u003cc01bf970\u003e] create_object+0x100/0x240\n    [\u003cc01bfadb\u003e] kmemleak_alloc+0x2b/0x60\n    [\u003cc01bcd4b\u003e] __kmalloc+0x14b/0x270\n    [\u003cc02fd027\u003e] write_pool_threads+0x87/0x1d0\n    [\u003cc02fcc08\u003e] nfsctl_transaction_write+0x58/0x70\n    [\u003cc02fcc6f\u003e] nfsctl_transaction_read+0x4f/0x60\n    [\u003cc01c2574\u003e] vfs_read+0x94/0x150\n    [\u003cc01c297d\u003e] sys_read+0x3d/0x70\n    [\u003cc0102d6b\u003e] sysenter_do_call+0x12/0x32\n    [\u003cffffffff\u003e] 0xffffffff\n\nwrite_pool_threads() only frees nthreads on error paths, in the success case\nwe leak it.\n\nSigned-off-by: Eric Sesterhenn \u003ceric.sesterhenn@lsexperts.de\u003e\nReviewed-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4bd9b0f4afc76cf972578c702e1bc1b6f2d10ba5",
      "tree": "ec7289f1c24ef1ff75c2fdd3cfb2c7ef66f8c44d",
      "parents": [
        "7702ce40bc84a02e88aa20f95333df8cff5f9d37"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Jun 24 15:37:45 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 14 17:52:40 2009 -0400"
      },
      "message": "nfsd41: use globals for DRC limits\n\nThe version 4.1 DRC memory limit and tracking variables are server wide and\nsession specific. Replace struct svc_serv fields with globals.\nStop using the svc_serv sv_lock.\n\nAdd a spinlock to serialize access to the DRC limit management variables which\nchange on session creation and deletion (usage counter) or (future)\nadministrative action to adjust the total DRC memory limit.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "9208faf297dddfa97a86d7224b6bf94f2e346dd9",
      "tree": "c93d67a14b2a12b77bec058df5510530d333bfc6",
      "parents": [
        "5a421ce3c062a87db0a9e7f2a0a7ee0a5b869aab"
      ],
      "author": {
        "name": "Yu Zhiguo",
        "email": "yuzg@cn.fujitsu.com",
        "time": "Mon Jul 06 17:24:16 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 14 12:16:47 2009 -0400"
      },
      "message": "NFSv4: ACL in operations \u0027open\u0027 and \u0027create\u0027 should be used\n\nACL in operations \u0027open\u0027 and \u0027create\u0027 is decoded but never be used.\nIt should be set as the initial ACL for the object according to RFC3530.\nIf error occurs when setting the ACL, just clear the ACL bit in the\nreturned attr bitmap.\n\nSigned-off-by: Yu Zhiguo \u003cyuzg@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "033a666ccb842ab4134fcd0c861d5ba9f5d6bf3a"
}
