)]}'
{
  "log": [
    {
      "commit": "4c1e1b34d5c800ad3ac9a7e2805b0bea70ad2278",
      "tree": "1d52d5be323c160ae98f35dd32c7f8109879354d",
      "parents": [
        "03bc6d1cc1759e6b5959cacc02a19ef36e95e741"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Feb 02 06:42:53 2013 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 13 06:16:08 2013 -0800"
      },
      "message": "nfsd: Store ex_anon_uid and ex_anon_gid as kuids and kgids\n\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "64d7155cdfe5546ca0730daf7dd73ee52a74eeaf",
      "tree": "7d58409a555f89b8fb9c81012809c108b5d32b01",
      "parents": [
        "0238047018d34946c08afc2f9e19053a3c25f0e1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Oct 17 12:31:15 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Oct 17 12:31:15 2012 +0100"
      },
      "message": "UAPI: Remove empty non-UAPI Kbuild files\n\nRemove non-UAPI Kbuild files that have become empty as a result of UAPI\ndisintegration.  They used to have only header-y lines in them and those have\nnow moved to the Kbuild files in the corresponding uapi/ directories.\n\nPossibly these should not be removed but rather have a comment inserted to say\nthey are intentionally left blank.  This would make it easier to add generated\nheader lines in future without having to restore the infrastructure.\n\nNote that at this point not all the UAPI disintegration parts have been merged,\nso it is likely that more empty Kbuild files will turn up.\n\nIt is probably necessary to make the files non-empty to prevent the patch\nprogram from automatically deleting them when it reduces them to nothing.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "616d1ca5d7887dd848f2180218b4c19cb41eb30b",
      "tree": "b8704976ff1a77e00c12e99efceeac0d643110f2",
      "parents": [
        "9e2d8656f5e8aa214e66b462680cf86b210b74a8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:02 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:02 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/nfsd\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "4a55c1017b8dcfd0554734ce3f19374d5b522d59",
      "tree": "11bb9456d121ff1cc0adad10da12b25083823a19",
      "parents": [
        "e7848683ae7ded0a4a8964122a47da9104a98337"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jun 12 16:20:33 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 01:02:51 2012 +0400"
      },
      "message": "nfsd: Push mnt_want_write() outside of i_mutex\n\nWhen mnt_want_write() starts to handle freezing it will get a full lock\nsemantics requiring proper lock ordering. So push mnt_want_write() call\nconsistently outside of i_mutex.\n\nCC: linux-nfs@vger.kernel.org\nCC: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a00b6151a2ae4c52576c35d3998e144a993d50b8",
      "tree": "fc312be05c4deb4dead7a6afa09e88017d3a0146",
      "parents": [
        "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
        "b108fe6b08f3f61c2c465649b20b7d4b4c185728"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd update from Bruce Fields.\n\n* \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux: (23 commits)\n  nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek\n  SUNRPC: split upcall function to extract reusable parts\n  nfsd: allocate id-to-name and name-to-id caches in per-net operations.\n  nfsd: make name-to-id cache allocated per network namespace context\n  nfsd: make id-to-name cache allocated per network namespace context\n  nfsd: pass network context to idmap init/exit functions\n  nfsd: allocate export and expkey caches in per-net operations.\n  nfsd: make expkey cache allocated per network namespace context\n  nfsd: make export cache allocated per network namespace context\n  nfsd: pass pointer to export cache down to stack wherever possible.\n  nfsd: pass network context to export caches init/shutdown routines\n  Lockd: pass network namespace to creation and destruction routines\n  NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches\n  nfsd: pass pointer to expkey cache down to stack wherever possible.\n  nfsd: use hash table from cache detail in nfsd export seq ops\n  nfsd: pass svc_export_cache pointer as private data to \"exports\" seq file ops\n  nfsd: use exp_put() for svc_export_cache put\n  nfsd: use cache detail pointer from svc_export structure on cache put\n  nfsd: add link to owner cache detail to svc_export structure\n  nfsd: use passed cache_detail pointer expkey_parse()\n  ...\n"
    },
    {
      "commit": "d22053cdbd914a6c97ea101adf411a8fd7e282ad",
      "tree": "a4d1f1e7b431169c8d06ad55a9ad5cf9ae4d5d11",
      "parents": [
        "9dc4e6c4d1182d34604ea40fef641775f5b15456"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Apr 16 12:07:02 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 16 15:19:12 2012 -0400"
      },
      "message": "nfsd: include cld.h in the headers_install target\n\nThe cld.h file contains the definition of the upcall format to talk\nwith nfsdcld. When I added the file though, I neglected to add it\nto the headers-y target, so make headers_install wasn\u0027t installing it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e5f06f720eff24e32f1cc08ec03bcc8c4b2d2934",
      "tree": "9afeda20ea7ea07f6c1bbcc9dc5979c98cc62def",
      "parents": [
        "b3853e0ea1f2ef58f7e7c03e47819e2ae3766dea"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:28 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:11:46 2012 -0400"
      },
      "message": "nfsd: make expkey cache allocated per network namespace context\n\nThis patch also changes svcauth_unix_purge() function: added network namespace\nas a parameter and thus loop over all networks was replaced by only one call\nfor ip map cache purge.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b3853e0ea1f2ef58f7e7c03e47819e2ae3766dea",
      "tree": "e1d54f74e25a7878c2d786d120cd1a97f240ac18",
      "parents": [
        "2a75cfa64e63502e54e40f99ba07411544bd3190"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:21 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:11:11 2012 -0400"
      },
      "message": "nfsd: make export cache allocated per network namespace context\n\nThis patch also changes prototypes of nfsd_export_flush() and exp_rootfh():\nnetwork namespace parameter added.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b89109bef4a6a4a8ab5788778ee0addca0787870",
      "tree": "d42ef77b42075c474e1d8f4f4b95a1d5f03c564f",
      "parents": [
        "e3f70eadb7dddfb5a2bb9afff7abfc6ee17a29d0"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:14 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 18:01:33 2012 -0400"
      },
      "message": "nfsd: pass network context to export caches init/shutdown routines\n\nThese functions will be called from per-net operations.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "71234978e81ee515c8025d087a197561b311c183",
      "tree": "2efe1ee7b36cb9ad69449254e4866a047eba6137",
      "parents": [
        "db3a35326362624dd4d8473e676d63afa52bedcc"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:15 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:02 2012 -0400"
      },
      "message": "nfsd: use cache detail pointer from svc_export structure on cache put\n\nHard-coded pointer is redundant now and can be replaced.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "db3a35326362624dd4d8473e676d63afa52bedcc",
      "tree": "1714bb7b59c3793ce10ee6ce8f2b454c85cbc320",
      "parents": [
        "d4bb527e9e6c00e6e24f3475fe65db7775ff6c63"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:08 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:01 2012 -0400"
      },
      "message": "nfsd: add link to owner cache detail to svc_export structure\n\nWithout info about owner cache datail it won\u0027t be able to find out, which\nper-net cache detail have to be.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0ab628d856a63d63b47307b09851d1e955c706ac",
      "tree": "948490c42a8f85dddc0be7058ff500eb66c525cc",
      "parents": [
        "7ea34ac15e45b790f2faa7d5f69c560a43f2de70"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:06 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: add a header describing upcall to nfsdcld\n\nThe daemon takes a versioned binary struct. Hopefully this should allow\nus to revise the struct later if it becomes necessary.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2f1ddda1749a223d1a05e16dc6ea28632b9ec570",
      "tree": "e3c8dcf3a05822f78686aec1ad2b6f6697080b40",
      "parents": [
        "ed748aacb8e3318fa2cf24e1c197d35b5fd29605"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Sep 12 19:37:16 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 13 22:44:10 2011 -0400"
      },
      "message": "NFSD: Remove the ex_pathname field from struct svc_export\n\nThere are no more users...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ed748aacb8e3318fa2cf24e1c197d35b5fd29605",
      "tree": "cee8fdf89ec8019b0dd3cd3e10eca4df05e6c4e5",
      "parents": [
        "ee626a77d3725a129391b1c85edd46f3b470cca9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Sep 12 19:37:06 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 13 22:43:42 2011 -0400"
      },
      "message": "NFSD: Cleanup for nfsd4_path()\n\nThe current code is sort of hackish in that it assumes a referral is always\nmatched to an export. When we add support for junctions that may not be the\ncase.\nWe can replace nfsd4_path() with a function that encodes the components\ndirectly from the dentries. Since nfsd4_path is currently the only user of\nthe \u0027ex_pathname\u0027 field in struct svc_export, this has the added benefit\nof allowing us to get rid of that.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c152292f9ee7eb4ed30edc0bd5027a5beef5f5e8",
      "tree": "7914a4eb8101c2c28b63d726e5a740ddffc9f95f",
      "parents": [
        "3cc9fda40a427aeb176bab898edca4e9a3ada524"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 26 17:22:06 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Aug 31 11:50:11 2011 -0400"
      },
      "message": "nfsd: remove include/linux/nfsd/syscall.h\n\nWe don\u0027t need this any more.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c10bd39d800d42adef55ed9016f802677cd0ab5f",
      "tree": "35b3301cf478bb3fed38eea2928548eea3e332c7",
      "parents": [
        "8cfb79134027e96bc11067da00d7ca73e58e69ce"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 19 11:38:52 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 26 18:22:52 2011 -0400"
      },
      "message": "Remove include/linux/nfsd/const.h\n\nUserspace shouldn\u0027t have a use for these constants.  Nothing here is\nused outside fs/nfsd.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8cfb79134027e96bc11067da00d7ca73e58e69ce",
      "tree": "57c97b0f479adde621475c4fa5336b69928cc0f6",
      "parents": [
        "75c096f753b273b59f1b9a0745e9e4b5d911a312"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Aug 08 07:09:03 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 26 18:22:51 2011 -0400"
      },
      "message": "nfsd: remove unused defines\n\nAt least one of these is actually wrong anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "49b28684fdba2c84a3b8e54aaa0faa9ce2e4f140",
      "tree": "c64ee1e754e291d5a917417b25026e681d8a3d0d",
      "parents": [
        "094b5d74f4005ae1cc90688f2c814e00937809a8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 21 15:27:43 2011 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jul 15 18:58:42 2011 -0400"
      },
      "message": "nfsd: Remove deprecated nfsctl system call and related code.\n\nAs promised in feature-removal-schedule.txt it is time to\nremove the nfsctl system call.\n\nUserspace has perferred to not use this call throughout 2.6 and it has been\nexcluded in the default configuration since 2.6.36 (9 months ago).\n\nSo this patch removes all the code that was being compiled out.\n\nThere are still references to sys_nfsctl in various arch systemcall tables\nand related code.  These should be cleaned out too, probably in the next\nmerge window.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "9ce137eee4febaabca81143be07d4205d2bd52d4",
      "tree": "e52e5225e1d113164382bf85bca83a2c0330d64e",
      "parents": [
        "9ee1ba5402e9d35fb35f8e61c968f4987b5fb443"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 14:07:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:07 2011 -0500"
      },
      "message": "nfsd: don\u0027t support msnfs export option\n\nWe\u0027ve long had these pointless #ifdef MSNFS\u0027s sprinkled throughout the\ncode--pointless because MSNFS is always defined (and we give no config\noption to make that easy to change).  So we could just remove the\nifdef\u0027s and compile the resulting code unconditionally.\n\nBut as long as we\u0027re there: why not just rip out this code entirely?\nThe only purpose is to implement the \"msnfs\" export option which turns\non Windows-like behavior in some cases, and:\n\n\t- the export option isn\u0027t documented anywhere;\n\t- the userland utilities (which would need to be able to parse\n\t  \"msnfs\" in an export file) don\u0027t support it;\n\t- I don\u0027t know how to maintain this, as I don\u0027t know what the\n\t  proper behavior is; and\n\t- google shows no evidence that anyone has ever used this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "60641aa1f379820e99ac7f45a38b43795670c741",
      "tree": "a4a68780ba75bbf8f2fc96dba880ea39da2c717b",
      "parents": [
        "c29c08b59875fe053471cf9eb66f8cfef39bc509"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sat Aug 14 10:15:12 2010 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sat Aug 14 22:26:51 2010 +0200"
      },
      "message": "include: replace unifdef-y with header-y\n\nunifdef-y and header-y has same semantic.\nSo there is no need to have both.\n\nDrop the unifdef-y variant and sort all lines again\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "fb4b698fc78347419aa9ae7114e1375f92107500",
      "tree": "24e2b62d817b01f223bba4921cfa2787e6147c3a",
      "parents": [
        "b48fa6b99100dc7772af3cd276035fcec9719ceb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 28 17:45:06 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 03 08:33:00 2010 -0400"
      },
      "message": "nfsd: further comment typos\n\nWhoops, missed some more.\n\n\"Reviewed-by, I guess\": Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e0c8233622cbd49d171bc57b60e725f2fb748750",
      "tree": "cf377cdf0def2861d049b02472ff0f3788be8f26",
      "parents": [
        "d03859a4aca3969efd91dc77be7efa2ae45b05d8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 17:04:25 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 17:04:25 2010 -0400"
      },
      "message": "nfsd4: fix filehandle comment\n\nMinor typos.\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": "3d8986c7585457c45fd349b2c542c7c1ecd20843",
      "tree": "772afbf1488128a4c79032faa69a7e9f20b816b4",
      "parents": [
        "774b147828e32ec698e49d95d0498fc71da7082d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:09:03 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:45 2009 -0500"
      },
      "message": "nfsd: enable V4ROOT exports\n\nWith the v4root option now enforced everywhere it should be, it is safe\nto advertise support for it to mountd.\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": "72579ac9cd68081108277c31781b127d0f420d61",
      "tree": "de5e45c4a7928794ee843dc0f1b08ea16e8b350a",
      "parents": [
        "d703158229329af7152d159753f849aa7bd55ee6"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:28:59 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:09 2009 -0500"
      },
      "message": "nfsd: Headers Independence and include cleanups\n\n* Add includes that are directly used by headers\n* Remove includes that are not needed\n\nThese are the changes made:\n\n[xdr.h]\nstruct nfsd_readdirres has an embedded struct readdir_cd from nfsd.h\nfixing that we can drop other includes\n\n[xdr4.h]\nembedded types defined both at state.h and nfsd.h\n\n[syscall.h]\nAfter export.h fix none of these stuff is needed.\nfix extra space in # include \u003c\u003e statement\n\n[stats.h]\ndoes not need \u003clinux/nfs4.h\u003e but was export to user-mode\nso I don\u0027t touch it\n\n[state.h]\nembedded types from nfsfh.h like struct knfsd_fh. bringing that\neliminates the need for all other includes\n\n[nfsfh.h]\ndirectly manipulating types from sunrpc/svc.h.\nRemoved Other unused headers.\n\n[nfsd.h]\nremoved unused headers include\n\n[export.h]\nlots of sunrpc/svc.h types and a single prototype declaration\nwith pointer from nfsfh.h, but all users of export.h do need\nnfsfh.h any way. remove now un-needed include.\n\n[const.h]\nUnfixed (not independent)\n\n[cache.h]\ncould do with a forward declaration of \"struct svc_rqst;\"\nfrom sunrpc/svc.h but all users absolutely will need\nsunrpc/svc.h it is easier overall this way.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4056c9a344d60ee96471a5f3b0a3c8a90371c8fd",
      "tree": "729ba9795fb48bcc5a2ef01eb420a5d71345388b",
      "parents": [
        "57ecb34febc4c133ca0ccc7817796605a78a01d3"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:28:04 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:08 2009 -0500"
      },
      "message": "nfsd: Remove unused dprintk\n\nThis doesn\u0027t appear to be useful.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\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": "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": "c0826574ddc0df486ecfc2d655e08904c6513209",
      "tree": "2de65b3a490a1ef336073b568f05b8ceb8b9c2d5",
      "parents": [
        "b09333c4644d173d95b8f3fd4f1dc4375d91be2a"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Sep 17 17:03:06 2009 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Sep 17 11:30:32 2009 -0400"
      },
      "message": "nfsd: return success for non-NFS4 nfs4_state_start\n\nToday\u0027s linux-next build (sparc64_defconfig) failed like this:\n\nIn file included from arch/sparc/kernel/sys_sparc32.c:32:\ninclude/linux/nfsd/nfsd.h: In function \u0027nfs4_state_start\u0027:\ninclude/linux/nfsd/nfsd.h:177: error: no return statement in function returning non-void\n\nCaused by commit 29ab23cc5d351658d01a4327d55e9106a73fd04f (\"nfsd4: allow\nnfs4 state startup to fail\").  Please, if you add code that depends on a\nCONFIG option, build with that option enabled and disabled.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\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": "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": "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": "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": "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": "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": "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": "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": "7e0338c0de18c50f09aea1fbef45110cf7d64a3c",
      "tree": "30a935c1f6eee7125a9fbb802a33292b1f7268fa",
      "parents": [
        "df36b439c5fedefe013d4449cb6a50d15e2f4d70",
        "47fcb03fefee2501e79176932a4184fc24d6f8ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 12:55:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 12:55:50 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://fieldses.org/git/linux-nfsd\n\n* \u0027for-2.6.31\u0027 of git://fieldses.org/git/linux-nfsd: (60 commits)\n  SUNRPC: Fix the TCP server\u0027s send buffer accounting\n  nfsd41: Backchannel: minorversion support for the back channel\n  nfsd41: Backchannel: cleanup nfs4.0 callback encode routines\n  nfsd41: Remove ip address collision detection case\n  nfsd: optimise the starting of zero threads when none are running.\n  nfsd: don\u0027t take nfsd_mutex twice when setting number of threads.\n  nfsd41: sanity check client drc maxreqs\n  nfsd41: move channel attributes from nfsd4_session to a nfsd4_channel_attr struct\n  NFS: kill off complicated macro \u0027PROC\u0027\n  sunrpc: potential memory leak in function rdma_read_xdr\n  nfsd: minor nfsd_vfs_write cleanup\n  nfsd: Pull write-gathering code out of nfsd_vfs_write\n  nfsd: track last inode only in use_wgather case\n  sunrpc: align cache_clean work\u0027s timer\n  nfsd: Use write gathering only with NFSv2\n  NFSv4: kill off complicated macro \u0027PROC\u0027\n  NFSv4: do exact check about attribute specified\n  knfsd: remove unreported filehandle stats counters\n  knfsd: fix reply cache memory corruption\n  knfsd: reply cache cleanups\n  ...\n"
    },
    {
      "commit": "ab52ae6db035fa425f90146327ab7d2c5d3e5654",
      "tree": "449acdb98ca035bd57c45b4bd8e89ac04f8ecff7",
      "parents": [
        "ef52bff8409bba78b042f1bcf33a0f49debc9774"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Jun 16 04:20:53 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 18 18:33:57 2009 -0700"
      },
      "message": "nfsd41: Backchannel: minorversion support for the back channel\n\nPrepare to share backchannel code with NFSv4.1.\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[nfsd41: use nfsd4_cb_sequence for callback minorversion]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "301933a0acfdec837fd8b4884093b3f0fff01d8a",
      "tree": "1f2412a30d710493179b1b3743cf30302872df15",
      "parents": [
        "3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8",
        "68f3f90133d56e0c38f04f991e662c2b21592b31"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 17:59:58 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 17:59:58 2009 -0700"
      },
      "message": "Merge commit \u0027linux-pnfs/nfs41-for-2.6.31\u0027 into nfsv41-for-2.6.31\n"
    },
    {
      "commit": "99fe60d062cfecf382c036065b3278b82b6c5eff",
      "tree": "b4451fc4bb42c0915c4f736cc5fdae9e818b55d4",
      "parents": [
        "938e10109115a71cc69d475122f21cf75e5046cd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:29 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:23:57 2009 -0700"
      },
      "message": "nfs41: exchange_id operation\n\nImplement the exchange_id operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nUnlike NFSv4.0, NFSv4.1 requires machine credentials. RPC_AUTH_GSS machine\ncredentials will be passed into the kernel at mount time to be available for\nthe exchange_id operation.\n\nRPC_AUTH_UNIX root mounts can use the UNIX root credential. Store the root\ncredential in the nfs_client struct.\n\nWithout a credential, NFSv4.1 state renewal fails.\n\n[nfs41: establish clientid via exchange id only if cred !\u003d NULL]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: move nfstime4 from under CONFIG_NFS_V4_1]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: do not wait a lease time in exchange id]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: pass *session in seq_args and seq_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[nfs41: Ignoring impid in decode_exchange_id is missing a READ_BUF]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: fix Xcode_exchange_id\u0027s xdr Xcoding pointer type]\n[nfs41: get rid of unused struct nfs41_exchange_id_res members]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "6c18ba9f5e506b8115b89b1aa7bdc25178f40b0a",
      "tree": "12f046162b585649490be390695302bfdce11630",
      "parents": [
        "b9081d90f5b989cd927052084b16b4f950c8c8d7"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "Alexandros.Batsakis@netapp.com",
        "time": "Tue Jun 16 04:19:13 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 16 10:13:45 2009 -0700"
      },
      "message": "nfsd41: move channel attributes from nfsd4_session to a nfsd4_channel_attr struct\n\nthe change is valid for both the forechannel and the backchannel (currently dummy)\n\nSigned-off-by: Alexandros Batsakis \u003cAlexandros.Batsakis@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": "e64c390ca0b60fd2119331ef1fa888d7ea27e424",
      "tree": "f1fc964af0abc20b2325cea513cbafdf09537c39",
      "parents": [
        "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:00:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_parent()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f",
      "tree": "ee26e614577b079102327393832b2ed503a4b527",
      "parents": [
        "5bf3bd2b5cb68ba43c91f5bd0ac043543fba2558"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:42:05 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_get_by_name()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fca4217c5bab31019b5247e977673c9fcc385f6b",
      "tree": "3604e5af28b032a7ec025ddbd65490158a771d60",
      "parents": [
        "dd4dc82d4c129babca9b48b219cff0add5ff4132"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Wed Apr 01 07:28:13 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 14:14:02 2009 -0400"
      },
      "message": "knfsd: reply cache cleanups\n\nMake REQHASH() an inline function.  Rename hash_list to cache_hash.\nFix an obsolete comment.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3aea09dc9106407d8bc18e593fbffda9ad632844",
      "tree": "563b9b3cfbd5203e87b7fea59946729c135de1d3",
      "parents": [
        "6707bd3d420f53ae8f090dac871843f6f43c9980"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 20:11:12 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 20:11:12 2009 -0400"
      },
      "message": "nfsd4: track recall retries in nfs4_delegation\n\nMove this out of a local variable into the nfs4_delegation object in\npreparation for making this an async rpc call (at which point we\u0027ll need\nany state like this in a common object that\u0027s preserved across function\ncalls).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6707bd3d420f53ae8f090dac871843f6f43c9980",
      "tree": "d72d14847fddef8bec160cd15e58d9edb9a9ddd9",
      "parents": [
        "b53d40c5070bffde1b2bcaf848412a50d8894794"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 19:57:46 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 19:57:46 2009 -0400"
      },
      "message": "nfsd4: remove unused dl_trunc\n\nThere\u0027s no point in keeping this field around--it\u0027s always zero.\n\n(Background: the protocol allows you to tell the client that the file is\nabout to be truncated, as an optimization to save the client from\nwriting back dirty pages that will just be discarded.  We don\u0027t\nimplement this hint.  If we do some day, adding this field back in will\nbe the least of the work involved.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b53d40c5070bffde1b2bcaf848412a50d8894794",
      "tree": "3f0e0f62997b437eb03678040393aa5e1fbfd315",
      "parents": [
        "c237dc0303bcf6f4cc2e0efe4fe4e341c6f34dac"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 19:50:00 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 19:50:00 2009 -0400"
      },
      "message": "nfsd4: eliminate struct nfs4_cb_recall\n\nThe nfs4_cb_recall struct is used only in nfs4_delegation, so its\npointer to the containing delegation is unnecessary--we could just use\ncontainer_of().\n\nBut there\u0027s no real reason to have this a separate struct at all--just\nmove these fields to nfs4_delegation.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c237dc0303bcf6f4cc2e0efe4fe4e341c6f34dac",
      "tree": "d314fbccd51967a80f31f62e2467f0936fd096c0",
      "parents": [
        "e300a63ce4ccec073d254d883a3638d5dca1d771"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 19:09:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 17:31:44 2009 -0400"
      },
      "message": "nfsd4: rename callback struct to cb_conn\n\nI want to use the name for a struct that actually does represent a\nsingle callback.\n\n(Actually, I\u0027ve never been sure it helps to a separate struct for the\ncallback information.  Some day maybe those fields could just be dumped\ninto struct nfs4_client.  I don\u0027t know.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3cef9ab266a932899e756f7e1ea7a988a97bf3b2",
      "tree": "a1fff617c936214a9e95bdec760904a28859126b",
      "parents": [
        "ecdd03b7914c91ef849e49c4d466c87f4981b5cd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 23 21:42:10 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 16:45:03 2009 -0400"
      },
      "message": "nfsd4: lookup up callback cred only once\n\nLookup the callback cred once and then use it for all subsequent\ncallbacks.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c654b8a9cba6002aad1c01919e4928a79a4a6dcf",
      "tree": "fee411bb42ec86e72a9e843529551e559c1f2749",
      "parents": [
        "3352d2c2d0540955a7bbb3421a28330af7f9d79c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 16 17:33:25 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 11:35:49 2009 -0400"
      },
      "message": "nfsd: support ext4 i_version\n\next4 supports a real NFSv4 change attribute, which is bumped whenever\nthe ctime would be updated, including times when two updates arrive\nwithin a jiffy of each other.  (Note that although ext4 has space for\nnanosecond-precision ctime, the real resolution is lower: it actually\nuses jiffies as the time-source.)  This ensures clients will invalidate\ntheir caches when they need to.\n\nThere is some fear that keeping the i_version up-to-date could have\nperformance drawbacks, so for now it\u0027s turned on only by a mount option.\nWe hope to do something better eventually.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "04826f43d4f0a4d56423eb8abb9f2ec9987df5b5",
      "tree": "df7248108f29ef3c19e3153e2244ac381cf451be",
      "parents": [
        "f0ad670d7061efad138df19aefe569263c4ea37b"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Apr 06 12:00:49 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 06 09:48:20 2009 -0700"
      },
      "message": "nfsd41: define nfsd4_set_statp as noop for !CONFIG_NFSD_V4\n\nFixes following modpost error:\nERROR: \"nfsd4_set_statp\" [fs/nfsd/nfsd.ko] undefined!\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f0ad670d7061efad138df19aefe569263c4ea37b",
      "tree": "d68d7a2deb01814aa5c8e1d32b867010a3284bd2",
      "parents": [
        "3ef1728898f0285c13aa6901f412b52835e23578"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Apr 06 12:00:36 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 06 09:17:53 2009 -0700"
      },
      "message": "nfsd41: define NFSD_DRC_SIZE_SHIFT in set_max_drc\n\nFixes the following compiler error:\nfs/nfsd/nfssvc.c: In function \u0027set_max_drc\u0027:\nfs/nfsd/nfssvc.c:240: error: \u0027NFSD_DRC_SIZE_SHIFT\u0027 undeclared\n\nCONFIG_NFSD_V4 is not set\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "79fb54abd285b442e1f30f851902f3ddf58e7704",
      "tree": "93c8278368e7f6328e1cfa695ce96d5c95f3e338",
      "parents": [
        "8c18f2052e756e7d5dea712fc6e7ed70c00e8a39"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:17 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:23 2009 -0700"
      },
      "message": "nfsd41: CREATE_EXCLUSIVE4_1\n\nImplement the CREATE_EXCLUSIVE4_1 open mode conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nThis mode allows the client to atomically create a file\nif it doesn\u0027t exist while setting some of its attributes.\n\nIt must be implemented if the server supports persistent\nreply cache and/or pnfs.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8c18f2052e756e7d5dea712fc6e7ed70c00e8a39",
      "tree": "66762e98af4caa4774b8229fb6fd007fccaab74e",
      "parents": [
        "7e70570647827345352cf6c17461c9fa166f570a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:14 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:23 2009 -0700"
      },
      "message": "nfsd41: SUPPATTR_EXCLCREAT attribute\n\nReturn bitmask for supported EXCLUSIVE4_1 create attributes.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7e70570647827345352cf6c17461c9fa166f570a",
      "tree": "a200662bb68cd9a1396c365a47b50e46f0ea9f73",
      "parents": [
        "95ec28cda323104bbff64fc7ec8ee4c9042e51fa"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:29:11 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:23 2009 -0700"
      },
      "message": "nfsd41: support for 3-word long attribute bitmask\n\nAlso, use client minorversion to generate supported attrs\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f3ec22b5b0b4b220ee600bf1a8b6dc045b4e72bd",
      "tree": "8cd3459e082c3ae0422d5ba0ed12716f52df3054",
      "parents": [
        "8daf220a6a83c47b9648c28bb819c14c60bad7f9"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:29:02 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:22 2009 -0700"
      },
      "message": "nfsd41: provide support for minor version 1 at rpc level\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8daf220a6a83c47b9648c28bb819c14c60bad7f9",
      "tree": "e762cf2c8f0b31dac96989ac14c4cc8756e1af1d",
      "parents": [
        "84459a1162801fb84734e5f9e6dc5194f791d69b"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:59 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:21 2009 -0700"
      },
      "message": "nfsd41: control nfsv4.1 svc via /proc/fs/nfsd/versions\n\nSupport enabling and disabling nfsv4.1 via /proc/fs/nfsd/versions\nby writing the strings \"+4.1\" or \"-4.1\" correspondingly.\n\nUse user mode nfs-utils (rpc.nfsd option) to enable.\nThis will allow us to get rid of CONFIG_NFSD_V4_1\n\n[nfsd41: disable support for minorversion by default]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d87a8ade95288f28c729e076cd74929f3f199b6c",
      "tree": "700a10f87def9db1c9657f2f7a61286bc06c8d03",
      "parents": [
        "60adfc50de3855628dea8f8896a65f471f51301c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:53 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:21 2009 -0700"
      },
      "message": "nfsd41: access_valid\n\nFor nfs41, the open share flags are used also for\ndelegation \"wants\" and \"signals\".  Check that they are valid.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6668958fac1d05f55420de702f3678d46c1e93a5",
      "tree": "2ee7fe01bb6720ecb1147c5c7f7e3d0289fc71bb",
      "parents": [
        "dd453dfd70538cadc02cb47ff8d8cfd0cb8cf435"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:45 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: stateid handling\n\nWhen sessions are used, stateful operation sequenceid and stateid handling\nare not used. When sessions are used,  on the first open set the seqid to 1,\nmark state confirmed and skip seqid processing.\n\nWhen sessionas are used the stateid generation number is ignored when it is zero\nwhereas without sessions bad_stateid or stale stateid is returned.\n\nAdd flags to propagate session use to all stateful ops and down to\ncheck_stateid_generation.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfsd4_has_session should return a boolean, not u32]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: pass nfsd4_compoundres * to nfsd4_process_open1]\n[nfsd41: calculate HAS_SESSION in nfs4_preprocess_stateid_op]\n[nfsd41: calculate HAS_SESSION in nfs4_preprocess_seqid_op]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dd453dfd70538cadc02cb47ff8d8cfd0cb8cf435",
      "tree": "c55174fec4f6c7ddd803a598bcd755ec87e7ff0e",
      "parents": [
        "e10e0cfc2f27364c73b28adbd3c8688d97049e73"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:41 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op\n\nCurrently we only use cstate-\u003ecurrent_fh,\nwill also be used by nfsd41 code.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e10e0cfc2f27364c73b28adbd3c8688d97049e73",
      "tree": "bc674e4140ea34b7893c14425ad43a930655743c",
      "parents": [
        "bf864a31d50e3e94d6e76537b97d664913906ff8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:38 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: destroy_session operation\n\nImplement the destory_session operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\n[use sessionid_lock spin lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bf864a31d50e3e94d6e76537b97d664913906ff8",
      "tree": "8de829d0cdc0c88fe523fc4a288b8e16eedc6a2e",
      "parents": [
        "38eb76a54d803e6792816623651b1a9cb85f8d01"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:35 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: non-page DRC for solo sequence responses\n\nA session inactivity time compound (lease renewal) or a compound where the\nsequence operation has sa_cachethis set to FALSE do not require any pages\nto be held in the v4.1 DRC. This is because struct nfsd4_slot is already\ncaching the session information.\n\nAdd logic to the nfs41 server to not cache response pages for solo sequence\nresponses.\n\nReturn nfserr_replay_uncached_rep on the operation following the sequence\noperation when sa_cachethis is FALSE.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfsd4_replay_cache_entry]\n[nfsd41: rename nfsd4_no_page_in_cache]\n[nfsd41 rename nfsd4_enc_no_page_replay]\n[nfsd41 nfsd4_is_solo_sequence]\n[nfsd41 change nfsd4_not_cached return]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[changed return type to bool]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 drop parens in nfsd4_is_solo_sequence call]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[changed \"\u003d\u003d 0\" to \"!\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "38eb76a54d803e6792816623651b1a9cb85f8d01",
      "tree": "090f34b2d92bd92637dabf0fc287cbf544c0cb38",
      "parents": [
        "ec6b5d7b5064fde27aee798b81107ea3a830de85"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:32 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: Add a create session replay cache\n\nReplace the nfs4_client cl_seqid field with a single struct nfs41_slot used\nfor the create session replay cache.\n\nThe CREATE_SESSION slot sets the sl_session pointer to NULL. Otherwise, the\nslot and it\u0027s replay cache are used just like the session slots.\n\nFix unconfirmed create_session replay response by initializing the\ncreate_session slot sequence id to 0.\n\nA future patch will set the CREATE_SESSION cache when a SEQUENCE operation\npreceeds the CREATE_SESSION operation. This compound is currently only cached\nin the session slot table.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: revert portion of nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netpp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ec6b5d7b5064fde27aee798b81107ea3a830de85",
      "tree": "de1571b6773201268796fe5bf3db9bb0f8d23812",
      "parents": [
        "14778a133e3be332be77d981552a79260a61ee17"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:28 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: create_session operation\n\nImplement the create_session operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nLook up the client id (generated by the server on exchange_id,\ngiven by the client on create_session).\nIf neither a confirmed or unconfirmed client is found\nthen the client id is stale\nIf a confirmed cilent is found (i.e. we already received\ncreate_session for it) then compare the sequence id\nto determine if it\u0027s a replay or possibly a mis-ordered rpc.\nIf the seqid is in order, update the confirmed client seqid\nand procedd with updating the session parameters.\n\nIf an unconfirmed client_id is found then verify the creds\nand seqid.  If both match move the client id to confirmed state\nand proceed with processing the create_session.\n\nCurrently, we do not support persistent sessions, and RDMA.\n\nalloc_init_session generates a new sessionid and creates\na session structure.\n\nNFSD_PAGES_PER_SLOT is used for the max response cached calculation, and for\nthe counting of DRC pages using the hard limits set in struct srv_serv.\n\nA note on NFSD_PAGES_PER_SLOT:\n\nOther patches in this series allow for NFSD_PAGES_PER_SLOT + 1 pages to be\ncached in a DRC slot when the response size is less than NFSD_PAGES_PER_SLOT *\nPAGE_SIZE but xdr_buf pages are used. e.g. a READDIR operation will encode a\nsmall amount of data in the xdr_buf head, and then the READDIR in the xdr_buf\npages.  So, the hard limit calculation use of pages by a session is\nunderestimated by the number of cached operations using the xdr_buf pages.\n\nYet another patch caches no pages for the solo sequence operation, or any\ncompound where cache_this is False.  So the hard limit calculation use of\npages by a session is overestimated by the number of these operations in the\ncache.\n\nTODO: improve resource pre-allocation and negotiate session\nparameters accordingly.  Respect and possibly adjust\nbackchannel attributes.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\n[nfsd41: remove headerpadsz from channel attributes]\nOur client and server only support a headerpadsz of 0.\n[nfsd41: use DRC limits in fore channel init]\n[nfsd41: do not change CREATE_SESSION back channel attrs]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[use sessionid_lock spin lock]\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from alloc_init_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[simplify nfsd4_encode_create_session error handling]\n[nfsd41: fix comment style in init_forechannel_attrs]\n[nfsd41: allocate struct nfsd4_session and slot table in one piece]\n[nfsd41: no need to INIT_LIST_HEAD in alloc_init_session just prior to list_add]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "da3846a2866ddf239311766ff434a82e7b4ac701",
      "tree": "c40d6c1754999f1f572f12c4fa68f281a93b040c",
      "parents": [
        "c3d06f9ce8544fecfe13e377d1e2c2e47fe18dbc"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:22 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: nfsd DRC logic\n\nReplay a request in nfsd4_sequence.\nAdd a minorversion to struct nfsd4_compound_state.\n\nPass the current slot to nfs4svc_encode_compound res via struct\nnfsd4_compoundres to set an NFSv4.1 DRC entry.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfs4svc_encode_compoundres]\n[nfsd41 replace nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@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": "c3d06f9ce8544fecfe13e377d1e2c2e47fe18dbc",
      "tree": "f34acde5f484a8374065295e205921e1860da65c",
      "parents": [
        "074fe897536f095309c5aaffcf912952882ab2cb"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:18 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: hard page limit for DRC\n\nUse no more than 1/128th of the number of free pages at nfsd startup for the\nv4.1 DRC.\n\nThis is an arbitrary default which should probably end up under the control\nof an administrator.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[moved added fields in struct svc_serv under CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[fix set_max_drc calculation of sv_drc_max_pages]\n[moved NFSD_DRC_SIZE_SHIFT\u0027s declaration up in header file]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "074fe897536f095309c5aaffcf912952882ab2cb",
      "tree": "d4bb2fff645a2df1dbdec4af6787359d888a3695",
      "parents": [
        "f9bb94c4c60f6e1d1717077bfddb614f03a607d1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:15 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: DRC save, restore, and clear functions\n\nCache all the result pages, including the rpc header in rq_respages[0],\nfor a request in the slot table cache entry.\n\nCache the statp pointer from nfsd_dispatch which points into rq_respages[0]\njust past the rpc header. When setting a cache entry, calculate and save the\nlength of the nfs data minus the rpc header for rq_respages[0].\n\nWhen replaying a cache entry, replace the cached rpc header with the\nreplayed request rpc result header, unless there is not enough room in the\ncached results first page. In that case, use the cached rpc header.\n\nThe sessions fore channel maxresponse size cached is set to NFSD_PAGES_PER_SLOT\n* PAGE_SIZE. For compounds we are cacheing with operations such as READDIR\nthat use the xdr_buf-\u003epages to hold data, we choose to cache the extra page of\ndata rather than copying data from xdr_buf-\u003epages into the xdr_buf-\u003ehead page.\n\n[nfsd41: limit cache to maxresponsesize_cached]\n[nfsd41: mv nfsd4_set_statp under CONFIG_NFSD_V4_1]\n[nfsd41: rename nfsd4_move_pages]\n[nfsd41: rename page_no variable]\n[nfsd41: rename nfsd4_set_cache_entry]\n[nfsd41: fix nfsd41_copy_replay_data comment]\n[nfsd41: add to nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@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": "b85d4c01b76f6969a085d07a767fa45225cb14be",
      "tree": "5441d0f6bcec52fab3b81ad4887239ff784c5ad9",
      "parents": [
        "a1bcecd29cdf1670df6908a620add4211c0abb7a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:08 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:16 2009 -0700"
      },
      "message": "nfsd41: sequence operation\n\nImplement the sequence operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nCheck for stale clientid (as derived from the sessionid).\nEnforce slotid range and exactly-once semantics using\nthe slotid and seqid.\n\nIf everything went well renew the client lease and\nmark the slot INPROGRESS.\n\nAdd a struct nfsd4_slot pointer to struct nfsd4_compound_state.\nTo be used for sessions DRC replay.\n\n[nfsd41: rename sequence catchthis to cachethis]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\n[pulled some code to set cstate-\u003eslot from \"nfsd DRC logic\"]\n[use sessionid_lock spin lock]\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd: add a struct nfsd4_slot pointer to struct nfsd4_compound_state]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: add nfsd4_session pointer to nfsd4_compound_state]\n[nfsd41: set cstate session]\n[nfsd41: use cstate session in nfsd4_sequence]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[simplify nfsd4_encode_sequence error handling]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a1bcecd29cdf1670df6908a620add4211c0abb7a",
      "tree": "a4323b21675db5a47a45f5d292fef468b9786007",
      "parents": [
        "0733d21338747483985a5964e852af160d88e429"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:05 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:15 2009 -0700"
      },
      "message": "nfsd41: match clientid establishment method\n\nWe need to distinguish between client names provided by NFSv4.0 clients\nSETCLIENTID and those provided by NFSv4.1 via EXCHANGE_ID when looking\nup the clientid by string.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfsd41: use boolean values for use_exchange_id argument]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: simplify match_clientid_establishment logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0733d21338747483985a5964e852af160d88e429",
      "tree": "fb8014cc66d3bfc33e1b7cc6a0da369bccc34cd3",
      "parents": [
        "069b6ad4bb20abf175ea7875e82e8002154773af"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:01 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:15 2009 -0700"
      },
      "message": "nfsd41: exchange_id operation\n\nImplement the exchange_id operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-28\n\nBased on the client provided name, hash a client id.\nIf a confirmed one is found, compare the op\u0027s creds and\nverifier.  If the creds match and the verifier is different\nthen expire the old client (client re-incarnated), otherwise,\nif both match, assume it\u0027s a replay and ignore it.\n\nIf an unconfirmed client is found, then copy the new creds\nand verifer if need update, otherwise assume replay.\n\nThe client is moved to a confirmed state on create_session.\n\nIn the nfs41 branch set the exchange_id flags to\nEXCHGID4_FLAG_USE_NON_PNFS | EXCHGID4_FLAG_SUPP_MOVED_REFER\n(pNFS is not supported, Referrals are supported,\nMigration is not.).\n\nAddress various scenarios from section 18.35 of the spec:\n\n1. Check for EXCHGID4_FLAG_UPD_CONFIRMED_REC_A and set\n   EXCHGID4_FLAG_CONFIRMED_R as appropriate.\n\n2. Return error codes per 18.35.4 scenarios.\n\n3. Update client records or generate new client ids depending on\n   scenario.\n\nNote: 18.35.4 case 3 probably still needs revisiting.  The handling\nseems not quite right.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamosn \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use utsname for major_id (and copy to server_scope)]\n[nfsd41: fix handling of various exchange id scenarios]\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: reverse use of EXCHGID4_INVAL_FLAG_MASK_A]\n[simplify nfsd4_encode_exchange_id error handling]\n[nfsd41: embed an xdr_netobj in nfsd4_exchange_id]\n[nfsd41: return nfserr_serverfault for spa_how \u003d\u003d SP4_MACH_CRED]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "069b6ad4bb20abf175ea7875e82e8002154773af",
      "tree": "e3a933d4c7f0444d29f9266fc5aa77f6e87f5a69",
      "parents": [
        "2db134eb3b39faefc7fbfb200156d175edba2f68"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:58 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: proc stubs\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2db134eb3b39faefc7fbfb200156d175edba2f68",
      "tree": "dd07afee13667410cb64dba1de3a80c54d1bd989",
      "parents": [
        "5282fd724b667b7d65f2e41e405a825e58a78813"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:55 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: xdr infrastructure\n\nDefine nfsd41_dec_ops vector and add it to nfsd4_minorversion for\nminorversion 1.\n\nNote: nfsd4_enc_ops vector is shared for v4.0 and v4.1\nsince we don\u0027t need to filter out obsolete ops as this is\ndone in the decoding phase.\n\nexchange_id, create_session, destroy_session, and sequence ops are\nimplemented as stubs returning nfserr_opnotsupp at this stage.\n\n[was nfsd41: xdr stubs]\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5282fd724b667b7d65f2e41e405a825e58a78813",
      "tree": "6603d2895c789db0e2244e9966f3a2246a6addb9",
      "parents": [
        "c4bf7868064ce8b9c75d8049d077e593c20602b3"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:52 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: sessionid hashing\n\nSimple sessionid hashing using its monotonically increasing sequence number.\n\nLocking considerations:\nsessionid_hashtbl access is controlled by the sessionid_lock spin lock.\nIt must be taken for insert, delete, and lookup.\nnfsd4_sequence looks up the session id and if the session is found,\nit calls nfsd4_get_session (still under the sessionid_lock).\nnfsd4_destroy_session calls nfsd4_put_session after unhashing\nit, so when the session\u0027s kref reaches zero it\u0027s going to get freed.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[we don\u0027t use a prime for sessionid hash table size]\n[use sessionid_lock spin lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9fb870702d02c05f9410423bfff3f63e46e26180",
      "tree": "849fd556192da4b34cc872a36f8ad415e87775c6",
      "parents": [
        "7116ed6b9973021ff43edeb10f4cb834db94000f"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:46 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: introduce nfs4_client cl_sessions list\n\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7116ed6b9973021ff43edeb10f4cb834db94000f",
      "tree": "fb47a0d182cbf2afb87f482ac03d1a1763f8ee3b",
      "parents": [
        "10add806c38c022d18af48f3ec28c91b4eaf7bb3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:43 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: sessions basic data types\n\nThis patch provides basic data structures representing the nfs41\nsessions and slots, plus helpers for keeping a reference count\non the session and freeing it.\n\nNote that our server only support a headerpadsz of 0 and\nit ignores backchannel attributes at the moment.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: remove headerpadsz from channel attributes]\n[nfsd41: embed nfsd4_channel in nfsd4_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from nfsd4_slot]\nSigned-off-by: Andy Adamson \u003candros@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": "10add806c38c022d18af48f3ec28c91b4eaf7bb3",
      "tree": "d0d141a89d5eac49e337021e1d6d9c451cc4e896",
      "parents": [
        "18df1884a872a2cc405a578cfd0d3adc8d227277"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:40 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:12 2009 -0700"
      },
      "message": "nfsd41: define nfs41 error codes\n\nDefine all error code present in\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-29.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: clean up error code definitions]\n[nfsd41: change NFSERR_REPLAY_ME]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e354d571bb481f1d71f2c3004b9ff570b32e83bd",
      "tree": "f55f172d7412c0853187f8cb3c2e1a9fdce4d411",
      "parents": [
        "42d671c78f6486c932b68a50f88768c7b4e57ebf"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Sat Mar 28 11:30:52 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Mar 29 16:20:12 2009 -0400"
      },
      "message": "nfsd: embed nfsd4_current_state in nfsd4_compoundres\n\nRemove the allocation of struct nfsd4_compound_state.\n\nSigned-off-by: Andy Adamson \u003candros@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": "42d671c78f6486c932b68a50f88768c7b4e57ebf",
      "tree": "092d5bb768f86235be43fd5cbf4bfd114680ac2f",
      "parents": [
        "b5cbc369db39d9080f4932db8607aea1e1654d4d"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Fri Mar 27 02:32:47 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Mar 27 19:48:36 2009 -0400"
      },
      "message": "Fix a build warning about leaking CONFIG_NFSD to userspace.\n\nFix a build warning about leaking CONFIG_NFSD to userspace.\n\nThe nfsd_stats data structure does not need to be available to\nuserspace; no kernel interface uses it.  So move it inside #ifdef\n__KERNEL__ and the warning goes away.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "31dec2538e45e9fff2007ea1f4c6bae9f78db724",
      "tree": "c2b42679c73c1c6f31312f38a1b1d049e918d635",
      "parents": [
        "1e685ec270cb97680be4eb8cf6b615f5f7f1403a"
      ],
      "author": {
        "name": "David Shaw",
        "email": "dshaw@jabberwocky.com",
        "time": "Thu Mar 05 20:16:14 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:40 2009 -0400"
      },
      "message": "Short write in nfsd becomes a full write to the client\n\nIf a filesystem being written to via NFS returns a short write count\n(as opposed to an error) to nfsd, nfsd treats that as a success for\nthe entire write, rather than the short count that actually succeeded.\n\nFor example, given a 8192 byte write, if the underlying filesystem\nonly writes 4096 bytes, nfsd will ack back to the nfs client that all\n8192 bytes were written.  The nfs client does have retry logic for\nshort writes, but this is never called as the client is told the\ncomplete write succeeded.\n\nThere are probably other ways it could happen, but in my case it\nhappened with a fuse (filesystem in userspace) filesystem which can\nrather easily have a partial write.\n\nHere is a patch to properly return the short write count to the\nclient.\n\nSigned-off-by: David Shaw \u003cdshaw@jabberwocky.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8b671b80707e4fc76adfe4387df07b3be1007c1e",
      "tree": "d9dafb3a1174dfeb84f72ba56a04625204aab415",
      "parents": [
        "d7fdcfe0aaaf6dffca6fa857bab374182fe7ca8b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 14:51:34 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: remove use of mutex for file_hashtable\n\nAs part of reducing the scope of the client_mutex, and in order to\nremove the need for mutexes from the callback code (so that callbacks\ncan be done as asynchronous rpc calls), move manipulations of the\nfile_hashtable under the recall_lock.\n\nUpdate the relevant comments while we\u0027re here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "6150ef0dc7f734366d297e2eb5697ae458a1ea19",
      "tree": "0a11653b66953b808d2a1a98dc8da0f649c875f3",
      "parents": [
        "7e0f7cf582abd6c85232331dfe726a4e4b0fd98e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:36:16 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:37 2009 -0400"
      },
      "message": "nfsd4: remove unused CHECK_FH flag\n\nAll users now pass this, so it\u0027s meaningless.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "203a8c8e66278a5936a230edaac29017e50c88fb",
      "tree": "93165a85d0ff93271f23f2a753c93d0df754d138",
      "parents": [
        "3e633079e377d2b527a8390f63ceb887b5cabfbf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:29:14 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:18 2009 -0400"
      },
      "message": "nfsd4: separate delegreturn case from preprocess_stateid_op\n\nDelegreturn is enough a special case for preprocess_stateid_op to\nwarrant just open-coding it in delegreturn.\n\nThere should be no change in behavior here; we\u0027re just reshuffling code.\n\nThanks to Yang Hongyang for catching a critical typo.\n\nReviewed-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "77f18f5e4ebdea35ec3d92343b0ed7546dc87637",
      "tree": "dd9a97818130a8596b1833c82a625b3ed9cf9186",
      "parents": [
        "4ac35c2f794503d3acda20d98e89cf63f6e94332"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 11 17:16:58 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:51 2009 -0400"
      },
      "message": "nfs: replace uses of __constant_{endian}\n\nThe base versions handle constant folding now, none of these headers\nare exported to userspace, so the __ prefixed versions are not\nnecessary.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6c02eaa1d1e53b9b2cc27d0c6fff3e57da4b611f",
      "tree": "af558f47858043d7c326c5b3d889c9447e65aaac",
      "parents": [
        "a4773c08f2872626cb923433284488fbe8acb0ae"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:30:51 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying delegation filehandle\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a4773c08f2872626cb923433284488fbe8acb0ae",
      "tree": "772342b775cef615b19060158900981e0985ff9f",
      "parents": [
        "13024b7b4097d33fe6bba34b1c83602e88753270"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:23:10 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying filehandles for replay\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03cf1e0c3b4ee4ef51dc7eb197a4d098ad4873af",
      "tree": "9cd4dc8f105e9174e627552dfc84445d4692297a",
      "parents": [
        "9e87b1e53f3c72c1196dc22cb359b5d6188a3729"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Fri Jan 30 20:05:27 2009 +0530"
      },
      "committer": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Fri Jan 30 23:30:42 2009 +0530"
      },
      "message": "headers_check fix: nfsd/syscall.h\n\nfix the following \u0027make headers_check\u0027 warnings:\n\n  usr/include/linux/nfsd/syscall.h:12: include of \u003clinux/types.h\u003e is preferred over \u003casm/types.h\u003e\n  usr/include/linux/nfsd/syscall.h:104: found __[us]{8,16,32,64} type without #include \u003clinux/types.h\u003e\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\n"
    },
    {
      "commit": "9e87b1e53f3c72c1196dc22cb359b5d6188a3729",
      "tree": "52379cb02346b408c49a627369b9e939f05e5249",
      "parents": [
        "3187cedf158687432cdf152eeee205f7b149f4ef"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Fri Jan 30 20:04:03 2009 +0530"
      },
      "committer": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Fri Jan 30 20:04:03 2009 +0530"
      },
      "message": "headers_check fix: nfsd/nfsfh.h\n\nfix the following \u0027make headers_check\u0027 warnings:\n\n  usr/include/linux/nfsd/nfsfh.h:17: include of \u003clinux/types.h\u003e is preferred over \u003casm/types.h\u003e\n  usr/include/linux/nfsd/nfsfh.h:28: found __[us]{8,16,32,64} type without #include \u003clinux/types.h\u003e\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\n"
    }
  ],
  "next": "3187cedf158687432cdf152eeee205f7b149f4ef"
}
