)]}'
{
  "log": [
    {
      "commit": "03a4e1f6ddf25f48848e1bddcffc0ad489648331",
      "tree": "f140e3deb767d092eca997037ebb7b098d8afce9",
      "parents": [
        "631fc9ea05c97e5d1d14ea58a7347be4857d09da"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 19:55:22 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:55 2012 -0400"
      },
      "message": "nfsd4: move principal name into svc_cred\n\nInstead of keeping the principal name associated with a request in a\nstructure that\u0027s private to auth_gss and using an accessor function,\nmove it to svc_cred.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4ca1f872cda31fe1cfe5e90e027f7bef4980364c",
      "tree": "18c154d1548ce19b37cbcbc17de1e57cdc065b3a",
      "parents": [
        "21f72c9f0a6774d104fb655bda6099c378518945"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 14:18:16 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 19:14:36 2012 -0400"
      },
      "message": "nfsd4: use auth_unix unconditionally on backchannel\n\nThis isn\u0027t actually correct, but it works with the Linux client, and\nagrees with the behavior we used to have before commit 80fc015bdfe.\n\nLater patches will implement the spec-mandated behavior (which is to use\nthe security parameters explicitly given by the client in create_session\nor backchannel_ctl).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a52d726bbd928164609e6abc4dc967e819dbf09c",
      "tree": "604df65589a95311ab297f80ce377e82525ce597",
      "parents": [
        "1df00640c9111c881633d9b219f18e66c52599ec"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:02 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n\nWe\u0027ll need a way to flag the nfs4_client as already being recorded on\nstable storage so that we don\u0027t continually upcall. Currently, that\u0027s\nrecorded in the cl_firststate field of the client struct. Using an\nentire u32 to store a flag is rather wasteful though.\n\nThe cl_cb_flags field is only using 2 bits right now, so repurpose that\nto a generic flags field. Rename NFSD4_CLIENT_KILL to\nNFSD4_CLIENT_CB_KILL to make it evident that it\u0027s part of the callback\nflags. Add a mask that we can use for existing checks that look to see\nwhether any flags are set, so that the new flags don\u0027t interfere.\n\nConvert all references to cl_firstate to the NFSD4_CLIENT_STABLE flag,\nand add a new NFSD4_CLIENT_RECLAIM_COMPLETE flag.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1df00640c9111c881633d9b219f18e66c52599ec",
      "tree": "e36d3924d84f47ec93f6650ff1fd5b8ea7d10d24",
      "parents": [
        "ab4684d1560f8d77f6ce82bd3f1f82937070d397",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 21 16:42:14 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:48:54 2012 -0400"
      },
      "message": "Merge nfs containerization work from Trond\u0027s tree\n\nThe nfs containerization work is a prerequisite for Jeff Layton\u0027s reboot\nrecovery rework.\n"
    },
    {
      "commit": "8546ee518c6662ddb3075249fb31d89e5dbfb7d5",
      "tree": "0e56f5de9c1ebd807e06a391cb521421625fe392",
      "parents": [
        "59deeb9e5a2b535b95327c0d29bb3c2c4c3e8234"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Mar 09 17:02:28 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Mar 09 17:05:01 2012 -0500"
      },
      "message": "nfsd4: make sure set CB_PATH_DOWN sequence flag set\n\nMake sure this is set whenever there is no callback channel.\n\nIf a client does not set up a callback channel at all, then it will get\nthis flag set from the very start.  That\u0027s OK, it can just ignore the\nflag if it doesn\u0027t care.  If a client does care, I think it\u0027s better to\ninform it of the problem as early as possible.\n\nReported-by: Rick Macklem \u003crmacklem@uoguelph.ca\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a613fa168afc19179a7547fbba45644c5b6912bf",
      "tree": "02db1b9ca905ff49d9811175607757e3a885325f",
      "parents": [
        "080b794ce5ad318ce34c52abaedf1bc6788a5abb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 20 13:53:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:20 2012 -0500"
      },
      "message": "SUNRPC: constify the rpc_program\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0157d021d23a087eecfa830502f81cfe843f0d16",
      "tree": "e1e1e7e75146c7d234f552a0ffc6b0124827fe6f",
      "parents": [
        "c239d83b9921b8a8005a3bcd23000cfe18acf5c2"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:01 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: handle RPC client pipefs dentries by network namespace aware routines\n\nv2:\n1) \"Over-put\" of PipeFS mount point fixed. Fix is ugly, but allows to bisect\nthe patch set. And it will be removed later in the series.\n\nThis patch makes RPC clients PipeFs dentries allocations in it\u0027s owner network\nnamespace context.\nRPC client pipefs dentries creation logic has been changed:\n1) Pipefs dentries creation by sb was moved to separated function, which will\nbe used for handling PipeFS mount notification.\n2) Initial value of RPC client PipeFS dir dentry is set no NULL now.\n\nRPC client pipefs dentries cleanup logic has been changed:\n1) Cleanup is done now in separated rpc_remove_pipedir() function, which takes\ncare about pipefs superblock locking.\n\nAlso this patch removes slashes from cb_program.pipe_dir_name and from\nNFS_PIPE_DIRNAME to make rpc_d_lookup_sb() work. This doesn\u0027t affect\nvfs_path_lookup() results in nfs4blocklayout_init() since this slash is cutted\noff anyway in link_path_walk().\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "68c97153fb7f2877f98aa6c29546381d9cad2fed",
      "tree": "6c233c15758788758c819248a9d821d0083f4ca6",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 13:22:46 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 05 10:42:38 2012 -0500"
      },
      "message": "SUNRPC: Clean up the RPCSEC_GSS service ticket requests\n\nInstead of hacking specific service names into gss_encode_v1_msg, we should\njust allow the caller to specify the service name explicitly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5423732a71577f7860c56a4eea2c34ff162ddd73",
      "tree": "5d7af992af7ff974796288272ce2604dad8f1284",
      "parents": [
        "8b289b2c2355c3bea75f3e499b4aa251a3191382"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Oct 19 19:12:58 2011 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 24 04:24:27 2011 -0400"
      },
      "message": "nfsd41: use SEQ4_STATUS_BACKCHANNEL_FAULT when cb_sequence is invalid\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2a74aba799bfbc02977b69400b7bf4d2850aea79",
      "tree": "d1119f4dbcd05087f7c2ba10203d6842e4252655",
      "parents": [
        "8335ebd94b3f5bed7875cc35848bbe46d8381695"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Sep 23 17:20:02 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Sep 26 17:35:25 2011 -0400"
      },
      "message": "nfsd4: move client * to nfs4_stateid, add init_stid helper\n\nThis will be convenient.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d5477a8db8134c481ad7b4b745f6defa119253e1",
      "tree": "dba3b9a52068041ddaa2bcdfb88dd181fb698c6e",
      "parents": [
        "dcef0413da9a17bfca917d8b49baf309ce76b737"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Sep 08 12:07:44 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 13 18:30:32 2011 -0400"
      },
      "message": "nfsd4: add common dl_stid field to delegation\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2c9c8f36c34e1defcaa7e4c298651998b47f5282",
      "tree": "47c48d0db92ea600163b3dfee52f3a0c48e47234",
      "parents": [
        "47c85291d3dd1a51501555000b90f8e281a0458e"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Feb 22 14:43:22 2011 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Feb 22 15:55:09 2011 -0800"
      },
      "message": "NFSD: fix decode_cb_sequence4resok\n\nFix bug introduced in patch\n85a56480 NFSD: Update XDR decoders in NFSv4 callback client\n\nAlthough decode_cb_sequence4resok ignores highest slotid and target highest slotid\nit must account for their space in their xdr stream when calling xdr_inline_decode\n\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0af3f814ccf0a13d3e01e8115b96f1824379fc72",
      "tree": "e5d3fb53f7cd0ed0ceb66e1991e6e7791b63e024",
      "parents": [
        "541ce98c10111dae7604543dda6c6f7e7a6015d8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Jan 13 11:25:31 2011 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "NFSD: use nfserr for status after decode_cb_op_status\n\nBugs introduced in 85a56480191ca9f08fc775c129b9eb5c8c1f2c05\n\"NFSD: Update XDR decoders in NFSv4 callback client\"\n\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711",
      "tree": "29a582ee8af49577cce3e868800dfd8d8485b1e3",
      "parents": [
        "4795bb37effb7b8fe77e2d2034545d062d3788a8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 14:25:48 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 14:51:31 2011 -0500"
      },
      "message": "nfsd4: fix callback restarting\n\nEnsure a new callback is added to the client\u0027s list of callbacks at most\nonce.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9ee1ba5402e9d35fb35f8e61c968f4987b5fb443",
      "tree": "2f513ebaab9558dac9a3d7e37cb3422a972c082f",
      "parents": [
        "5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 17:08:19 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:06 2011 -0500"
      },
      "message": "nfsd4: initialize cb_per_client\n\nOtherwise a callback that is aborted before it runs will result in a\nlist_del on an uninitialized list head.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda",
      "tree": "831d815e91e23de373fe7fdc7a54b3eb098067f5",
      "parents": [
        "3ff3600e7eab16301e824293e8f49b9990bd4641"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 10 16:44:41 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: allow restarting callbacks\n\nIf we lose the backchannel and then the client repairs the problem,\nresend any callbacks.\n\nWe use a new cb_done flag to track whether there is still work to be\ndone for the callback or whether it can be destroyed with the rpc.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3ff3600e7eab16301e824293e8f49b9990bd4641",
      "tree": "54aebfd0b6321ad45fb9795003e276e8895259b8",
      "parents": [
        "14a24e99f4f506265b634c1cd04eca6394f49dbc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 10 16:37:51 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: simplify nfsd4_cb_prepare\n\nRemove handling for a nonexistant case (status \u0026\u0026 !-EAGAIN).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "229b2a0839870d0d4f91ad3b24ec13c57bbd50a0",
      "tree": "76798fb234c46aee1db85d69a37e034d107d16e0",
      "parents": [
        "84f5f7ccc59e628fc8754c0a837fd7e9559711ac"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 10 17:37:44 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: add helper function to run callbacks\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "84f5f7ccc59e628fc8754c0a837fd7e9559711ac",
      "tree": "0c735feb7862b45251a74ead6eb9ae789022a04c",
      "parents": [
        "eea4980660bc204bb9d11bb3bf2b1bde5fd5175f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Dec 09 15:52:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: make sure sequence flags are set after destroy_session\n\nIf this loses any backchannel, make sure we have a chance to notice that\nand set the sequence flags.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "77a3569d6c4e14e89fa628df383b6dccc0cce6be",
      "tree": "3e89bd0aa2fe679ec212212bc232651f08ef7b2b",
      "parents": [
        "f0418aa4b1103f959d64dc18273efa04ee0140e9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 30 18:51:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "nfsd4: keep finer-grained callback status\n\nDistinguish between when the callback channel is known to be down, and\nwhen it is not yet confirmed.  This will be useful in the 4.1 case.\n\nAlso, we don\u0027t seem to be using the fact that this field is atomic.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dcbeaa68dbbdacbbb330a86c7fc95a28473fc209",
      "tree": "5ef2b2c1e65d22275a867700551e4a663c4a98ad",
      "parents": [
        "1d1bc8f2074f0b728dfca2a3c16f2f5a3f298ffc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 15 17:25:45 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "nfsd4: allow backchannel recovery\n\nNow that we have a list of connections to choose from, we can teach the\ncallback code to just pick a suitable connection and use that, instead\nof insisting on forever using the connection that the first\ncreate_session was sent with.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6f3d772fb8a039de8f21d725f5e38c252b4c0efd",
      "tree": "a62c900be0d2766223f0e5630cebaaf2ffee0efb",
      "parents": [
        "3c726023402a2f3b28f49b9d90ebf9e71151157d"
      ],
      "author": {
        "name": "Takuma Umeya",
        "email": "tumeya@redhat.com",
        "time": "Wed Dec 15 14:09:01 2010 +0900"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 19:43:01 2011 -0500"
      },
      "message": "nfs4: set source address when callback is generated\n\nwhen callback is generated in NFSv4 server, it doesn\u0027t set the source\naddress. When an alias IP is utilized on NFSv4 server and suppose the\nclient is accessing via that alias IP (e.g. eth0:0), the client invokes\nthe callback to the IP address that is set on the original device (e.g.\neth0). This behavior results in timeout of xprt.\nThe patch sets the IP address that the client should invoke callback to.\n\nSigned-off-by: Takuma Umeya \u003ctumeya@redhat.com\u003e\n[bfields@redhat.com: Simplify gen_callback arguments, use helper function]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "65e4c8945575abca4e368e05ca3e9f77df030290",
      "tree": "3ae6e50500d131692697128835d7410c19939e74",
      "parents": [
        "bdd5f05d91e8ae68075b812ce244c918d3d752cd"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Thu Dec 16 15:25:54 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:19 2011 -0500"
      },
      "message": "nfsd: declare several functions of nfs4callback as static\n\nsetup_callback_client(), nfsd4_release_cb() and nfsd4_process_cb_update()\ndo not have users outside the translation unit. Let\u0027s declare it as\nstatic.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bf2695516db982e90a22fc94f93491b481796bb1",
      "tree": "367bf134ef892bfc3fcd2c4fe676b14102d97467",
      "parents": [
        "9f06c719f474be7003763284a990bed6377bb0d4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:59:29 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:25 2010 -0500"
      },
      "message": "SUNRPC: New xdr_streams XDR decoder API\n\nNow that all client-side XDR decoder routines use xdr_streams, there\nshould be no need to support the legacy calling sequence [rpc_rqst *,\n__be32 *, RPC res *] anywhere.  We can construct an xdr_stream in the\ngeneric RPC code, instead of in each decoder function.\n\nThis is a refactoring change.  It should not cause different behavior.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f06c719f474be7003763284a990bed6377bb0d4",
      "tree": "409ebc3505f943bfdb933ab0acd76ffb5347b372",
      "parents": [
        "1ac7c23e4af5e83525137661595000099f1ce94f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:59:18 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:25 2010 -0500"
      },
      "message": "SUNRPC: New xdr_streams XDR encoder API\n\nNow that all client-side XDR encoder routines use xdr_streams, there\nshould be no need to support the legacy calling sequence [rpc_rqst *,\n__be32 *, RPC arg *] anywhere.  We can construct an xdr_stream in the\ngeneric RPC code, instead of in each encoder function.\n\nAlso, all the client-side encoder functions return 0 now, making a\nreturn value superfluous.  Take this opportunity to convert them to\nreturn void instead.\n\nThis is a refactoring change.  It should not cause different behavior.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d93bd71cb3e2629cc88bc59f393bd4df4162b94",
      "tree": "0280f34e564ed29589026845fa2fba49eb7e9d17",
      "parents": [
        "85a56480191ca9f08fc775c129b9eb5c8c1f2c05"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:57:42 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:24 2010 -0500"
      },
      "message": "NFS: Repair whitespace damage in NFS PROC macro\n\nClean up.\n\nWhen I was making other changes in this area, checkscript.pl\ncomplained about the use of leading blanks in the PROC macros in the\nxdr files.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "85a56480191ca9f08fc775c129b9eb5c8c1f2c05",
      "tree": "af91e03abcb7344662d25ad24e036f6de1af0c02",
      "parents": [
        "a033db487eec09afde00a3562842982a8053c887"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:57:32 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:24 2010 -0500"
      },
      "message": "NFSD: Update XDR decoders in NFSv4 callback client\n\nClean up.\n\nRemove old-style NFSv4 XDR macros in favor of the style now used in\nfs/nfs/nfs4xdr.c.  These were forgotten during the recent nfs4xdr.c\nrewrite.\n\nAdditional whitespace cleanup adds to the size of this patch.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a033db487eec09afde00a3562842982a8053c887",
      "tree": "8f1259105c54739e5292b55c4f77cc9b6eaafea1",
      "parents": [
        "3460f29a27344db8c7af62cafdb961286ef0b6cd"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:57:22 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:23 2010 -0500"
      },
      "message": "NFSD: Update XDR encoders in NFSv4 callback client\n\nClean up.\n\nRemove old-style NFSv4 XDR macros in favor of the style now used in\nfs/nfs/nfs4xdr.c.  These were forgotten during the recent nfs4xdr.c\nrewrite.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d18c1c2a9a74e0f966c257520b8b7f5136c87b3",
      "tree": "0529ee5b46a8049eb0af7dbf4c056a7de2369fe8",
      "parents": [
        "8323c3b2a6b6543919d5ebdddc7d52f192126161"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 23:00:12 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:12:14 2010 -0400"
      },
      "message": "nfsd4: only require krb5 principal for NFSv4.0 callbacks\n\nIn the sessions backchannel case, we don\u0027t need a krb5 principal name\nfor the client; we use the already-created forechannel credentials\ninstead.\n\nSome cleanup, while we\u0027re there: make it clearer which code here is 4.0-\nor sessions- specific.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8323c3b2a6b6543919d5ebdddc7d52f192126161",
      "tree": "35976d6ba2f1917f569e44056c43f2bf724af7ef",
      "parents": [
        "792c95dd519c54d6b0fd6401b3da7ea67b0d6b72"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 19:36:51 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:12:02 2010 -0400"
      },
      "message": "nfsd4: move minorversion to client\n\nThe minorversion seems more a property of the client than the callback\nchannel.\n\nSome time we should probably also enforce consistent minorversion usage\nfrom the client; for now, this is just a cosmetic change.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5a3c9d71343cf27b7afef24ed312368d48dada09",
      "tree": "f547acfdd49706cfa484dce5dc16339617e6346b",
      "parents": [
        "8b5ce5cd44743af84507721fa2cb4125ae67955c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 17:56:52 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:55 2010 -0400"
      },
      "message": "nfsd4: separate callback change and callback probe\n\nOnly one of the nfsd4_callback_probe callers actually cares about\nchanging the callback information.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8b5ce5cd44743af84507721fa2cb4125ae67955c",
      "tree": "24a1fa7191204140283803c17780dc4bb4066bba",
      "parents": [
        "d29c374cd20de620898d2936396048518809ae24"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 17:31:50 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:54 2010 -0400"
      },
      "message": "nfsd4: callback program number is per-session\n\nThe callback program is allowed to depend on the session which the\ncallback is going over.\n\nNo change in behavior yet, while we still only do callbacks over a\nsingle session for the lifetime of the client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ac7c46f29a44f6d7f6d2e36dc874c0b7056acad2",
      "tree": "8349c56fbb67cb456fea62fee6ef29df20d6f87b",
      "parents": [
        "90c8145bb6fe1d9e0a808de6a701748967588bbd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 14 19:01:57 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:51 2010 -0400"
      },
      "message": "nfsd4: make backchannel sequence number per-session\n\nCurrently we don\u0027t deal well with a client that has multiple sessions\nassociated with it (even simultaneously, or serially over the lifetime\nof the client).\n\nIn particular, we don\u0027t attempt to keep the backchannel running after\nthe original session diseappears.\n\nWe will fix that soon.\n\nOnce we do that, we need the slot sequence number to be per-session;\notherwise, for example, we cannot correctly handle a case like this:\n\n\t- All session 1 connections are lost.\n\t- The client creates session 2.  We use it for the backchannel\n\t  (since it\u0027s the only working choice).\n\t- The client gives us a new connection to use with session 1.\n\t- The client destroys session 2.\n\nAt this point our only choice is to go back to using session 1.  When we\ndo so we must use the sequence number that is next for session 1.  We\ntherefore need to maintain multiple sequence number streams.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "90c8145bb6fe1d9e0a808de6a701748967588bbd",
      "tree": "49a1b74340f8369b3d77c705cf5b5f93f44f74b3",
      "parents": [
        "edd76786633a3145661c7a90c9baccae8e3c9e84"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 14 17:49:37 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:50 2010 -0400"
      },
      "message": "nfsd4: use client pointer to backchannel session\n\nInstead of copying the sessionid, use the new cl_cb_session pointer,\nwhich indicates which session we\u0027re using for the backchannel.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6ff8da088766d70f0441feb982b82978a6cbf7ef",
      "tree": "7d0e90e4e03323fec67a972cdff60c9b8a96925a",
      "parents": [
        "fb003923263c3f0cb02adbd56a22fe16ef5c0e77"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jun 04 20:04:45 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:44 2010 -0400"
      },
      "message": "nfsd4: Move callback setup to callback queue\n\nInstead of creating the new rpc client from a regular server thread,\nset a flag, kick off a null call, and allow the null call to do the work\nof setting up the client on the callback workqueue.\n\nUse a spinlock to ensure the callback work gets a consistent view of the\ncallback parameters.\n\nThis allows, for example, changing the callback from contexts where\nsleeping is not allowed.  I hope it will also keep the locking simple as\nwe add more session and trunking features, by serializing most of the\ncallback-specific work.\n\nThis also closes a small race where the the new cb_ident could be used\nwith an old connection (or vice-versa).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fb003923263c3f0cb02adbd56a22fe16ef5c0e77",
      "tree": "99eefb1d045250e1b871b92660d0e0f084aa67d3",
      "parents": [
        "cee277d92495a9ea49a6137fe7005d7c76b31b5b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 31 18:21:37 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:43 2010 -0400"
      },
      "message": "nfsd4: remove separate cb_args struct\n\nI don\u0027t see the point of the separate struct.  It seems to just be\ngetting in the way.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "cee277d92495a9ea49a6137fe7005d7c76b31b5b",
      "tree": "c7e80e31d64038d17761472d9a349330426d8c12",
      "parents": [
        "5878453dbde627a8e1b5a4693087e36cb88d45b1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 26 17:52:14 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:43 2010 -0400"
      },
      "message": "nfsd4: use generic callback code in null case\n\nThis will eventually allow us, for example, to kick off null callback\nfrom contexts where we can\u0027t sleep.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5878453dbde627a8e1b5a4693087e36cb88d45b1",
      "tree": "0cc34915aca412599363af87e59f16fb327a28a3",
      "parents": [
        "1c8556026edac60368ceef446f0febc08014ba78"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 16 16:47:08 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:43 2010 -0400"
      },
      "message": "nfsd4: generic callback code\n\nMake the recall callback code more generic, so that other callbacks\nwill be able to use it too.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1c8556026edac60368ceef446f0febc08014ba78",
      "tree": "b87d81088d213d4a8e62e6b76abc4b2ab198acde",
      "parents": [
        "586f36735e1d38c32bbfbb2716461e7178724b15"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 26 17:46:00 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:43 2010 -0400"
      },
      "message": "nfsd4: rename nfs4_rpc_args-\u003enfsd4_cb_args\n\nWith apologies for the gratuitous rename, the new name seems more\nhelpful to me.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "586f36735e1d38c32bbfbb2716461e7178724b15",
      "tree": "7754079a37b0cc78f95bb32bbd682aa3f821ed2a",
      "parents": [
        "07263f1efe7d5b96e6713471abfa087f41bb2b7c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 26 17:40:53 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:43 2010 -0400"
      },
      "message": "nfsd4: combine nfs4_rpc_args and nfsd4_cb_sequence\n\nThese two structs don\u0027t really need to be distinct as far as I can tell.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "07263f1efe7d5b96e6713471abfa087f41bb2b7c",
      "tree": "bb5fb62ff610cd9f4cf6abe50baa4a6c2a9a5194",
      "parents": [
        "1e7af1b8062598a038c04dfaaabd038a0d6e8b6a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 31 19:09:40 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:43 2010 -0400"
      },
      "message": "nfsd4: minor variable renaming (cb -\u003e conn)\n\nNow that we have both nfsd4_callback and nfsd4_cb_conn structures, I get\nconfused if variables of both types are always named cb....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c653ce3f0aee9bb2b221ebf3579385c06f81efcd",
      "tree": "d0f5a8018e2cf959b6bc1549ce75602ed179dca9",
      "parents": [
        "62832c039eab9d03cd28a66427ce8276988f28b0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:04:45 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:56 2010 -0400"
      },
      "message": "sunrpc: Add net to rpc_create_args\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1132b26029918aa8fb5ba24a81b5c234e61f356c",
      "tree": "253bfb658aefaf3e38608c99c0845d52823d590c",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 13 17:31:16 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 07 19:21:18 2010 -0400"
      },
      "message": "nfsd: remove duplicate NFS4_STATEID_SIZE declaration\n\nUse NFS4_STATEID_SIZE from include/linux/nfs4\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c18c821fd40ad0ffc199a55be874e556bf999416",
      "tree": "ba1830c90160a4f85a32552425a556b70e56bae1",
      "parents": [
        "774f8bbd9ef2e71d4ef4b89933d292091d31ca98"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Jun 29 14:33:55 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 17:05:39 2010 -0400"
      },
      "message": "nfsd41: Fix a crash when a callback is retried\n\nIf a callback is retried at nfsd4_cb_recall_done() due to\nsome error, the returned rpc reply crashes here:\n\n@@ -514,6 +514,7 @@ decode_cb_sequence(struct xdr_stream *xdr, struct nfsd4_cb_sequence *res,\n \tu32 dummy;\n \t__be32 *p;\n\n +\tBUG_ON(!res);\n \tif (res-\u003ecbs_minorversion \u003d\u003d 0)\n \t\treturn 0;\n\n[BUG_ON added for demonstration]\n\nThis is because the nfsd4_cb_done_sequence() has NULLed out\nthe task-\u003etk_msg.rpc_resp pointer.\n\nAlso eventually the rpc would use the new slot without making\nsure it is free by calling nfsd41_cb_setup_sequence().\n\nThis problem was introduced by a 4.1 protocol addition patch:\n\t[0421b5c5] nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n\nWhich was overlooking the possibility of an RPC callback retries.\nFor not-4.1 case redoing the _prepare is harmless.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cba9ba4b902270c22f8b9c5149a284216b633fc1",
      "tree": "8d51f4f169e25113a319e794afe130de53db4ca2",
      "parents": [
        "ac94bf582529343bb7f354d0eef6dc4e566bbbd5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 01 11:21:40 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 24 12:24:55 2010 -0400"
      },
      "message": "nfsd4: fix delegation recall race use-after-free\n\nWhen the rarely-used callback-connection-changing setclientid occurs\nsimultaneously with a delegation recall, we rerun the recall by\nrequeueing it on a workqueue.  But we also need to take a reference on\nthe delegation in that case, since the delegation held by the rpc itself\nwill be released by the rpc_release callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ac94bf582529343bb7f354d0eef6dc4e566bbbd5",
      "tree": "bc42a55d8231f0f64dff935301f473cd2494b1b7",
      "parents": [
        "ec8acac84aea4245ae2cc999d56a68f0302cc847"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 31 19:06:39 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 24 12:24:53 2010 -0400"
      },
      "message": "nfsd4: fix deleg leak on callback error\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9303bbd3de3b25061de11e4d8c891fa9592fad8c",
      "tree": "515880cffa7e9805b95d2e19bd22c0c8c0adbf73",
      "parents": [
        "4731030d58a146630f5e8a0519661a5344a60f45"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue May 25 09:50:23 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 22 17:19:51 2010 -0400"
      },
      "message": "nfsd: nfs4callback encode_stateid helper function\n\nTo be used also for the pnfs cb_layoutrecall callback\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd4: fix cb_recall encoding]\n    \"nfsd: nfs4callback encode_stateid helper function\" forgot to reserve\n    more space after return from the new helper.\nReported-by: Michael Groshans \u003cgroshans@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "68a4b48ce6cb73a9643bae6dd3e0f062e3fd8ef7",
      "tree": "8f4f795edea5ef4071a06a3fd8de382d376a24f3",
      "parents": [
        "24a0111e405abeb74701ce3b7b665365c27de19e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 27 09:30:39 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 31 12:43:59 2010 -0400"
      },
      "message": "nfsd4: don\u0027t bother storing callback reply tag\n\nWe don\u0027t use this, and probably never will.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "172c85dd5764d2766bfd68621e5b54e85c4a6cfa",
      "tree": "960e6d16444e7d508516a443e51d7cd3cdaf65bb",
      "parents": [
        "378b7d37f90399b7c34373a5925450529afb917b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 30 11:53:12 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 31 12:43:53 2010 -0400"
      },
      "message": "nfsd4: treat more recall errors as failures\n\nIf a recall fails for some unexpected reason, instead of ignoring it and\ntreating it like a success, it\u0027s safer to treat it as a failure,\npreventing further delgation grants and returning CB_PATH_DOWN.\n\nAlso put put switches in a (two me) more logical order, with normal case\nfirst.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "378b7d37f90399b7c34373a5925450529afb917b",
      "tree": "f974624cf40892f1c523c0cb0e360268f8a615d7",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 25 11:57:56 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 31 12:43:51 2010 -0400"
      },
      "message": "nfsd4: remove extra put() on callback errors\n\nSince rpc_call_async() guarantees that the release method will be called\neven on failure, this put is wrong.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b7299f44394336f51b526247a870d47d28f4f97c",
      "tree": "bb8e365349e9e048f0f927843acca26ddd6a8e2b",
      "parents": [
        "15ddb4aec54422ead137b03ea4e9b3f5db3f7cc2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 14 17:57:35 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 18 11:51:38 2010 -0400"
      },
      "message": "nfs4: minor callback code simplification, comment\n\nNote the position in the version array doesn\u0027t have to match the actual\nrpc version number--to me it seems clearer to maintain the distinction.\n\nAlso document choice of rpc callback version number, as discussed in\ne.g. http://www.ietf.org/mail-archive/web/nfsv4/current/msg07985.html\nand followups.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ab707e156593ff7fffd615757332dbff6616836a",
      "tree": "a9d1c7d851ca178e616f05aab30377ab778762b4",
      "parents": [
        "d76829889ac4250a18cfcc1a606bb256bb9c570c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:14:06 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 11:59:11 2010 -0400"
      },
      "message": "nfsd4: nfsd4_destroy_session must set callback client under the state lock\n\nnfsd4_set_callback_client must be called under the state lock to atomically\nset or unset the callback client and shutting down the previous one.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5306293c9cd2caf41849cc909281bda628bb989e",
      "tree": "3be4e8231e2772c8a43ddbef5c6a72c20b3054bb",
      "parents": [
        "dbd65a7e44fff4741a0b2c84bd6bace85d22c242",
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 11:27:05 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 11:29:05 2010 -0400"
      },
      "message": "Merge commit \u0027v2.6.34-rc6\u0027\n\nConflicts:\n\tfs/nfsd/nfs4callback.c\n"
    },
    {
      "commit": "4b21d0defcc9680da8a694e92d5fe8eb668c2c0b",
      "tree": "35684f814bbbc428236e0e542b292521e59f06e3",
      "parents": [
        "2bf23875f55af6038a5d1c164a52cec4c24609ba"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Mar 07 23:39:01 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:02 2010 -0400"
      },
      "message": "nfsd4: allow 4.0 clients to change callback path\n\nThe rfc allows a client to change the callback parameters, but we didn\u0027t\npreviously implement it.\n\nTeach the callbacks to rerun themselves (by placing themselves on a\nworkqueue) when they recognize that their rpc task has been killed and\nthat the callback connection has changed.\n\nThen we can change the callback connection by setting up a new rpc\nclient, modifying the nfs4 client to point at it, waiting for any work\nin progress to complete, and then shutting down the old client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2bf23875f55af6038a5d1c164a52cec4c24609ba",
      "tree": "b001fc6594833c6554c11836d23958c7c7049e35",
      "parents": [
        "b12a05cbdfdf7e4d8cbe8fa78e995f971420086b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 08 12:37:27 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:02 2010 -0400"
      },
      "message": "nfsd4: rearrange cb data structures\n\nMainly I just want to separate the arguments used for setting up the tcp\nclient from the rest.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b12a05cbdfdf7e4d8cbe8fa78e995f971420086b",
      "tree": "05f82bd2abf8ab0b688383c467b76db713cdcc09",
      "parents": [
        "b5a1a81e5c25fb6bb3fdc1812ba69ff6ab638fcf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 04 11:32:59 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:02 2010 -0400"
      },
      "message": "nfsd4: cl_count is unused\n\nNow that the shutdown sequence guarantees callbacks are shut down before\nthe client is destroyed, we no longer have a use for cl_count.\n\nWe\u0027ll probably reinstate a reference count on the client some day, but\nit will be held by users other than callbacks.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b5a1a81e5c25fb6bb3fdc1812ba69ff6ab638fcf",
      "tree": "c524a75d111f4060eb985161478362ac18c17169",
      "parents": [
        "3c4ab2aaa90826060b1e8d4036f9bb8325f8759e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 03 14:52:55 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:01 2010 -0400"
      },
      "message": "nfsd4: don\u0027t sleep in lease-break callback\n\nThe NFSv4 server\u0027s fl_break callback can sleep (dropping the BKL), in\norder to allocate a new rpc task to send a recall to the client.\n\nAs far as I can tell this doesn\u0027t cause any races in the current code,\nbut the analysis is difficult.  Also, the sleep here may complicate the\nmove away from the BKL.\n\nSo, just schedule some work to do the job for us instead.  The work will\nlater also prove useful for restarting a call after the callback\ninformation is changed.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9045b4b9f7f340f43de0cf687b5b52f6feaaa984",
      "tree": "5f955b3544bb8051723646090c2f2ecc91b07225",
      "parents": [
        "3df796dbe97a98a6a25e6b7b88e9d326e261f371"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 21 17:53:04 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 02 17:04:32 2010 -0400"
      },
      "message": "nfsd4: remove probe task\u0027s reference on client\n\nAny null probe rpc will be synchronously destroyed by the\nrpc_shutdown_client() in expire_client(), so the rpc task cannot outlast\nthe nfs4 client.  Therefore there\u0027s no need for that task to hold a\nreference on the client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "227f98d98d2ed7929f41426adc21f57b927354a6",
      "tree": "8186b54a4f4e0cb5b3a7778f76854b00c7ce43db",
      "parents": [
        "788e69e548cc8d127b90f0de1f7b7e983d1d587a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Feb 18 08:27:24 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 02 16:28:11 2010 -0400"
      },
      "message": "nfsd4: preallocate nfs4_rpc_args\n\nInstead of allocating this small structure, just include it in the\ndelegation.\n\nThe nfsd4_callback structure isn\u0027t really necessary yet, but we plan to\nadd to it all the information necessary to perform a callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "cf07d2ea43e5c22149435ee9002cb737eac20eca",
      "tree": "be8af254331398b2be20090b2b61da432229f109",
      "parents": [
        "4ea41e2de5bba756858bb40f964e3490b6d1a25c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 28 23:20:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:01 2010 -0500"
      },
      "message": "nfsd4: simplify references to nfsd4 lease time\n\nInstead of accessing the lease time directly, some users call\nnfs4_lease_time(), and some a macro, NFSD_LEASE_TIME, defined as\nnfs4_lease_time().  Neither layer of indirection serves any purpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8d75da8afd068fa58b35e69c7c8c46770d9e7a98",
      "tree": "9bec3e2fb1334df46403073e260795d8fd9bf156",
      "parents": [
        "ccdb357ccb77cc4cbe4f7abee9efd19957f0753a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 03 16:13:29 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 03 16:13:29 2010 -0500"
      },
      "message": "nfsd4: fix minor memory leak\n\nThere\u0027s no need to allocate this cred more than once.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "58255a4e3ce506b43bb14d5579006731a981490d",
      "tree": "3b7cbbea0fc728b1a5c66b553a92f57440997ddb",
      "parents": [
        "978ebd97d1426d5708d3f353179ab81f191a7eeb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Feb 24 13:48:06 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 24 17:50:28 2010 -0800"
      },
      "message": "NFSD: NFSv4 callback client should use RPC_TASK_SOFTCONN\n\nThe server\u0027s callback client should stop trying to connect to the\nclient\u0027s callback server as soon as it gets ECONNREFUSED.\n\nThe NFS server\u0027s callback client does not call rpc_ping(), but appears\nto have it\u0027s own \"ping\" procedure, so it wasn\u0027t covered by commit\ncaabea8a.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7663dacd926584093dfc350892792054692b6cb3",
      "tree": "3300005fc836d8a6661d758212289963f850d728",
      "parents": [
        "1557aca7904ed6fadd22cdc3364754070bb3d3c3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 04 19:49:00 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:47 2009 -0500"
      },
      "message": "nfsd: remove pointless paths in file headers\n\nThe new .h files have paths at the top that are now out of date.  While\nwe\u0027re here, just remove all of those from fs/nfsd; they never served any\npurpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9a74af21330c8d46efa977d088a62cc1bfa954e9",
      "tree": "6f2e4b775738ae93da05ad475b244785bf40461e",
      "parents": [
        "68590c382b875cc9a76b06097f3dff6730d787c1"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:30:56 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:12 2009 -0500"
      },
      "message": "nfsd: Move private headers to source directory\n\nLots of include/linux/nfsd/* headers are only used by\nnfsd module. Move them to the source directory\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "341eb184469f8e4a6841fc49a57ad4a27e51c335",
      "tree": "df6b06cc5b15ae421b589865fc008df1219589a4",
      "parents": [
        "72579ac9cd68081108277c31781b127d0f420d61"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:29:12 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:09 2009 -0500"
      },
      "message": "nfsd: Source files #include cleanups\n\nNow that the headers are fixed and carry their own wait, all fs/nfsd/\nsource files can include a minimal set of headers. and still compile just\nfine.\n\nThis patch should improve the compilation speed of the nfsd module.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "ecdd03b7914c91ef849e49c4d466c87f4981b5cd",
      "tree": "16d67b4af0e8545f60e31f0b1f9cfb0f97526641",
      "parents": [
        "e1cab5a5896e142190cd66a8287099b52e5855a7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 23 19:35:22 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 16:44:53 2009 -0400"
      },
      "message": "nfsd4: create rpc callback client from server thread\n\nThe code is a little simpler, and it should be easier to avoid races, if\nwe just do all rpc client creation/destruction from nfsd or laundromat\nthreads and do only the rpc calls themselves asynchronously.  The rpc\ncreation doesn\u0027t involve any significant waiting (it doesn\u0027t call the\nclient, for example), so there\u0027s no reason not to do this.\n\nAlso don\u0027t bother destroying the client on failure of the rpc null\nprobe.  We may want to retry the probe later anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e1cab5a5896e142190cd66a8287099b52e5855a7",
      "tree": "dbdf0c075a83b192a1e2e2d450cac65f720a4ec4",
      "parents": [
        "595947acaaef373445131471a78650003f5d8e7d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 23 10:45:27 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 16:44:47 2009 -0400"
      },
      "message": "nfsd4: set cb_client inside setup_callback_client\n\nThis is just a minor code simplification.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "595947acaaef373445131471a78650003f5d8e7d",
      "tree": "706a17e13c60f802678964c6720486abfc33a5bc",
      "parents": [
        "f64f79ea5f5e02ba8585f35a10b4a3bcab0cea52"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 05 17:18:10 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 29 16:44:40 2009 -0400"
      },
      "message": "nfsd4: set shorter timeout\n\nWe tried to do something overly complicated with the callback rpc\ntimeouts here.  And they\u0027re wrong--the result is that by the time a\nsingle callback times out, it\u0027s already too late to tell the client\n(using the cb_path_down return to RENEW) that the callback is down.\n\nUse a much shorter, simpler timeout.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a601caeda21c0e94c153dbd146ec0899cc5f324f",
      "tree": "0fc46ede6bde9cf2ed6bf1417f18ef620867e2d0",
      "parents": [
        "418cd20aa19b54554cab383e2fd0d1cb8c4732ee"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 16:43:45 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:39 2009 -0400"
      },
      "message": "nfsd4: move rpc_client setup to a separate function\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "418cd20aa19b54554cab383e2fd0d1cb8c4732ee",
      "tree": "c101f0cd0bd6ed97bbf1781ca651e9fcf3d92c69",
      "parents": [
        "8b671b80707e4fc76adfe4387df07b3be1007c1e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 15:52:13 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:39 2009 -0400"
      },
      "message": "nfsd4: fix do_probe_callback errors\n\nThe errors returned aren\u0027t used.  Just return 0 and make them available\nto a dprintk().  Also, consistently use -ERRNO errors instead of nfs\nerrors.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "8b671b80707e4fc76adfe4387df07b3be1007c1e",
      "tree": "d9dafb3a1174dfeb84f72ba56a04625204aab415",
      "parents": [
        "d7fdcfe0aaaf6dffca6fa857bab374182fe7ca8b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 14:51:34 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: remove use of mutex for file_hashtable\n\nAs part of reducing the scope of the client_mutex, and in order to\nremove the need for mutexes from the callback code (so that callbacks\ncan be done as asynchronous rpc calls), move manipulations of the\nfile_hashtable under the recall_lock.\n\nUpdate the relevant comments while we\u0027re here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "d7fdcfe0aaaf6dffca6fa857bab374182fe7ca8b",
      "tree": "f53688b2496a98da148297972b4e27318810ec89",
      "parents": [
        "18f82731b7784ba81ee9b1ed6a8179b577fa898b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 15:39:54 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: put_nfs4_client does not require state lock\n\nSince free_client() is guaranteed to only be called once, and to only\ntouch the client structure itself (not any common data structures), it\nhas no need for the state lock.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n"
    },
    {
      "commit": "e37da04ed145d45c2a698d7cb373a7e1191fbe86",
      "tree": "d493557917d982e1b6fa5141779ba3984f1706d9",
      "parents": [
        "6c02eaa1d1e53b9b2cc27d0c6fff3e57da4b611f"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Thu Dec 18 19:55:16 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:50 2009 -0400"
      },
      "message": "nfsd: lock state around put client and delegation in nfsd4_cb_recall\n\nnot having the state locked before putting the client/delegation causes a bug.\nAlso removed the comment from the function header about the state being already locked\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@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": "6c02eaa1d1e53b9b2cc27d0c6fff3e57da4b611f",
      "tree": "af558f47858043d7c326c5b3d889c9447e65aaac",
      "parents": [
        "a4773c08f2872626cb923433284488fbe8acb0ae"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:30:51 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying delegation filehandle\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "df96fcf02a5fd2ae4e9b09e079dd6ef12d10ecd7",
      "tree": "0e51b83a1d83dfb3e7e389fdad8762e338656f85",
      "parents": [
        "0407717d8587f60003f4904bff27650cd836c00c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Dec 15 19:41:10 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:32:46 2009 -0500"
      },
      "message": "nfsd: git rid of nfs4_cb_null_ops declaration\n\nThere\u0027s no use for nfs4_cb_null_ops\u0027s declaration in fs/nfsd/nfs4callback.c\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "61054b14d545e257b9415d5ca0cd5f43762b4d0c",
      "tree": "7f648cf35a3b79aa1555f21050f11d415b93f381",
      "parents": [
        "945b34a7725a5f0741de7775132aafc58bfecfbb"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:19:00 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:19:00 2008 -0500"
      },
      "message": "nfsd: support callbacks with gss flavors\n\nThis patch adds server-side support for callbacks other than AUTH_SYS.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "608207e8884e083ad8b8d33eda868da70f0d63e8",
      "tree": "86073f5f2e4a550bb1efe395954abe3fa91a555e",
      "parents": [
        "68e76ad0baf8f5d5060377c2423ee6eed5c63057"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:17:40 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:17:40 2008 -0500"
      },
      "message": "rpc: pass target name down to rpc level on callbacks\n\nThe rpc client needs to know the principal that the setclientid was done\nas, so it can tell gssd who to authenticate to.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5b337b4877f7c4e1d761434ee04d045b0201e03",
      "tree": "0c31c4cfb0f2010a87b0f1ae7246cbd50068306e",
      "parents": [
        "97eb89bb0e5d9ab20dbc677cb18fad1421473287"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun Sep 28 09:21:26 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:40 2008 -0400"
      },
      "message": "nfsd: use nfs client rpc callback program\n\nsince commit ff7d9756b501744540be65e172d27ee321d86103\n\"nfsd: use static memory for callback program and stats\"\ndo_probe_callback uses a static callback program\n(NFS4_CALLBACK) rather than the one set in clp-\u003ecl_callback.cb_prog\nas passed in by the client in setclientid (4.0)\nor create_session (4.1).\n\nThis patches introduces rpc_create_args.prognumber that allows\noverriding program-\u003enumber when creating rpc_clnt.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "97eb89bb0e5d9ab20dbc677cb18fad1421473287",
      "tree": "bdb97a295476b8f934c6295b4a2faa9511311b30",
      "parents": [
        "db820d6376aa81accf5b648651e160fd76e363e2"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Sep 26 15:14:13 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:40 2008 -0400"
      },
      "message": "nfsd: do_probe_callback should not clear rpc stats\n\nNow that cb_stats are static (since commit\nff7d9756b501744540be65e172d27ee321d86103)\nthere\u0027s no need to clear them.\n\nInitially I thought it might make sense to do\nthat every callback probing but since the stats\nare per-program and they are shared between possibly\nseveral client callback instances, zeroing them out\nseems like the wrong thing to do.\n\nNote that that commit also introduced a bug\nsince stats.program is also being cleared in the process\nand it is not restored after the memset as it used to be.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    }
  ],
  "next": "8e40741494bd08a15af17b8cfd26a1f7ad1f5081"
}
