)]}'
{
  "log": [
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a87e84b5cdfacf11af4e8a85c4bca9793658536f",
      "tree": "f8e3cb2d339d8ed0e987d55f725e501730cdc81d",
      "parents": [
        "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
        "3c394ddaa7ea4205f933fd9b481166b2669368a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux: (68 commits)\n  nfsd4: nfsv4 clients should cross mountpoints\n  nfsd: revise 4.1 status documentation\n  sunrpc/cache: avoid variable over-loading in cache_defer_req\n  sunrpc/cache: use list_del_init for the list_head entries in cache_deferred_req\n  nfsd: return success for non-NFS4 nfs4_state_start\n  nfsd41: Refactor create_client()\n  nfsd41: modify nfsd4.1 backchannel to use new xprt class\n  nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n  nfsd41: Backchannel: cb_sequence callback\n  nfsd41: Backchannel: Setup sequence information\n  nfsd41: Backchannel: Server backchannel RPC wait queue\n  nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n  nfsd41: Backchannel: callback infrastructure\n  nfsd4: use common rpc_cred for all callbacks\n  nfsd4: allow nfs4 state startup to fail\n  SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous\n  nfsd4: fix null dereference creating nfsv4 callback client\n  nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n  nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n  sunrpc/cache: simplify cache_fresh_locked and cache_fresh_unlocked.\n  ...\n"
    },
    {
      "commit": "7b021967c5e1463936042c8da72b550d3cabe9ac",
      "tree": "efb5c26216851a93b3db3fba55858af04c8a15c5",
      "parents": [
        "6aed62853c72e29f2c97bbac7712cb398e8c9437"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make lock_manager_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c394ddaa7ea4205f933fd9b481166b2669368a9",
      "tree": "6c1cfe2fefe0959c4eeb5b43e1c9f151ee1e2df3",
      "parents": [
        "285a0f00c27a02f1223a198c88de2130e9bab059"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 15:02:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 21 16:02:25 2009 -0400"
      },
      "message": "nfsd4: nfsv4 clients should cross mountpoints\n\nAllow NFS v4 clients to seamlessly cross mount point without\nhave to set either the \u0027crossmnt\u0027 or the \u0027nohide\u0027 export\noptions.\n\nSigned-Off-By: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b09333c4644d173d95b8f3fd4f1dc4375d91be2a",
      "tree": "221ff0f07f8845775e550282e26abbc60773ee35",
      "parents": [
        "3ddc8bf5f31c906c558ce3da4856208a864d2fc1"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:27:34 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:52:13 2009 -0400"
      },
      "message": "nfsd41: Refactor create_client()\n\nMove common initialization of \u0027struct nfs4_client\u0027 inside create_client().\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n\n[nfsd41: Remember the auth flavor to use for callbacks]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ddc8bf5f31c906c558ce3da4856208a864d2fc1",
      "tree": "dc0e56c769fee36ea66b724826d6112382e22bb3",
      "parents": [
        "0421b5c55acd0e88920cb9a5bcea6ed738186853"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Thu Sep 10 12:27:21 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:52:13 2009 -0400"
      },
      "message": "nfsd41: modify nfsd4.1 backchannel to use new xprt class\n\nThis patch enables the use of the nfsv4.1 backchannel.\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n[initialize rpc_create_args.bc_xprt too]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0421b5c55acd0e88920cb9a5bcea6ed738186853",
      "tree": "d19e8b22635ba8caa36d9ac1cddf6ab3176c7fb7",
      "parents": [
        "2af73580b7d7b687175f47ba092640761602b221"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:27:04 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:52:12 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[nfsd41: cb_recall callback]\n[Share v4.0 and v4.1 back channel xdr]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Share v4.0 and v4.1 back channel xdr]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use nfsd4_cb_sequence for callback minorversion]\n[nfsd41: conditionally decode_sequence in nfs4_xdr_dec_cb_recall]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Backchannel: Add sequence arguments to callback RPC arguments]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[pulled-in definition of nfsd4_cb_done]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2af73580b7d7b687175f47ba092640761602b221",
      "tree": "6136af3800ff00204b8a07b4f7b07472b8b06206",
      "parents": [
        "2a1d1b593803d7c18a369bf148f3b48c5a3260fc"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Sep 10 12:26:51 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:56 2009 -0400"
      },
      "message": "nfsd41: Backchannel: cb_sequence callback\n\nImplement the cb_sequence callback conforming to draft-ietf-nfsv4-minorversion1\n\nNote: highest slot id and target highest slot id do not have to be 0\nas was previously implemented.  They can be greater than what the\nnfs server sent if the client supports a larger slot table on the\nbackchannel.  At this point we just ignore that.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[Rework the back channel xdr using the shared v4.0 and v4.1 framework.]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[fixed indentation]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use nfsd4_cb_sequence for callback minorversion]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: fix verification of CB_SEQUENCE highest slot id[\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Backchannel: Remove old backchannel serialization]\n[nfsd41: Backchannel: First callback sequence ID should be 1]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: decode_cb_sequence does not need to actually decode ignored fields]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2a1d1b593803d7c18a369bf148f3b48c5a3260fc",
      "tree": "40cd8e5498ad680eec740923d512c0bf5fe114b3",
      "parents": [
        "199ff35e1c8724871e157c2e48556c2794946e82"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:26:38 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:56 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Setup sequence information\n\nFollows the model used by the NFS client.  Setup the RPC prepare and done\nfunction pointers so that we can populate the sequence information if\nminorversion \u003d\u003d 1.  rpc_run_task() is then invoked directly just like\nexisting NFS client operations do.\n\nnfsd4_cb_prepare() determines if the sequence information needs to be setup.\nIf the slot is in use, it adds itself to the wait queue.\n\nnfsd4_cb_done() wakes anyone sleeping on the callback channel wait queue\nafter our RPC reply has been received.  It also sets the task message\nresult pointer to NULL to clearly indicate we\u0027re done using it.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[define and initialize cl_cb_seq_nr here]\n[pulled out unused defintion of nfsd4_cb_done]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "199ff35e1c8724871e157c2e48556c2794946e82",
      "tree": "18bcf50bef1ad405013e4da1c1d76c9d153f153a",
      "parents": [
        "132f97715c098393fb8de3c26b07b9fdbd2334f1"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:26:25 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:55 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Server backchannel RPC wait queue\n\nRPC callback requests will wait on this wait queue if the backchannel\nis out of slots.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "132f97715c098393fb8de3c26b07b9fdbd2334f1",
      "tree": "293a4cfc826e8597aeafcb64e8452a57fea25f08",
      "parents": [
        "38524ab38f2752beee262a97403d871665838172"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Thu Sep 10 12:26:12 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:55 2009 -0400"
      },
      "message": "nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n\nFollow the model we use in the client. Make the sequence arguments\npart of the regular RPC arguments.  None of the callbacks that are\nsoon to be implemented expect results that need to be passed back\nto the caller, so we don\u0027t define a separate RPC results structure.\nFor session validation, the cb_sequence decoding will use a pointer\nto the sequence arguments that are part of the RPC argument.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[define struct nfsd4_cb_sequence here]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "38524ab38f2752beee262a97403d871665838172",
      "tree": "cbccd7de004d2ad437bd514fc3baefefd6a711f5",
      "parents": [
        "80fc015bdfe1f5b870c1e1ee02d78e709523fee7"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Sep 10 12:25:59 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:55 2009 -0400"
      },
      "message": "nfsd41: Backchannel: callback infrastructure\n\nKeep the xprt used for create_session in cl_cb_xprt.\nMark cl_callback.cb_minorversion \u003d 1 and remember\nthe client provided cl_callback.cb_prog rpc program number.\nUse it to probe the callback path.\n\nUse the client\u0027s network address to initialize as the\ncallback\u0027s address as expected by the xprt creation\nroutines.\n\nDefine xdr sizes and code nfs4_cb_compound header to be able\nto send a null callback rpc.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\n[get callback minorversion from fore channel\u0027s]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: change bc_sock to bc_xprt]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pulled definition for cl_cb_xprt]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: set up backchannel\u0027s cb_addr]\n[moved rpc_create_args init to \"nfsd: modify nfsd4.1 backchannel to use new xprt class\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "80fc015bdfe1f5b870c1e1ee02d78e709523fee7",
      "tree": "f56fd466add111a4c6bcc29d127325e3e77b4669",
      "parents": [
        "29ab23cc5d351658d01a4327d55e9106a73fd04f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 18:07:35 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:34 2009 -0400"
      },
      "message": "nfsd4: use common rpc_cred for all callbacks\n\nCallbacks are always made using the machine\u0027s identity, so we can use a\nsingle auth_generic credential shared among callbacks to all clients and\nlet the rpc code take care of the rest.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "29ab23cc5d351658d01a4327d55e9106a73fd04f",
      "tree": "8df00000a93e783f4bc152c20a437338a4f57fde",
      "parents": [
        "5d351754fcf58d1a604aa7cf95c2805e8a098ad9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 15:56:50 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:33 2009 -0400"
      },
      "message": "nfsd4: allow nfs4 state startup to fail\n\nThe failure here is pretty unlikely, but we should handle it anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "886e3b7fe6054230c89ae078a09565ed183ecc73",
      "tree": "95978914331e3b9f4e2f22f7c645ec039f6d77aa",
      "parents": [
        "4be36ca0cefc09725f52a9590d061399d3e524d7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 12:22:42 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 15 20:49:33 2009 -0400"
      },
      "message": "nfsd4: fix null dereference creating nfsv4 callback client\n\nOn setting up the callback to the client, we attempt to use the same\nauthentication flavor the client did.  We find an rpc cred to use by\ncalling rpcauth_lookup_credcache(), which assumes that the given\nauthentication flavor has a credentials cache.  However, this is not\nrequired to be true--in particular, auth_null does not use one.\nInstead, we should call the auth\u0027s lookup_cred() method.\n\nWithout this, a client attempting to mount using nfsv4 and auth_null\ntriggers a null dereference.\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4be36ca0cefc09725f52a9590d061399d3e524d7",
      "tree": "00390a68d17ee182f5663eb2337ba56804d44a76",
      "parents": [
        "f300baba5a1536070d6d77bf0c8c4ca999bb4f0f"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Sep 10 12:25:46 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Sep 13 15:57:39 2009 -0400"
      },
      "message": "nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ab3bbaa8b257845e248e9a01d12a69ca245f4197",
      "tree": "f3054be9bd612194826ed6969d01346d329c3306",
      "parents": [
        "332a3392188e0ad966543c87b8da2b9d246f301d",
        "2ecda72b49a0849ce41e7fa1fa974a245b9119f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027\n"
    },
    {
      "commit": "aed100fafb90aaabe8fb31e58af9dc7e68696507",
      "tree": "2567f2aa9f0bac26910e6d2910fbdd044a5ab8e2",
      "parents": [
        "8177e6d6dfb9cd03d9bdeb647c32161f8f58f686"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 14:40:36 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 15:48:00 2009 -0400"
      },
      "message": "nfsd: fix leak on error in nfsv3 readdir\n\nNote the !dchild-\u003ed_inode case can leak the filehandle.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8177e6d6dfb9cd03d9bdeb647c32161f8f58f686",
      "tree": "3e6781150308ea56183593e0d4c1380a8515e6b6",
      "parents": [
        "1be10a88cac5e589cdd2bcb0cf6a13ed30bcc233"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 14:13:09 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 15:47:40 2009 -0400"
      },
      "message": "nfsd: clean up readdirplus encoding\n\nMake the return from compose_entry_fh() zero or an error, even though\nthe returned error isn\u0027t used, just to make the meaning of the return\nimmediately obvious.\n\nMove some repeated code out of main function into helper.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1be10a88cac5e589cdd2bcb0cf6a13ed30bcc233",
      "tree": "2d4b7fe5a1d45162d38388206772644486cd1328",
      "parents": [
        "2671a4bf3516757ca028c139a7902a50f2bd994a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 11:59:32 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 04 11:59:32 2009 -0400"
      },
      "message": "nfsd4: filehandle leak or error exit from fh_compose()\n\nA number of callers (nfsd4_encode_fattr(), at least) don\u0027t bother to\nrelease the filehandle returned to fh_compose() if fh_compose() returns\nan error.  So, modify fh_compose() to release the filehandle before\nreturning an error.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2671a4bf3516757ca028c139a7902a50f2bd994a",
      "tree": "9b60719bdd52cdae10f4b64525c13f072e1ac7b0",
      "parents": [
        "bc6c53d5a1383d5d9632adf33bd03458cfc0869d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 02 16:48:32 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Sep 03 16:57:57 2009 -0400"
      },
      "message": "NFSd: Fix filehandle leak in exp_pseudoroot() and nfsd4_path()\n\nnfsd4_path() allocates a temporary filehandle and then fails to free it\nbefore the function exits, leaking reference counts to the dentry and\nexport that it refers to.\n\nAlso, nfsd4_lookupp() puts the result of exp_pseudoroot() in a temporary\nfilehandle which it releases on success of exp_pseudoroot() but not on\nfailure; fix exp_pseudoroot to ensure that on failure it releases the\nfilehandle before returning.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bc6c53d5a1383d5d9632adf33bd03458cfc0869d",
      "tree": "6caf2e75f17efca08884dcaccb750901e2af2b26",
      "parents": [
        "8e498751f2f36074ffa6fc7f0a9ec6e055b350e6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 19:50:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 23:54:48 2009 -0400"
      },
      "message": "nfsd: move fsid_type choice out of fh_compose\n\nMore trivial cleanup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8e498751f2f36074ffa6fc7f0a9ec6e055b350e6",
      "tree": "5b62bd1cc72977ba3c3d0e7210162c6be6e22f9f",
      "parents": [
        "557ce2646e775f6bda734dd92b10d4780874b9c7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 19:31:32 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 02 23:53:51 2009 -0400"
      },
      "message": "nfsd: move some of fh_compose into helper functions\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e0e817392b9acf2c98d3be80c233dddb1b52003d",
      "tree": "ee680c020039313c9f9c40ab3542bb30a7363381",
      "parents": [
        "ed6d76e4c32de0c2ad5f1d572b948ef49e465176"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:13:40 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:01 2009 +1000"
      },
      "message": "CRED: Add some configurable debugging [try #6]\n\nAdd a config option (CONFIG_DEBUG_CREDENTIALS) to turn on some debug checking\nfor credential management.  The additional code keeps track of the number of\npointers from task_structs to any given cred struct, and checks to see that\nthis number never exceeds the usage count of the cred struct (which includes\nall references, not just those from task_structs).\n\nFurthermore, if SELinux is enabled, the code also checks that the security\npointer in the cred struct is never seen to be invalid.\n\nThis attempts to catch the bug whereby inode_has_perm() faults in an nfsd\nkernel thread on seeing cred-\u003esecurity be a NULL pointer (it appears that the\ncredential struct has been previously released):\n\n\thttp://www.kerneloops.org/oops.php?number\u003d252883\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "557ce2646e775f6bda734dd92b10d4780874b9c7",
      "tree": "a44a5e2f9d601a039f7ac9b30b5c4af95796fc23",
      "parents": [
        "bdac86e2154cfe47552639113265d1fa27cfbe72"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:04 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:06 2009 -0400"
      },
      "message": "nfsd41: replace page based DRC with buffer based DRC\n\nUse NFSD_SLOT_CACHE_SIZE size buffers for sessions DRC instead of holding nfsd\npages in cache.\n\nConnectathon testing has shown that 1024 bytes for encoded compound operation\nresponses past the sequence operation is sufficient, 512 bytes is a little too\nsmall. Set NFSD_SLOT_CACHE_SIZE to 1024.\n\nAllocate memory for the session DRC in the CREATE_SESSION operation\nto guarantee that the memory resource is available for caching responses.\nAllocate each slot individually in preparation for slot table size negotiation.\n\nRemove struct nfsd4_cache_entry and helper functions for the old page-based\nDRC.\n\nThe iov_len calculation in nfs4svc_encode_compoundres is now always\ncorrect.  Replay is now done in nfsd4_sequence under the state lock, so\nthe session ref count is only bumped on non-replay. Clean up the\nnfs4svc_encode_compoundres session logic.\n\nThe nfsd4_compound_state statp pointer is also not used.\nRemove nfsd4_set_statp().\n\nMove useful nfsd4_cache_entry fields into nfsd4_slot.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bdac86e2154cfe47552639113265d1fa27cfbe72",
      "tree": "3e8e9aaac30ebea8e741c1da29c1caacf2943fea",
      "parents": [
        "a8dfdaeb7a8b1295f45d9d208dd27e6e20113d1b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:03 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:05 2009 -0400"
      },
      "message": "nfsd41: replace nfserr_resource in pure nfs41 responses\n\nnfserr_resource is not a legal error for NFSv4.1. Replace it with\nnfserr_serverfault for EXCHANGE_ID and CREATE_SESSION processing.\n\nWe will also need to map nfserr_resource to other errors in routines shared\nby NFSv4.0 and NFSv4.1\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a8dfdaeb7a8b1295f45d9d208dd27e6e20113d1b",
      "tree": "fd7bdabd4f66ee054fc2b2e2d6b39089d5a5b972",
      "parents": [
        "a649637c73a36174287a403cdda7607177d64523"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:02 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:05 2009 -0400"
      },
      "message": "nfsd41: use session maxreqs for sequence target and highest slotid\n\nThis fixes a bug in the sequence operation reply.\n\nThe sequence operation returns the highest slotid it will accept in the future\nin sr_highest_slotid, and the highest slotid it prefers the client to use.\nSince we do not re-negotiate the session slot table yet, these should both\nalways be set to the session ca_maxrequests.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a649637c73a36174287a403cdda7607177d64523",
      "tree": "8aec8e30b2f4cceaee9fa5ddaa88e694ea3e09dd",
      "parents": [
        "a06b1261bdb580b35967d0e055d1ab131b332254"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 28 08:45:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 22:24:05 2009 -0400"
      },
      "message": "nfsd41: bound forechannel drc size by memory usage\n\nBy using the requested ca_maxresponsesize_cached * ca_maxresponses to bound\na forechannel drc request size, clients can tailor a session to usage.\n\nFor example, an I/O session (READ/WRITE only) can have a much smaller\nca_maxresponsesize_cached (for only WRITE compound responses) and a lot larger\nca_maxresponses to service a large in-flight data window.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a06b1261bdb580b35967d0e055d1ab131b332254",
      "tree": "7ce3f00974741f29dcb815f427c242fe3384ca62",
      "parents": [
        "468de9e54a900559b55aa939a4daeaea1915e572"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 31 15:16:11 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 01 20:00:17 2009 -0400"
      },
      "message": "NFSD: Fix a bug in the NFSv4 \u0027supported attrs\u0027 mandatory attribute\n\nThe fact that the filesystem doesn\u0027t currently list any alternate\nlocations does _not_ imply that the fs_locations attribute should be\nmarked as \"unsupported\".\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "468de9e54a900559b55aa939a4daeaea1915e572",
      "tree": "fa9f57f48f7f136fc5e4d821454ffb47ec0c22f6",
      "parents": [
        "d8d0b85b11476ce59684ad2998e91a522df518a0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Aug 27 12:07:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 28 12:20:15 2009 -0400"
      },
      "message": "nfsd41: expand solo sequence check\n\nCompounds consisting of only a sequence operation don\u0027t need any\nadditional caching beyond the sequence information we store in the slot\nentry.  Fix nfsd4_is_solo_sequence to identify this case correctly.\n\nThe additional check for a failed sequence in nfsd4_store_cache_entry()\nis redundant, since the nfsd4_is_solo_sequence call lower down catches\nthis case.\n\nThe final ce_cachethis set in nfsd4_sequence is also redundant.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d8d0b85b11476ce59684ad2998e91a522df518a0",
      "tree": "b54333f714aa96fd8c6d179c92b7c7a97db157c2",
      "parents": [
        "b0401d725334a94d57335790b8ac2404144748ee"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Thu Aug 27 17:35:41 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 27 17:35:41 2009 -0400"
      },
      "message": "nfsd4: remove ACE4_IDENTIFIER_GROUP flag from GROUP@ entry\n\nRFC 3530 says \"ACE4_IDENTIFIER_GROUP flag MUST be ignored on entries\nwith these special identifiers.  When encoding entries with these\nspecial identifiers, the ACE4_IDENTIFIER_GROUP flag SHOULD be set to\nzero.\"  It really shouldn\u0027t matter either way, but the point is that\nthis flag is used to distinguish named users from named groups (since\nunix allows a group to have the same name as a user), so it doesn\u0027t\nreally make sense to use it on a special identifier such as this.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aaf84eb95a9c610c6413cee4836764ea9194eed3",
      "tree": "439d25aa70e6226ae8895db8a7503fd63a62a907",
      "parents": [
        "eac81736e6884484ebb45f8d0cba639f3285382b"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Aug 20 03:21:56 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 27 17:17:40 2009 -0400"
      },
      "message": "nfsd41: renew_client must be called under the state lock\n\nUntil we work out the state locking so we can use a spin lock to protect\nthe cl_lru, we need to take the state_lock to renew the client.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Do not renew state on error]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: Simplify exit code]\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ed2d8aed52212610d4cb79be3cbf535b04be38dc",
      "tree": "6baac65cfa094ac79db8a473ad7bd4b1dbbc5c2a",
      "parents": [
        "55bb55dca0cecac2fb7b8c743db41361c011c8a8"
      ],
      "author": {
        "name": "Ryusei Yamaguchi",
        "email": "mandel59@gmail.com",
        "time": "Sun Aug 16 00:54:41 2009 +0900"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Aug 25 12:39:37 2009 -0400"
      },
      "message": "knfsd: Replace lock_kernel with a mutex in nfsd pool stats.\n\nlock_kernel() in knfsd was replaced with a mutex. The later\ncommit 03cf6c9f49a8fea953d38648d016e3f46e814991 (\"knfsd:\nadd file to export stats about nfsd pools\") did not follow\nthat change. This patch fixes the issue.\n\nAlso move the get and put of nfsd_serv to the open and close methods\n(instead of start and stop methods) to allow atomic check and increment\nof reference count in the open method (where we can still return an\nerror).\n\nSigned-off-by: Ryusei Yamaguchi \u003cmandel59@gmail.com\u003e\nSigned-off-by: Isaku Yamahata \u003cyamahata@valinux.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nCc: Greg Banks \u003cgnb@fmeh.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "55bb55dca0cecac2fb7b8c743db41361c011c8a8",
      "tree": "148b3ccee78940f424c3ecc1c5b2e9f46527a200",
      "parents": [
        "8f55f3c0a013c42fb733997da54a3326c74601e8"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Fri Aug 14 15:02:30 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Aug 24 20:01:22 2009 -0400"
      },
      "message": "nfsd: Fix unnecessary deny bits in NFSv4 ACL\n\nThe group deny entries end up denying tcy even though tcy was just\nallowed by the allow entry. This appears to be due to:\n\tace-\u003eaccess_mask \u003d mask_from_posix(deny, flags);\ninstead of:\n\tace-\u003eaccess_mask \u003d deny_mask_from_posix(deny, flags);\n\nDenying a previously allowed bit has no effect, so this shouldn\u0027t affect\nbehavior, but it\u0027s ugly.\n\nSigned-off-by: Frank Filz \u003cffilzlnx@us.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fbf4665f41b02e757ab9d9198df65e319388e728",
      "tree": "ec0b8b4f3809ee38088504bf51440ee12f501085",
      "parents": [
        "7077ecbabd626cce1fcf5cc9766c83ec04d919f9"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:59 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:44 2009 -0400"
      },
      "message": "nfsd: populate sin6_scope_id on callback address with scopeid from rq_addr on SETCLIENTID call\n\nWhen a SETCLIENTID call comes in, one of the args given is the svc_rqst.\nThis struct contains an rq_addr field which holds the address that sent\nthe call. If this is an IPv6 address, then we can use the sin6_scope_id\nfield in this address to populate the sin6_scope_id field in the\ncallback address.\n\nAFAICT, the rq_addr.sin6_scope_id is non-zero if and only if the client\nmounted the server\u0027s link-local address.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7077ecbabd626cce1fcf5cc9766c83ec04d919f9",
      "tree": "20123b656c9e95d5bec27d552ec6e46f84c5bb1b",
      "parents": [
        "aa9a4ec7707a5391cde556f3fa1b0eb4bca3bcf6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:58 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:44 2009 -0400"
      },
      "message": "nfsd: add support for NFSv4 callbacks over IPv6\n\nThe framework to add this is all in place. Now, add the code to allow\nsupport for establishing a callback channel on an IPv6 socket.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aa9a4ec7707a5391cde556f3fa1b0eb4bca3bcf6",
      "tree": "abb684bea62a77a0172d6be2f45f0414acedc5cc",
      "parents": [
        "363168b4ea8ec26aeb982ac6024a09f907ecd27e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:57 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:43 2009 -0400"
      },
      "message": "nfsd: convert nfs4_cb_conn struct to hold address in sockaddr_storage\n\n...rather than as a separate address and port fields. This will be\nnecessary for implementing callbacks over IPv6. Also, convert\ngen_callback to use the standard rpcuaddr2sockaddr routine rather than\nits own private one.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "363168b4ea8ec26aeb982ac6024a09f907ecd27e",
      "tree": "95e626b67a238047caad3ce445b27eef98330780",
      "parents": [
        "be3ad6b0b675fd1d6b48362ca30bdee75fbef6b4"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:56 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:43 2009 -0400"
      },
      "message": "nfsd: make nfs4_client-\u003ecl_addr a struct sockaddr_storage\n\nIt\u0027s currently a __be32, which isn\u0027t big enough to hold an IPv6 address.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e9dc122166b8d863d3057a66ada04838e5548e52",
      "tree": "749e15bf719b64bf9113db7acd8e043d9742cb26",
      "parents": [
        "560ab42ef923aaf2e4347315bdfcc74b2708972c",
        "405d8f8b1d936414da2093d4149ff790ff3f84a5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:29 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:29 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 into for-2.6.32-incoming\n\nConflicts:\n\tnet/sunrpc/cache.c\n"
    },
    {
      "commit": "f884dcaead5f17bf586ac5fe6a3ad07b5203616a",
      "tree": "2406444df167f1d67b38733b544f2e2a96c778c7",
      "parents": [
        "976a6f921cad26651d25e73826c05c7a023f5fa4",
        "8854e82d9accc80f43c0bc3ff06b5979ac858185"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:58 2009 -0400"
      },
      "message": "Merge branch \u0027sunrpc_cache-for-2.6.32\u0027 into nfs-for-2.6.32\n"
    },
    {
      "commit": "bc74b4f5e63a09fb78e245794a0de1e5a2716bbe",
      "tree": "5e96e63fd69303162456549f12bff5f9b2ee2a22",
      "parents": [
        "da77005f0d64486cd760f43d9b7cc2379262a363"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:29 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:29 2009 -0400"
      },
      "message": "SUNRPC: Allow the cache_detail to specify alternative upcall mechanisms\n\nFor events that are rare, such as referral DNS lookups, it makes limited\nsense to have a daemon constantly listening for upcalls on a channel. An\nalternative in those cases might simply be to run the app that fills the\ncache using call_usermodehelper_exec() and friends.\n\nThe following patch allows the cache_detail to specify alternative upcall\nmechanisms for these particular cases.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2da8ca26c6bfad685bfddf39728eac1c83906aa9",
      "tree": "77d0d4ed305009bd5bf82b1456d4ed5ab1db5002",
      "parents": [
        "e57aed77ad48d28ac617ba157ad2f665f5301b30"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:26 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:26 2009 -0400"
      },
      "message": "NFSD: Clean up the idmapper warning...\n\nWhat part of \u0027internal use\u0027 is so hard to understand?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4116092b92f859e5e9a90c99d740933e651ee8c0",
      "tree": "0b06619ad84d483758873257daf377e5e3eca5d1",
      "parents": [
        "c15128c5e428af1e8ada1476484a74c970665edd"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:40 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:40 2009 -0400"
      },
      "message": "NFSD: Support IPv6 addresses in write_failover_ip()\n\nIn write_failover_ip(), replace the sscanf() with a call to the common\nsunrpc.ko presentation address parser.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "abfabf8cafa60e7876a7193fb344f739f690071d",
      "tree": "1cc9faa1a82d7ac7ef08bdb8af7acb8a30c9903d",
      "parents": [
        "c8647947f8c13ee2647505debae284ab1c859e65"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:18 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 16:12:34 2009 -0400"
      },
      "message": "nfsd41: encode replay sequence from the slot values\n\nThe sequence operation is not cached; always encode the sequence operation on\na replay from the slot table and session values. This simplifies the sessions\nreplay logic in nfsd4_proc_compound.\n\nIf this is a replay of a compound that was specified not to be cached, return\nNFS4ERR_RETRY_UNCACHED_REP.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c8647947f8c13ee2647505debae284ab1c859e65",
      "tree": "8a8ae32fde3994a7b364b8caa0dd59fcae8d271d",
      "parents": [
        "49557cc74c7bdf6a984be227ead9a84b3a26f053"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:17 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:36 2009 -0400"
      },
      "message": "nfsd41: rename nfsd4_enc_uncached_replay\n\nThis function is only used for SEQUENCE replay.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "49557cc74c7bdf6a984be227ead9a84b3a26f053",
      "tree": "796abd9b62301d16f3307dacd0b21e47b79622b1",
      "parents": [
        "88e588d56a2f0226a34386b94a03fda97d2b8e67"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:16 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:29 2009 -0400"
      },
      "message": "nfsd41: Use separate DRC for setclientid\n\nInstead of trying to share the generic 4.1 reply cache code for the\nCREATE_SESSION reply cache, it\u0027s simpler to handle CREATE_SESSION\nseparately.\n\nThe nfs41 single slot clientid DRC holds the results of create session\nprocessing.  CREATE_SESSION can be preceeded by a SEQUENCE operation\n(an embedded CREATE_SESSION) and the create session single slot cache must be\nmaintained.  nfsd4_replay_cache_entry() and nfsd4_store_cache_entry() do not\nimplement the replay of an embedded CREATE_SESSION.\n\nThe clientid DRC slot does not need the inuse, cachethis or other fields that\nthe multiple slot session cache uses.  Replace the clientid DRC cache struct\nnfs4_slot cache with a new nfsd4_clid_slot cache.  Save the xdr struct\nnfsd4_create_session into the cache at the end of processing, and on a replay,\nreplace the struct for the replay request with the cached version all while\nunder the state lock.\n\nnfsd4_proc_compound will handle both the solo and embedded CREATE_SESSION case\nvia the normal use of encode_operation.\n\nErrors that do not change the create session cache:\nA create session NFS4ERR_STALE_CLIENTID error means that a client record\n(and associated create session slot) could not be found and therefore can\u0027t\nbe changed.  NFSERR_SEQ_MISORDERED errors do not change the slot cache.\n\nAll other errors get cached.\n\nRemove the clientid DRC specific check in nfs4svc_encode_compoundres to\nput the session only if cstate.session is set which will now always be true.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "88e588d56a2f0226a34386b94a03fda97d2b8e67",
      "tree": "a190c3618ed4772c9f9b36a948be33b5368fecba",
      "parents": [
        "5261dcf8eb3d098545a676030910cf2c05a00e6c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:23 2009 -0400"
      },
      "message": "nfsd41: change check_slot_seqid parameters\n\nFor separation of session slot and clientid slot processing.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5261dcf8eb3d098545a676030910cf2c05a00e6c",
      "tree": "7ebde7d066f54842bf990005b6f4847e40ee72f6",
      "parents": [
        "0c193054a4c1cf190d2f23e5e91bd14402e43912"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jul 23 19:02:14 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:15 2009 -0400"
      },
      "message": "nfsd41: remove redundant forechannel max requests check\n\nThis check is done in set_forechannel_maxreqs.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0c193054a4c1cf190d2f23e5e91bd14402e43912",
      "tree": "f2fc6efa35b0cfa621b43894e2dfd57762e65d0f",
      "parents": [
        "6a14dd1a4fe1bd00e02a96c97015cedfddda58ed"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 19:09:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:30:05 2009 -0400"
      },
      "message": "nfsd41: hange from page to memory based drc limits\n\nNFSD_SLOT_CACHE_SIZE is the size of all encoded operation responses\n(excluding the sequence operation) that we want to cache.\n\nFor now, keep NFSD_SLOT_CACHE_SIZE at PAGE_SIZE. It will be reduced\nwhen the DRC is changed from page based to memory based.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6a14dd1a4fe1bd00e02a96c97015cedfddda58ed",
      "tree": "0b1647f5ee7562d0be28c509f67215e9efdfc5e2",
      "parents": [
        "b101ebbc39f50f8af4657e517954ca874b13b364"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 19:06:45 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:59 2009 -0400"
      },
      "message": "nfsd41: reserve less memory for DRC\n\nAlso remove a slightly misleading comment.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b101ebbc39f50f8af4657e517954ca874b13b364",
      "tree": "a92e8df431a08450149b19c1db8365932e3ebc90",
      "parents": [
        "be98d1bbd1b872a10d64cdef0af10b9afcc48092"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 18:40:09 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:54 2009 -0400"
      },
      "message": "nfsd41: minor set_forechannel_maxreqs cleanup\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "be98d1bbd1b872a10d64cdef0af10b9afcc48092",
      "tree": "10685e758e2539cf1e579114643b78c143ccee89",
      "parents": [
        "413d63d7106b914a4a004ac08698f10c618e4616"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 27 18:49:05 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:48 2009 -0400"
      },
      "message": "nfsd41: reclaim DRC memory on session free\n\nThis fixes a leak which would eventually lock out new clients.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "413d63d7106b914a4a004ac08698f10c618e4616",
      "tree": "e481bf2f0da4388707bebfd1d3a2e69ee44614f8",
      "parents": [
        "2522a776c1b9b5c93383d07717f895cc1a56a87a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 11:37:25 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:41 2009 -0400"
      },
      "message": "nfsd: minor write_pool_threads exit cleanup\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2522a776c1b9b5c93383d07717f895cc1a56a87a",
      "tree": "1233866afaa4d6caf135f4714c30dd3c8f2cb270",
      "parents": [
        "4bd9b0f4afc76cf972578c702e1bc1b6f2d10ba5"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "eric.sesterhenn@focus-voip.de",
        "time": "Tue Jul 28 14:32:08 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 28 14:29:34 2009 -0400"
      },
      "message": "Fix memory leak in write_pool_threads\n\nkmemleak produces the following warning\n\nunreferenced object 0xc9ec02a0 (size 8):\n  comm \"cat\", pid 19048, jiffies 730243\n  backtrace:\n    [\u003cc01bf970\u003e] create_object+0x100/0x240\n    [\u003cc01bfadb\u003e] kmemleak_alloc+0x2b/0x60\n    [\u003cc01bcd4b\u003e] __kmalloc+0x14b/0x270\n    [\u003cc02fd027\u003e] write_pool_threads+0x87/0x1d0\n    [\u003cc02fcc08\u003e] nfsctl_transaction_write+0x58/0x70\n    [\u003cc02fcc6f\u003e] nfsctl_transaction_read+0x4f/0x60\n    [\u003cc01c2574\u003e] vfs_read+0x94/0x150\n    [\u003cc01c297d\u003e] sys_read+0x3d/0x70\n    [\u003cc0102d6b\u003e] sysenter_do_call+0x12/0x32\n    [\u003cffffffff\u003e] 0xffffffff\n\nwrite_pool_threads() only frees nthreads on error paths, in the success case\nwe leak it.\n\nSigned-off-by: Eric Sesterhenn \u003ceric.sesterhenn@lsexperts.de\u003e\nReviewed-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4bd9b0f4afc76cf972578c702e1bc1b6f2d10ba5",
      "tree": "ec7289f1c24ef1ff75c2fdd3cfb2c7ef66f8c44d",
      "parents": [
        "7702ce40bc84a02e88aa20f95333df8cff5f9d37"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Jun 24 15:37:45 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 14 17:52:40 2009 -0400"
      },
      "message": "nfsd41: use globals for DRC limits\n\nThe version 4.1 DRC memory limit and tracking variables are server wide and\nsession specific. Replace struct svc_serv fields with globals.\nStop using the svc_serv sv_lock.\n\nAdd a spinlock to serialize access to the DRC limit management variables which\nchange on session creation and deletion (usage counter) or (future)\nadministrative action to adjust the total DRC memory limit.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "9208faf297dddfa97a86d7224b6bf94f2e346dd9",
      "tree": "c93d67a14b2a12b77bec058df5510530d333bfc6",
      "parents": [
        "5a421ce3c062a87db0a9e7f2a0a7ee0a5b869aab"
      ],
      "author": {
        "name": "Yu Zhiguo",
        "email": "yuzg@cn.fujitsu.com",
        "time": "Mon Jul 06 17:24:16 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 14 12:16:47 2009 -0400"
      },
      "message": "NFSv4: ACL in operations \u0027open\u0027 and \u0027create\u0027 should be used\n\nACL in operations \u0027open\u0027 and \u0027create\u0027 is decoded but never be used.\nIt should be set as the initial ACL for the object according to RFC3530.\nIf error occurs when setting the ACL, just clear the ACL bit in the\nreturned attr bitmap.\n\nSigned-off-by: Yu Zhiguo \u003cyuzg@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "033a666ccb842ab4134fcd0c861d5ba9f5d6bf3a",
      "tree": "95da0764ea928ce4f821023e23a25001297c7bf3",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 02 14:35:32 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jul 03 10:21:10 2009 -0400"
      },
      "message": "NFSD: Don\u0027t hold unrefcounted creds over call to nfsd_setuser()\n\nnfsd_open() gets an unrefcounted pointer to the current process\u0027s effective\ncredentials at the top of the function, then calls nfsd_setuser() via\nfh_verify() - which may replace and destroy the current process\u0027s effective\ncredentials - and then passes the unrefcounted pointer to dentry_open() - but\nthe credentials may have been destroyed by this point.\n\nInstead, the value from current_cred() should be passed directly to\ndentry_open() as one of its arguments, rather than being cached in a variable.\n\nPossibly fh_verify() should return the creds to use.\n\nThis is a regression introduced by\n745ca2475a6ac596e3d8d37c2759c0fbe2586227 \"CRED: Pass credentials through\ndentry_open()\".\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-and-Verified-By: Steve Dickson \u003csteved@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\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": "ef52bff8409bba78b042f1bcf33a0f49debc9774",
      "tree": "2ac3a07a7a4d1faff5201a4156693042bb3fd8c2",
      "parents": [
        "6ddbbbfe52f35301ef5a1b595f912d8d2b3ec143"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Jun 16 04:20:50 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 18 18:33:57 2009 -0700"
      },
      "message": "nfsd41: Backchannel: cleanup nfs4.0 callback encode routines\n\nMimic the client and prepare to share the back channel xdr with NFSv4.1.\nBump the number of operations in each encode routine, then backfill the\nnumber of operations.\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\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6ddbbbfe52f35301ef5a1b595f912d8d2b3ec143",
      "tree": "6d987ecbccf40b5ee4793c39b134848f677c1117",
      "parents": [
        "671e1fcf63fd115eabcb693b06cbc2e4a3d1a3a3"
      ],
      "author": {
        "name": "Mike Sager",
        "email": "sager@netapp.com",
        "time": "Tue Jun 16 04:20:47 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 18 17:43:53 2009 -0700"
      },
      "message": "nfsd41: Remove ip address collision detection case\n\nVerified that cthon and pynfs exchange id tests pass (except for the\ntwo expected fails: EID8 and EID50)\n\nSigned-off-by: Mike Sager \u003csager@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": "671e1fcf63fd115eabcb693b06cbc2e4a3d1a3a3",
      "tree": "601c7896733bf026db66ebbb183c3675e89e37d7",
      "parents": [
        "82e12fe9244ff653f703722a8937b595e10e71f4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 11:03:20 2009 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 18 09:42:41 2009 -0700"
      },
      "message": "nfsd: optimise the starting of zero threads when none are running.\n\nCurrently, if we ask to set then number of nfsd threads to zero when\nthere are none running, we set up all the sockets and register the\nservice, and then tear it all down again.\nThis is pointless.\n\nSo detect that case and exit promptly.\n(also remove an assignment to \u0027error\u0027 which was never used.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "82e12fe9244ff653f703722a8937b595e10e71f4",
      "tree": "aacafeb07d90c9453c31cc6771324e7960c52477",
      "parents": [
        "5d77ddfbcb062f2617ea79d7a371b4bc78f28417"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 11:03:07 2009 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 18 09:40:31 2009 -0700"
      },
      "message": "nfsd: don\u0027t take nfsd_mutex twice when setting number of threads.\n\nCurrently when we write a number to \u0027threads\u0027 in nfsdfs,\nwe take the nfsd_mutex, update the number of threads, then take the\nmutex again to read the number of threads.\n\nMostly this isn\u0027t a big deal.  However if we are write \u00270\u0027, and\nportmap happens to be dead, then we can get unpredictable behaviour.\nIf the nfsd threads all got killed quickly and the last thread is\nwaiting for portmap to respond, then the second time we take the mutex\nwe will block waiting for the last thread.\nHowever if the nfsd threads didn\u0027t die quite that fast, then there\nwill be no contention when we try to take the mutex again.\n\nUnpredictability isn\u0027t fun, and waiting for the last thread to exit is\npointless, so avoid taking the lock twice.\nTo achieve this, get nfsd_svc return a non-negative number of active\nthreads when not returning a negative error.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5d77ddfbcb062f2617ea79d7a371b4bc78f28417",
      "tree": "335dc6b860d26bf61bfc444bc7f1933ab0762363",
      "parents": [
        "6c18ba9f5e506b8115b89b1aa7bdc25178f40b0a"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Jun 16 04:19:38 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 16 17:13:16 2009 -0700"
      },
      "message": "nfsd41: sanity check client drc maxreqs\n\nEnsure the client requested maximum requests are between 1 and\nNFSD_MAX_SLOTS_PER_SESSION\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": "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": "b9081d90f5b989cd927052084b16b4f950c8c8d7",
      "tree": "ae272fc0f0cf091886c31f09465c51cd56ee08a3",
      "parents": [
        "59fb30660be3f3ead54b3850c401d462449caaaa"
      ],
      "author": {
        "name": "Yu Zhiguo",
        "email": "yuzg@cn.fujitsu.com",
        "time": "Tue Jun 09 17:33:34 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 19:34:32 2009 -0700"
      },
      "message": "NFS: kill off complicated macro \u0027PROC\u0027\n\nkill off obscure macro \u0027PROC\u0027 of NFSv2\u00263 in order to make the code more clear.\n\nAmong other things, this makes it simpler to grep for callers of these\nfunctions--something which has frequently caused confusion among nfs\ndevelopers.\n\nSigned-off-by: Yu Zhiguo \u003cyuzg@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e4636d535e32768c8c500641ddb144f56e3dc5c0",
      "tree": "207cbe50efc428f4c5d07641d6da9c27d79d00ea",
      "parents": [
        "d911df7b8d44de41661363a4e29ee710180ba025"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 19:07:13 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 19:18:34 2009 -0700"
      },
      "message": "nfsd: minor nfsd_vfs_write cleanup\n\nThere\u0027s no need to check host_err \u003e\u003d 0 every time here when we could\ncheck host_err \u003c 0 once, following the usual kernel style.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d911df7b8d44de41661363a4e29ee710180ba025",
      "tree": "c1a7513dfd46e9cfc9b464c82de2666b406e6deb",
      "parents": [
        "9d2a3f31d6d7832cd441eeda08bc2266cdd5d972"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 16:03:53 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:54:05 2009 -0700"
      },
      "message": "nfsd: Pull write-gathering code out of nfsd_vfs_write\n\nThis is a relatively self-contained piece of code that handles a special\ncase--move it to its own function.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9d2a3f31d6d7832cd441eeda08bc2266cdd5d972",
      "tree": "c2089263f2d68ff9c5174ebea96ef0cbcb085682",
      "parents": [
        "6aad89c8376e432231b78d1bdbcc10ef7708b011"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:47:56 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:52:47 2009 -0700"
      },
      "message": "nfsd: track last inode only in use_wgather case\n\nUpdating last_ino and last_dev probably isn\u0027t useful in the !use_wgather\ncase.\n\nAlso remove some pointless ifdef\u0027d-out code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "48e03bc515cff75718de5460458680a230ae997e",
      "tree": "d8c3095c15e362e574b82b962ebf26f7589dc412",
      "parents": [
        "7eef4091a653c243a87e5375c54504cc03bec4d8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Fri Jun 05 12:35:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:14:57 2009 -0700"
      },
      "message": "nfsd: Use write gathering only with NFSv2\n\nNFSv3 and above can use unstable writes whenever they are sending more\nthan one write, rather than relying on the flaky write gathering\nheuristics. More often than not, write gathering is currently getting it\nwrong when the NFSv3 clients are sending a single write with FILE_SYNC\nfor efficiency reasons.\n\nThis patch turns off write gathering for NFSv3/v4, and ensures that\nit only applies to the one case that can actually benefit: namely NFSv2.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7eef4091a653c243a87e5375c54504cc03bec4d8",
      "tree": "f65b77f830b2c8f7d014512badfef5df0d591ee9",
      "parents": [
        "0a93a47f042c459f0f46942c3a920e3c81878031",
        "07a2039b8eb0af4ff464efd3dfd95de5c02648c6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:08:07 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:08:07 2009 -0700"
      },
      "message": "Merge commit \u0027v2.6.30\u0027 into for-2.6.31\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9",
      "tree": "710a8bba0a4f3738b32e4e5230ccf3665cd1b815",
      "parents": [
        "e64c390ca0b60fd2119331ef1fa888d7ea27e424"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:26:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch follow_up() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "5bf3bd2b5cb68ba43c91f5bd0ac043543fba2558",
      "tree": "a8804b29b2e025a2d0f5a81d5f286b2c5d3fd84e",
      "parents": [
        "55430e2ecee574e729c12d4063b3ecabfa98fa82"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:14:32 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch exp_parent() to struct path\n\n... and lose the always-NULL last argument (non-NULL case had been\nsplit off a while ago).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "55430e2ecee574e729c12d4063b3ecabfa98fa82",
      "tree": "37a243110480207785cee25940538008b3e25859",
      "parents": [
        "dd5cae6e9772ecc62fd374f7a8ec10eb51c96c4d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:04:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:59 2009 -0400"
      },
      "message": "nfsd struct path use: exp_get_by_name()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f",
      "tree": "1e075fdf4aaf0c5c003564b3f3414bb4a92ef2ed",
      "parents": [
        "04288f42033607099cebf5ca15ce8dcec3a9688b",
        "3af968e066d593bc4dacc021715f3e95ddf0996f"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Jun 09 09:27:53 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Jun 09 09:27:53 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "0a93a47f042c459f0f46942c3a920e3c81878031",
      "tree": "9204c71810c955114ce4e6f73bdbf70d6b0dcc59",
      "parents": [
        "3c8e03166ae234d16e7871f8009638e0946d303c"
      ],
      "author": {
        "name": "Yu Zhiguo",
        "email": "yuzg@cn.fujitsu.com",
        "time": "Tue May 19 14:09:54 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 01 18:09:20 2009 -0400"
      },
      "message": "NFSv4: kill off complicated macro \u0027PROC\u0027\n\nJ. Bruce Fields wrote:\n...\n\u003e (This is extremely confusing code to track down: note that\n\u003e proc-\u003epc_decode is set to nfs4svc_decode_compoundargs() by the PROC()\n\u003e macro at the end of fs/nfsd/nfs4proc.c.  Which means, for example, that\n\u003e grepping for nfs4svc_decode_compoundargs() gets you nowhere.  Patches to\n\u003e kill off that macro would be welcomed....)\n\nthe macro \u0027PROC\u0027 is complicated and obscure, it had better\nbe killed off in order to make the code more clear.\n\nSigned-off-by: Yu Zhiguo \u003cyuzg@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3c8e03166ae234d16e7871f8009638e0946d303c",
      "tree": "810556f219d4a98fa1ba71b43ec9c34847b57d93",
      "parents": [
        "1dbd0d53f394cd9a86fc801dd68fdbcbcdb45718"
      ],
      "author": {
        "name": "Yu Zhiguo",
        "email": "yuzg@cn.fujitsu.com",
        "time": "Sat May 16 16:22:31 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 01 18:01:54 2009 -0400"
      },
      "message": "NFSv4: do exact check about attribute specified\n\nServer should return NFS4ERR_ATTRNOTSUPP if an attribute specified is\nnot supported in current environment.\nOperations CREATE, NVERIFY, OPEN, SETATTR and VERIFY should do this check.\n\nThis bug is found when do newpynfs tests. The names of the tests that failed\nare following:\n  CR12 NVF7a NVF7b NVF7c NVF7d NVF7f NVF7r NVF7s\n  OPEN15 VF7a VF7b VF7c VF7d VF7f VF7r VF7s\n\nAdd function do_check_fattr() to do exact check:\n1, Check attribute specified is supported by the NFSv4 server or not.\n2, Check FATTR4_WORD0_ACL \u0026 FATTR4_WORD0_FS_LOCATIONS are supported\n   in current environment or not.\n3, Check attribute specified is writable or not.\n\nstep 1 and 3 are done in function nfsd4_decode_fattr() but removed\nto this function now.\n\nSigned-off-by: Yu Zhiguo \u003cyuzg@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "14dba5331b90c20588ae6504fea8049c7283028d",
      "tree": "55b55dfd413e7dcad4d33dca131cba70e281e41a",
      "parents": [
        "76b0187525f024cb391c8043adf2e359b2adb988"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed May 27 09:31:52 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu May 28 09:32:43 2009 +1000"
      },
      "message": "integrity: nfsd imbalance bug fix\n\nAn nfsd exported file is opened/closed by the kernel causing the\nintegrity imbalance message.\n\nBefore a file is opened, there normally is permission checking, which\nis done in inode_permission().  However, as integrity checking requires\na dentry and mount point, which is not available in inode_permission(),\nthe integrity (permission) checking must be called separately.\n\nIn order to detect any missing integrity checking calls, we keep track\nof file open/closes.  ima_path_check() increments these counts and\ndoes the integrity (permission) checking. As a result, the number of\ncalls to ima_path_check()/ima_file_free() should be balanced.  An extra\ncall to fput(), indicates the file could have been accessed without first\ncalling ima_path_check().\n\nIn nfsv3 permission checking is done once, followed by multiple reads,\nwhich do an open/close for each read.  The integrity (permission) checking\ncall should be in nfsd_permission() after the inode_permission() call, but\nas there is no correlation between the number of permission checking and\nopen calls, the integrity checking call should not increment the counters,\nbut defer it to when the file is actually opened.\n\nThis patch adds:\n- integrity (permission) checking for nfsd exported files in nfsd_permission().\n- a call to increment counts for files opened by nfsd.\n\nThis patch has been updated to return the nfs error types.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a0d24b295aed7a9daf4ca36bd4784e4d40f82303",
      "tree": "2cda7bf3b4514cf13158a557f3ab82d384ce5349",
      "parents": [
        "59a3759d0fe8d969888c741bb33f4946e4d3750d"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue May 19 12:03:15 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 17:40:06 2009 -0400"
      },
      "message": "nfsd: fix hung up of nfs client while sync write data to nfs server\n\nCommit \u0027Short write in nfsd becomes a full write to the client\u0027\n(31dec2538e45e9fff2007ea1f4c6bae9f78db724) broken the sync write.\nWith the following commands to reproduce:\n\n  $ mount -t nfs -o sync 192.168.0.21:/nfsroot /mnt\n  $ cd /mnt\n  $ echo aaaa \u003e temp.txt\n\nThen nfs client is hung up.\n\nIn SYNC mode the server alaways return the write count 0 to the\nclient. This is because the value of host_err in nfsd_vfs_write()\nwill be overwrite in SYNC mode by \u0027host_err\u003dnfsd_sync(file);\u0027,\nand then we return host_err(which is now 0) as write count.\n\nThis patch fixed the problem.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1dbd0d53f394cd9a86fc801dd68fdbcbcdb45718",
      "tree": "41cd2b1eca8c73f1c92b2593d2350c9b20e62c17",
      "parents": [
        "cf0a586cf41a1779edeee7562afb5d0ab46c7cf4"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Wed Apr 01 07:28:21 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 14:14:03 2009 -0400"
      },
      "message": "knfsd: remove unreported filehandle stats counters\n\nThe file nfsfh.c contains two static variables nfsd_nr_verified and\nnfsd_nr_put.  These are counters which are incremented as a side\neffect of the fh_verify() fh_compose() and fh_put() operations,\ni.e. at least twice per NFS call for any non-trivial workload.\nNeedless to say this makes the cacheline that contains them (and any\nother innocent victims) a very hot contention point indeed under high\ncall-rate workloads on multiprocessor NFS server.  It also turns out\nthat these counters are not used anywhere.  They\u0027re not reported to\nuserspace, they\u0027re not used in logic, they\u0027re not even exported from\nthe object file (let alone the module).  All they do is waste CPU time.\n\nSo this patch removes them.\n\nTests on a 16 CPU Altix A4700 with 2 10gige Myricom cards, configured\nseparately (no bonding).  Workload is 640 client threads doing directory\ntraverals with random small reads, from server RAM.\n\nBefore\n\u003d\u003d\u003d\u003d\u003d\u003d\n\nKernel profile:\n\n  %   cumulative   self              self     total\n time   samples   samples    calls   1/call   1/call  name\n  6.05   2716.00  2716.00    30406     0.09     1.02  svc_process\n  4.44   4706.00  1990.00     1975     1.01     1.01  spin_unlock_irqrestore\n  3.72   6376.00  1670.00     1666     1.00     1.00  svc_export_put\n  3.41   7907.00  1531.00     1786     0.86     1.02  nfsd_ofcache_lookup\n  3.25   9363.00  1456.00    10965     0.13     1.01  nfsd_dispatch\n  3.10  10752.00  1389.00     1376     1.01     1.01  nfsd_cache_lookup\n  2.57  11907.00  1155.00     4517     0.26     1.03  svc_tcp_recvfrom\n  ...\n  2.21  15352.00  1003.00     1081     0.93     1.00  nfsd_choose_ofc  \u003c----\n  ^^^^\n\nHere the function nfsd_choose_ofc() reads a global variable\nwhich by accident happened to be located in the same cacheline as\nnfsd_nr_verified.\n\nCall rate:\n\nnullarbor:~ # pmdumptext nfs3.server.calls\n...\nThu Dec 13 00:15:27     184780.663\nThu Dec 13 00:15:28     184885.881\nThu Dec 13 00:15:29     184449.215\nThu Dec 13 00:15:30     184971.058\nThu Dec 13 00:15:31     185036.052\nThu Dec 13 00:15:32     185250.475\nThu Dec 13 00:15:33     184481.319\nThu Dec 13 00:15:34     185225.737\nThu Dec 13 00:15:35     185408.018\nThu Dec 13 00:15:36     185335.764\n\nAfter\n\u003d\u003d\u003d\u003d\u003d\n\nkernel profile:\n\n  %   cumulative   self              self     total\n time   samples   samples    calls   1/call   1/call  name\n  6.33   2813.00  2813.00    29979     0.09     1.01  svc_process\n  4.66   4883.00  2070.00     2065     1.00     1.00  spin_unlock_irqrestore\n  4.06   6687.00  1804.00     2182     0.83     1.00  nfsd_ofcache_lookup\n  3.20   8110.00  1423.00    10932     0.13     1.00  nfsd_dispatch\n  3.03   9456.00  1346.00     1343     1.00     1.00  nfsd_cache_lookup\n  2.62  10622.00  1166.00     4645     0.25     1.01  svc_tcp_recvfrom\n[...]\n  0.10  42586.00    44.00       74     0.59     1.00  nfsd_choose_ofc  \u003c--- HA!!\n  ^^^^\n\nCall rate:\n\nnullarbor:~ # pmdumptext nfs3.server.calls\n...\nThu Dec 13 01:45:28     194677.118\nThu Dec 13 01:45:29     193932.692\nThu Dec 13 01:45:30     194294.364\nThu Dec 13 01:45:31     194971.276\nThu Dec 13 01:45:32     194111.207\nThu Dec 13 01:45:33     194999.635\nThu Dec 13 01:45:34     195312.594\nThu Dec 13 01:45:35     195707.293\nThu Dec 13 01:45:36     194610.353\nThu Dec 13 01:45:37     195913.662\nThu Dec 13 01:45:38     194808.675\n\ni.e. about a 5.3% improvement in call rate.\n\nSigned-off-by: Greg Banks \u003cgnb@melbourne.sgi.com\u003e\nReviewed-by: David Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "cf0a586cf41a1779edeee7562afb5d0ab46c7cf4",
      "tree": "3ede97c75e5adf69b19c397209dd60904ee26f4e",
      "parents": [
        "fca4217c5bab31019b5247e977673c9fcc385f6b"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Wed Apr 01 07:28:15 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 14:14:02 2009 -0400"
      },
      "message": "knfsd: fix reply cache memory corruption\n\nFix a regression in the reply cache introduced when the code was\nconverted to use proper Linux lists.  When a new entry needs to be\ninserted, the case where all the entries are currently being used\nby threads is not correctly detected.  This can result in memory\ncorruption and a crash.  In the current code this is an extremely\nunlikely corner case; it would require the machine to have 1024\nnfsd threads and all of them to be busy at the same time.  However,\nupcoming reply cache changes make this more likely; a crash due to\nthis problem was actually observed in field.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\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": "8daed1e549b55827758b3af7b8132a73fc51526f",
      "tree": "242d014706cb4b588e5fdda00a231bd50a9f0356",
      "parents": [
        "89996df4b5b1a09c279f50b3fd03aa9df735f5cb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 11 16:10:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 11 17:23:14 2009 -0400"
      },
      "message": "nfsd: silence lockdep warning\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "02cb2858dbfe216bd4a91c4afb4e259ef3b9e151",
      "tree": "7c850038c24199ef7b392e5b2402d6f097c76543",
      "parents": [
        "9064caae8f47bb7ed5d91712e81f01c1aba2fa3c"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Fri Apr 24 15:41:57 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 06 16:22:41 2009 -0400"
      },
      "message": "nfsd: nfs4_stat_init cleanup\n\nSave some loop time.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b2c0cea6b1cb210e962f07047df602875564069e",
      "tree": "f6327b45df075955d8ef9e9ad93c453ea5fc7a4c",
      "parents": [
        "ccecee1e5e42981f5eb37f4411e8552b9db04d30"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 05 19:04:29 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 06 16:16:36 2009 -0400"
      },
      "message": "nfsd4: check for negative dentry before use in nfsv4 readdir\n\nAfter 2f9092e1020246168b1309b35e085ecd7ff9ff72 \"Fix i_mutex vs.  readdir\nhandling in nfsd\" (and 14f7dd63 \"Copy XFS readdir hack into nfsd code\"),\nan entry may be removed between the first mutex_unlock and the second\nmutex_lock. In this case, lookup_one_len() will return a negative\ndentry.  Check for this case to avoid a NULL dereference.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nReviewed-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "9064caae8f47bb7ed5d91712e81f01c1aba2fa3c",
      "tree": "8949b0ae4c1a24c65652343561109e1964a31f72",
      "parents": [
        "63e4863fabc6e165a6ca813051305be58966da45"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Apr 28 16:48:25 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 03 15:09:12 2009 -0400"
      },
      "message": "nfsd: use C99 struct initializers\n\nEliminate 56 sparse warnings like this one:\n\nfs/nfsd/nfs4xdr.c:1331:15: warning: obsolete array initializer, use C99 syntax\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "63e4863fabc6e165a6ca813051305be58966da45",
      "tree": "e84b927ca00ce91c8a3a4e93b7f61a0fea315e00",
      "parents": [
        "3aea09dc9106407d8bc18e593fbffda9ad632844"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 01 22:36:55 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 03 15:08:56 2009 -0400"
      },
      "message": "nfsd4: make recall callback an asynchronous rpc\n\nAs with the probe, this removes the need for another kthread.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ccecee1e5e42981f5eb37f4411e8552b9db04d30",
      "tree": "e78f5af87832e18dc29bd48c430967e6d5509783",
      "parents": [
        "21515e46bc6a6279dd13f6c01898ada9720100a3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri May 01 11:33:53 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 03 14:45:02 2009 -0400"
      },
      "message": "nfsd41: slots are freed with session\n\nThe session and slots are allocated all in one piece.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.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": "e300a63ce4ccec073d254d883a3638d5dca1d771",
      "tree": "63df254b53d9e5a48f7a2d31ac62c9bc23b48aba",
      "parents": [
        "3cef9ab266a932899e756f7e1ea7a988a97bf3b2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 05 15:01:11 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 17:10:53 2009 -0400"
      },
      "message": "nfsd4: replace callback thread by asynchronous rpc\n\nWe don\u0027t really need a synchronous rpc, and moving to an asynchronous\nrpc allows us to do without this extra kthread.\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"
    }
  ],
  "next": "ecdd03b7914c91ef849e49c4d466c87f4981b5cd"
}
