)]}'
{
  "log": [
    {
      "commit": "141aeb9f26f9f12f1584c128ce8697cdffb046e7",
      "tree": "295953858e8ddd265a1d3dae18266b1198c55132",
      "parents": [
        "52567b03ca38b6e556ced450d64dba8d66e23b0e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 26 08:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 26 08:09:46 2009 -0400"
      },
      "message": "NFSv4: Fix two unbalanced put_rpccred() issues.\n\nCommits 29fba38b (nfs41: lease renewal) and fc01cea9 (nfs41: sequence\noperation) introduce a couple of put_rpccred() calls on credentials for\nwhich there is no corresponding get_rpccred().\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d14249\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52567b03ca38b6e556ced450d64dba8d66e23b0e",
      "tree": "a08e14e2a8ab8c69e80eb5ea6208d473b1254582",
      "parents": [
        "a8b40bc7e635831b61c43acc71a86d3a68b2dff0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 23 14:46:42 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 23 14:46:42 2009 -0400"
      },
      "message": "NFSv4: Fix a bug when the server returns NFS4ERR_RESOURCE\n\nRFC 3530 states that when we recieve the error NFS4ERR_RESOURCE, we are not\nsupposed to bump the sequence number on OPEN, LOCK, LOCKU, CLOSE, etc\noperations. The problem is that we map that error into EREMOTEIO in the XDR\nlayer, and so the NFSv4 middle-layer routines like seqid_mutating_err(),\nand nfs_increment_seqid() don\u0027t recognise it.\n\nThe fix is to defer the mapping until after the middle layers have\nprocessed the error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62ab460cf5e450e1d207a98a9c6cf2e4a6a78fd1",
      "tree": "595ca70261f46b93bda1998285e5f5c7da684cbc",
      "parents": [
        "a78cb57a106fceeba26da2907db9d8886700e1dc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Add \u0027server capability\u0027 flags for NFSv4 recommended attributes\n\nIf the NFSv4 server doesn\u0027t support a POSIX attribute, the generic NFS code\nneeds to know that, so that it don\u0027t keep trying to poll for it.\n\nHowever, by the same count, if the NFSv4 server does support that\nattribute, then we should ensure that the inode metadata is appropriately\nlabelled as being untrusted. For instance, if we don\u0027t know the correct\nvalue of the file\u0027s uid, we should certainly not be caching ACLs or ACCESS\nresults.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a78cb57a106fceeba26da2907db9d8886700e1dc",
      "tree": "d9127810fa7f9d68232488bf33b947195c5d1e26",
      "parents": [
        "dd8ac1da4190139de70da18823ff8f5992a649ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Don\u0027t loop forever on state recovery failure...\n\nIf the server is broken, then retrying forever won\u0027t fix it. We\nshould just give up after a while, and return an error to the user.\nWe set the number of retries to 10 for now...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d953126a28f97ec965d23c69fd5795854c048f30",
      "tree": "d3f239909dac00e1bc7882a783b8b63b20345d4d",
      "parents": [
        "fccba8045537f7e840d0e7565e1989d465e488a3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 19:22:38 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 19:22:38 2009 -0400"
      },
      "message": "NFSv4: Fix a problem whereby a buggy server can oops the kernel\n\nWe just had a case in which a buggy server occasionally returns the wrong\nattributes during an OPEN call. While the client does catch this sort of\ncondition in nfs4_open_done(), and causes the nfs4_atomic_open() to return\n-EISDIR, the logic in nfs_atomic_lookup() is broken, since it causes a\nfallback to an ordinary lookup instead of just returning the error.\n\nWhen the buggy server then returns a regular file for the fallback lookup,\nthe VFS allows the open, and bad things start to happen, since the open\nfile doesn\u0027t have any associated NFSv4 state.\n\nThe fix is firstly to return the EISDIR/ENOTDIR errors immediately, and\nsecondly to ensure that we are always careful when dereferencing the\nnfs_open_context state pointer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fccba8045537f7e840d0e7565e1989d465e488a3",
      "tree": "89d80da7e017240e5a1d20c79501459c886fd007",
      "parents": [
        "b64aec8d1e1d8482a7b6cca60c8105c756bf1fe4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "message": "NFSv4: Fix an NFSv4 mount regression\n\nCommit 008f55d0e019943323c20a03493a2ba5672a4cc8 (nfs41: recover lease in\n_nfs4_lookup_root) forces the state manager to always run on mount. This is\na bug in the case of NFSv4.0, which doesn\u0027t require us to send a\nsetclientid until we want to grab file state.\n\nIn any case, this is completely the wrong place to be doing state\nmanagement. Moving that code into nfs4_init_session...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "578e4585685410cacd1a4ac86b7e3c12805be918",
      "tree": "57e2a3730e19a6332ad54e6570768f964b781e58",
      "parents": [
        "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Jun 18 22:01:23 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 20 14:55:12 2009 -0400"
      },
      "message": "nfs41: Move initialization of nfs4_opendata seq_res to nfs4_init_opendata_res\n\nnfs4_open_recover_helper clears opendata-\u003eo_res\nbefore calling nfs4_init_opendata_res, thus causing\nNFSv4.0 OPEN operations to be sent rather than nfsv4.1.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81",
      "tree": "143956f878290e85de7c9130f465e862f587ee53",
      "parents": [
        "301933a0acfdec837fd8b4884093b3f0fff01d8a",
        "4bf259e3ae5015e73282ba66716c4a917e1264ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:13:00 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 18 18:13:44 2009 -0700"
      },
      "message": "Merge branch \u0027devel-for-2.6.31\u0027 into for-2.6.31\n\nConflicts:\n\tfs/nfs/client.c\n\tfs/nfs/super.c\n"
    },
    {
      "commit": "4bf259e3ae5015e73282ba66716c4a917e1264ac",
      "tree": "4c79623911d24d86da799cee2797378a6a2a1181",
      "parents": [
        "a5a16bae707cd5d2bc97d7bd1a30079f18113a77"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jun 17 18:02:14 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:02:14 2009 -0700"
      },
      "message": "nfs: remove unnecessary NFS_INO_INVALID_ACL checks\n\nUnless I\u0027m mistaken, NFS_INO_INVALID_ACL is being checked twice during\ngetacl calls (i.e. first via nfs_revalidate_inode() and then by each all\nsite).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f8625a6a4bb76207302be58453603d8e324df490",
      "tree": "27be80250213e65592fd1812a4467c1c0af09138",
      "parents": [
        "050047ce71bcf60867d2af7a9dc965a9c6f15cb8"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:33 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:42 2009 -0700"
      },
      "message": "nfs41: Backchannel: Add a backchannel slot table to the session\n\nDefines a new \u0027struct nfs4_slot_table\u0027 in the \u0027struct nfs4_session\u0027\nfor use by the backchannel.  Initializes, resets, and destroys the backchannel\nslot table in the same manner the forechannel slot table is initialized,\nreset, and destroyed.\n\nThe sequenceid for each slot in the backchannel slot table is initialized\nto 0, whereas the forechannel slotid\u0027s sequenceid is set to 1.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "050047ce71bcf60867d2af7a9dc965a9c6f15cb8",
      "tree": "75510a0f57ac4b30d42a7d4f892bb7ec565128f7",
      "parents": [
        "b73dafa7ac94ca8387f65c57cb63a7ffac91bf2c"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:32 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:42 2009 -0700"
      },
      "message": "nfs41: Backchannel: Refactor nfs4_init_slot_table()\n\nGeneralize nfs4_init_slot_table() so it can be used to initialize the\nbackchannel slot table in addition to the forechannel slot table.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "b73dafa7ac94ca8387f65c57cb63a7ffac91bf2c",
      "tree": "4df5b49dd611a0b585ff2216e219296e240a7506",
      "parents": [
        "65fc64e547c794764a441e16e95bb76c0e256bd7"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:31 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:41 2009 -0700"
      },
      "message": "nfs41: Backchannel: Refactor nfs4_reset_slot_table()\n\nGeneralize nfs4_reset_slot_table() so it can be used to reset the\nbackchannel slot table in addition to the forechannel slot table.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "5a0ffe544c54f62be99751e369f4d0f44bd5ee19",
      "tree": "893bfed85d389220b404f5fabcb4d15aa36c9624",
      "parents": [
        "343952fa5aac888934ffc203abed26a823400eb6"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:23:18 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:34 2009 -0700"
      },
      "message": "nfs41: Release backchannel resources associated with session\n\nFrees the preallocated backchannel resources that are associated with\nthis session when the session is destroyed.\n\nA backchannel is currently created once per session. Destroy the backchannel\nonly when the session is destroyed.\n\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "0f91421e8ea986c990c01bf091ceff1d59c165ff",
      "tree": "2b78fce5cb8b2d939c3b06a07027c1792c0a938e",
      "parents": [
        "0b5b7ae0a853c91015bb3b1729166ca65f693322"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:23:16 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:33 2009 -0700"
      },
      "message": "nfs41: Client indicates presence of NFSv4.1 callback channel.\n\nSet the SESSION4_BACK_CHAN flag to indicate the client supports a backchannel.\n\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "965b5d679146c9f69bc0325388bb9ed357863c4f",
      "tree": "d70fe13004404f1d3a203c8b9b90aa5f61150115",
      "parents": [
        "d5122201a7f90b2aa73092f158b84d1d74f1134d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:59 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:59 2009 -0700"
      },
      "message": "NFSv4: Handle more errors when recovering open file and locking state\n\nIt is possible for servers to return NFS4ERR_BAD_STATEID when\nthe state management code is recovering locks or is reclaiming state when\nreturning a delegation. Ensure that we handle that case.\nWhile we\u0027re at it, add in handlers for NFS4ERR_STALE,\nNFS4ERR_ADMIN_REVOKED, NFS4ERR_OPENMODE, NFS4ERR_DENIED and\nNFS4ERR_STALE_STATEID, since the protocol appears to allow for them too.\n\nAlso handle ENOMEM...\n\nFinally, rather than add new NFSv4.0-specific errors and error handling into\nthe generic delegation code, move that open file and locking state error\nhandling into the NFSv4 layer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5122201a7f90b2aa73092f158b84d1d74f1134d",
      "tree": "7d2c55cd74dd31b5977861d0bc71b31424dc68ed",
      "parents": [
        "01c3f05228ce7fc19baa103e4e4bf6c1b5062a53"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:58 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:58 2009 -0700"
      },
      "message": "NFSv4: Move error handling out of the delegation generic code\n\nThe NFSv4 delegation recovery code is required by the protocol to handle\nmore errors. Rather than add NFSv4.0 specific errors into \u0027generic\u0027\ndelegation code, we should move the error handling into the NFSv4 layer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34dc1ad752ad3f55b2a6e6cd8cfcf3504682fec7",
      "tree": "8816d7038c09eae46e2da51561f2e80cc91063e0",
      "parents": [
        "78722e9c9208a312695178f5331511badd190598"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:52 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:43:45 2009 -0700"
      },
      "message": "nfs41: increment_{open,lock}_seqid\n\nUnlike minorversion0, in nfsv4.1 the open and lock seqids need\nnot be incremented by the client and should always be set to zero.\n\nThis is implemented using a new nfs_rpc_ops methods -\nincrement_open_seqid and increment_lock_seqid\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: check for session not minorversion]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "008f55d0e019943323c20a03493a2ba5672a4cc8",
      "tree": "9d23ac89a198b307fa39018a228bd365e72a40d2",
      "parents": [
        "b4b82607ffcf09b57301846d154f2c09c0b807c0"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:50 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:13 2009 -0700"
      },
      "message": "nfs41: recover lease in _nfs4_lookup_root\n\nThis creates the nfsv4.1 session on mount.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4b82607ffcf09b57301846d154f2c09c0b807c0",
      "tree": "3ffce1ce6e27d22296ce62b5c8dbe2d32ac2cbef",
      "parents": [
        "90a16617ee6a052c3a1aac00eb67136324cf4dd0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:49 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:13 2009 -0700"
      },
      "message": "nfs41: get_clid_cred for EXCHANGE_ID\n\nUnlike SETCLIENTID, EXCHANGE_ID requires a machine credential. Do not search\nfor credentials other than the machine credential.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90a16617ee6a052c3a1aac00eb67136324cf4dd0",
      "tree": "9c164467a9270234b2cf6b167b6427733e50b8c6",
      "parents": [
        "591d71cbde186cc498c0d9718dc17f2fadf7c643"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:48 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:12 2009 -0700"
      },
      "message": "nfs41: add a get_clid_cred function to nfs4_state_recovery_ops\n\nEXCHANGE_ID has different credential requirements than SETCLIENTID.\nPrepare for a separate credential function.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "591d71cbde186cc498c0d9718dc17f2fadf7c643",
      "tree": "0cda78617611b2c3d3fb058af3cc0513ead80433",
      "parents": [
        "a7b721037f898b29a8083da59b1dccd3da385b07"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:47 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:11 2009 -0700"
      },
      "message": "nfs41: establish sessions-based clientid\n\nnfsv4.1 clientid is established via EXCHANGE_ID rather than\nSETCLIENTID{,_CONFIRM}\n\nThis is implemented using a new establish_clid method in\nnfs4_state_recovery_ops.\n\nnfs41: establish clientid via exchange id only if cred !\u003d NULL\n\n\u003eFrom 2.6.26 reclaimer() uses machine cred for setting up the client id\ntherefore it is never expected to be NULL.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\n[removed dprintk]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: lease renewal]\n[revamped patch for new nfs4_state_manager design]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a7b721037f898b29a8083da59b1dccd3da385b07",
      "tree": "57d0fba7528118a9d4dcd8395adbdb91956fcb17",
      "parents": [
        "8e69514f2981d85108c2bd220ff8e188c0c27cdb"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:46 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:11 2009 -0700"
      },
      "message": "nfs41: introduce get_state_renewal_cred\n\nUse the machine cred for sending SEQUENCE to renew\nthe client\u0027s lease.\n\n[revamp patch for new state management design starting 2.6.29]\n[nfs41: support minorversion 1 for nfs4_check_lease]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: get cred in exchange_id when cred arg is NULL]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use cl_machined_cred instead of cl_ex_cred]\n    Since EXCHANGE_ID insists on using the machine credential, cl_ex_cred is\n    not needed. nfs4_proc_exchange_id() is only called if the machine credential\n    is available. Remove the credential logic from nfs4_proc_exchange_id.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8e69514f2981d85108c2bd220ff8e188c0c27cdb",
      "tree": "b106990c6ac0a286ae449afe8f0d781abcb754fe",
      "parents": [
        "29fba38b793225798104a1ac870e6807ebd078dd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:45 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:10 2009 -0700"
      },
      "message": "nfs41: support minorversion 1 for nfs4_check_lease\n\n[moved nfs4_get_renew_cred related changes to\n \"nfs41: introduce get_state_renewal_cred\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "29fba38b793225798104a1ac870e6807ebd078dd",
      "tree": "35b5fb1999a29b1b43ad1c4d1c816f42942bca99",
      "parents": [
        "b069d94af7785750228287c35f9ce5c463515726"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:44 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:09 2009 -0700"
      },
      "message": "nfs41: lease renewal\n\nSend a NFSv4.1 SEQUENCE op rather than RENEW that was deprecated in\nminorversion 1.\nUse the nfs_client minorversion to select reboot_recover/\nnetwork_partition_recovery/state_renewal ops.\n\nNote: we use reclaimer to create the nfs41 session before there are any\ncl_superblocks for the nfs_client.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: check for session not minorversion]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[revamped patch for new nfs4_state_manager design]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: obliterate nfs4_state_recovery_ops.renew_lease method]\n    moved to nfs4_state_maintenance_ops\n[also undid per-minorversion nfs4_state_recovery_ops here]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b069d94af7785750228287c35f9ce5c463515726",
      "tree": "6528dba606aa13369ff91ff8c23668d995ac5b91",
      "parents": [
        "4745e3154bf33048d970d1519703089493988f65"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:43 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:09 2009 -0700"
      },
      "message": "nfs41: schedule async session reset\n\nDefine a new session reset state which is set upon a sequence operation error\nin both the sync and async error handlers.\n\nPlace all new requests and all but the last outstanding rpc on the\nslot_tbl_waitq. Spawn the recovery thread when the last slot is free.\nCall nfs4_proc_destroy_session, reinitialize the session, call\nnfs4_proc_create_session, clear the session reset state, and wake up the next\ntask on the slot_tbl_waitq.\n\nReturn the nfs4_proc_destroy_session status to the session reclaimer and\ncheck for NFS4ERR_BADSESSION and NFS4ERR_DEADSESSION. Other destroy session\nerrors should be handled in nfs4_proc_destroy_session where the call can\nbe retried with adjusted arguments.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nnfs41: make nfs4_wait_bit_killable public]\n    nfs4_wait_bit_killable to be used by NFSv4.1 session recover logic.\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: have create_session work on nfs_client]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: trigger the state manager for session reset]\n    Replace the session reset state with the NFS4CLNT_SESSION_SETUP cl_state.\n    Place all rpc tasks to sleep on the slot table waitqueue until the slot\n    table is drained, then schedule state recovery and wait for it to complete.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: remove nfs41_session_recovery [ch]\nReplaced by using the nfs4_state_manager.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: nfs4_wait_bit_killable only used locally]\n[nfs41: keep nfs4_wait_bit_killable static]\n[nfs41: keep const nfs_server in nfs4_handle_exception]\n[nfs41: remove session parameter from nfs4_find_slot]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: resset the session from nfs41_setup_sequence]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4745e3154bf33048d970d1519703089493988f65",
      "tree": "474017eef52b407864fde5ed036db3270544d085",
      "parents": [
        "eedc020e718b8ce45381383ec66030f09eb02a1e"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:42 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:08 2009 -0700"
      },
      "message": "nfs41: kick start nfs41 session recovery when handling errors\n\nRemove checking for any errors that the SEQUENCE operation does not return.\n-NFS4ERR_STALE_CLIENTID, NFS4ERR_EXPIRED, NFS4ERR_CB_PATH_DOWN, NFS4ERR_BACK_CHAN_BUSY, NFS4ERR_OP_NOT_IN_SESSION.\n\nSEQUENCE operation error recovery is very primative, we only reset the session.\n\nRemove checking for any errors that are returned by the SEQUENCE operation, but\nthat resetting the session won\u0027t address.\nNFS4ERR_RETRY_UNCACHED_REP, NFS4ERR_SEQUENCE_POS,NFS4ERR_TOO_MANY_OPS.\n\nAdd error checking for missing SEQUENCE errors that a session reset will\naddress.\nNFS4ERR_BAD_HIGH_SLOT, NFS4ERR_DEADSESSION, NFS4ERR_SEQ_FALSE_RETRY.\n\nA reset of the session is currently our only response to a SEQUENCE operation\nerror. Don\u0027t reset the session on errors where a new session won\u0027t help.\n\nDon\u0027t reset the session on errors where a new session won\u0027t help.\n\n[nfs41: nfs4_async_handle_error update error checking]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: trigger the state manager for session reset]\n    Replace session state bit with nfs_client state bit.  Set the\n    NFS4CLNT_SESSION_SETUP bit upon a session related error in the sync/async\n    error handlers.\n[nfs41: _nfs4_async_handle_error fix session reset error list]\nSequence operation errors that session reset could help.\nNFS4ERR_BADSESSION\nNFS4ERR_BADSLOT\nNFS4ERR_BAD_HIGH_SLOT\nNFS4ERR_DEADSESSION\nNFS4ERR_CONN_NOT_BOUND_TO_SESSION\nNFS4ERR_SEQ_FALSE_RETRY\nNFS4ERR_SEQ_MISORDERED\n\nSequence operation errors that a session reset would not help\n\nNFS4ERR_BADXDR\nNFS4ERR_DELAY\nNFS4ERR_REP_TOO_BIG\nNFS4ERR_REP_TOO_BIG_TO_CACHE\nNFS4ERR_REQ_TOO_BIG\nNFS4ERR_RETRY_UNCACHED_REP\nNFS4ERR_SEQUENCE_POS\nNFS4ERR_TOO_MANY_OPS\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41 nfs4_handle_exception fix session reset error list]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[moved nfs41_sequece_call_done code to nfs41: sequence operation]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eedc020e718b8ce45381383ec66030f09eb02a1e",
      "tree": "f29fe9309b67be4d5387c2ced72c063fb4df53c0",
      "parents": [
        "aae2006e9b0c294114915c13022fa348e1a88023"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:41 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:07 2009 -0700"
      },
      "message": "nfs41: use rpc prepare call state for session reset\n\n[nfs41: change nfs4_restart_rpc argument]\n[nfs41: check for session not minorversion]\n[nfs41: trigger the state manager for session reset]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[always define nfs4_restart_rpc]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "76db6d9500caeaa774a3e32a997eba30bbdc176b",
      "tree": "f1c1c2647ecb67dd519d00938be07f360d7680b1",
      "parents": [
        "ac72b7b3b3263ce64d55094eac1d1bde5f34e64a"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:38 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:06 2009 -0700"
      },
      "message": "nfs41: add session setup to the state manager\n\nAt mount, nfs_alloc_client sets the cl_state NFS4CLNT_LEASE_EXPIRED bit\nand nfs4_alloc_session sets the NFS4CLNT_SESSION_SETUP bit, so both bits are\nset when nfs4_lookup_root calls nfs4_recover_expired_lease which schedules\nthe nfs4_state_manager and waits for it to complete.\n\nPlace the session setup after the clientid establishment in nfs4_state_manager\nso that the session is setup right after the clientid has been established\nwithout rescheduling the state manager.\n\nUnlike nfsv4.0, the nfs_client struct is not ready to use until the session\nhas been established.  Postpone marking the nfs_client struct to NFS_CS_READY\nuntil after a successful CREATE_SESSION call so that other threads cannot use\nthe client until the session is established.\n\nIf the EXCHANGE_ID call fails and the session has not been setup (the\nNFS4CLNT_SESSION_SETUP bit is set), mark the client with the error and return.\n\nIf the session setup CREATE_SESSION call fails with NFS4ERR_STALE_CLIENTID\nwhich could occur due to server reboot or network partition inbetween the\nEXCHANGE_ID and CREATE_SESSION call, reset the NFS4CLNT_LEASE_EXPIRED and\nNFS4CLNT_SESSION_SETUP bits and try again.\n\nIf the CREATE_SESSION call fails with other errors, mark the client with\nthe error and return.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n\n[nfs41: NFS_CS_SESSION_SETUP cl_cons_state for back channel setup]\n  On session setup, the CREATE_SESSION reply races with the server back channel\n  probe which needs to succeed to setup the back channel. Set a new\n  cl_cons_state NFS_CS_SESSION_SETUP just prior to the CREATE_SESSION call\n  and add it as a valid state to nfs_find_client so that the client back channel\n  can find the nfs_client struct and won\u0027t drop the server backchannel probe.\n  Use a new cl_cons_state so that NFSv4.0 back channel behaviour which only\n  sets NFS_CS_READY is unchanged.\n  Adjust waiting on the nfs_client_active_wq accordingly.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n\n[nfs41: rename NFS_CS_SESSION_SETUP to NFS_CS_SESSION_INITING]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: set NFS_CL_SESSION_INITING in alloc_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: move session setup into a function]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[moved nfs4_proc_create_session declaration here]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ac72b7b3b3263ce64d55094eac1d1bde5f34e64a",
      "tree": "2ecd6882caab65e33dad8cda06a71da2e6293279",
      "parents": [
        "fc01cea963a246742ff15e118ce5259e3091352c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:37 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:05 2009 -0700"
      },
      "message": "nfs41: reset the session slot table\n\nSeparated from nfs41: schedule async session reset\n\nDo not kfree the session slot table upon session reset, just re-initialize it.\nAdd a boolean to nfs4_proc_create_session to inidicate if this is a\nsession reset or a session initialization.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc01cea963a246742ff15e118ce5259e3091352c",
      "tree": "bf2bd0fdb99910aa8045d53574504e49c577bbf0",
      "parents": [
        "8328d59f380e26477b9c1ede99e33d021365bcd1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:36 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:04 2009 -0700"
      },
      "message": "nfs41: sequence operation\n\nImplement the sequence operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nCheck returned sessionid, slotid and slot sequenceid in decode_sequence.\n\nIf the server returns different values for sessionID, slotID or slot sequence\nnumber than what was sent, the server is looney tunes.\n\nPass the sequence operation status to nfs41_sequence_done in order to\ndetermine when to increment the slot sequence ID.\n\nFree slot is separated from sequence done.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\n[nfs41: sequence res use slotid]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: deref slot table in decode_sequence only for minorversion!\u003d0]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_call_sync]\n[nfs41: remove SEQ4_STATUS_USE_TK_STATUS]\n[nfs41: return ESERVERFAULT in decode_sequence]\n[no sr_session, no sr_flags]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use nfs4_call_sync_sequence to renew session lease]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove nfs4_call_sync_sequence forward definition]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: use struct nfs_client for nfs41_proc_async_sequence]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: pass *session in seq_args and seq_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41 nfs41_sequence_call_done update error checking]\n[nfs41 nfs41_sequence_done update error checking]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove switch on error from nfs41_sequence_call_done]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8328d59f380e26477b9c1ede99e33d021365bcd1",
      "tree": "5e3ed18de4bfa37686f776def03d7d619661cd01",
      "parents": [
        "0f3e66c6a6cae479028d31198288e524fe5ff90d"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:35 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:25:04 2009 -0700"
      },
      "message": "nfs41: enable nfs_client only nfs4_async_handle_error\n\nThe session is per struct nfs_client, not per nfs_server. Allow the handler\nto be called with no nfs_server which simplifies the nfs4_proc_async_sequence session renewal call and will let it be used by pnfs file layout data servers.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0f3e66c6a6cae479028d31198288e524fe5ff90d",
      "tree": "e221fc927077a22485d5befc0136f1e77ecc55c5",
      "parents": [
        "96b09e024fedf0a6604c8c688a3994d5ed991434"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:34 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:24:55 2009 -0700"
      },
      "message": "nfs41: destroy_session operation\n\nImplement the destroy_session operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove extraneous rpc_clnt pointer]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41; NFS_CS_READY required for DESTROY_SESSION]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: pass *session in seq_args and seq_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[nfs41: fix encode_destroy_session\u0027s xdr Xcoding pointer type]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "8d35301d7db4165f2430c428865f7b0add47615d",
      "tree": "a808476a2b38ae440dd66634f776dcd334c13d77",
      "parents": [
        "fc931582c260e53ca5ca23bd70ccc9b2265cca9f"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:32 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:24:52 2009 -0700"
      },
      "message": "nfs41: verify session channel attribues\n\nInvalidate the session if the server returns invalid fore or back channel\nattributes.\n\nUse a KERN_WARNING to report the fatal session estabishment error.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[refactor nfs4_verify_channel_attrs]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc931582c260e53ca5ca23bd70ccc9b2265cca9f",
      "tree": "e52ad324ae6bb236f66bfd3ea002a9362ec60727",
      "parents": [
        "2050f0cc0703aab7cee798b3cb47037754f368bc"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:31 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:24:34 2009 -0700"
      },
      "message": "nfs41: create_session operation\n\nImplement the create_session operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nSet the real fore channel max operations to preserve server resources.\nNote: If the server returns \u003c NFS4_MAX_OPS, the client will very soon\nget an NFS4ERR_TOO_MANY_OPS. A later patch will handle this.\n\nSet the max_rqst_sz and max_resp_sz to PAGE_SIZE - we preallocate the buffers.\n\nSet the back channel max_resp_sz_cached to zero to force the client to\nalways set csa_cachethis to FALSE because the current implementation\nof the back channel DRC only supports caching the CB_SEQUENCE operation.\n\nThe client back channel server supports one slot, and desires 2 operations\nper compound.\n\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove extraneous rpc_clnt pointer]\nUse the struct nfs_client cl_rpcclient.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_init_channel_attrs, just use nfs41_create_session_args]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use rsize and wsize for session channel attributes]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: set channel max operations]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: set back channel attributes]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: obliterate nfs4_adjust_channel_attrs]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: have create_session work on nfs_client]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: move CONFIG_NFS_V4_1 endif]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: pass *session in seq_args and seq_res]\n[moved nfs4_init_slot_table definition here]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use kcalloc to allocate slot table]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[nfs41: fix Xcode_create_session\u0027s xdr Xcoding pointer type]\n[nfs41: refactor decoding of channel attributes]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "2050f0cc0703aab7cee798b3cb47037754f368bc",
      "tree": "48a54e68af8e6fe9b72994013aeecbd812e0e4ea",
      "parents": [
        "99fe60d062cfecf382c036065b3278b82b6c5eff"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:30 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:24:32 2009 -0700"
      },
      "message": "nfs41: get_lease_time\n\nget_lease_time uses the FSINFO rpc operation to\nget the lease time attribute.\n\nnfs4_get_lease_time() is only called from the state manager on session setup\nso don\u0027t recover from clientid or sequence level errors.\n\nWe do need to recover from NFS4ERR_DELAY or NFS4ERR_GRACE.\nUse NFS4_POLL_RETRY_MIN - the Linux server returns NFS4ERR_DELAY when an\nupcall is needed to resolve an uncached export referenced by a file handle.\n\n[nfs41: sequence res use slotid]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove extraneous rpc_clnt pointer]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: have get_lease_time work on nfs_client]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: get_lease_time recover from NFS4ERR_DELAY]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: pass *session in seq_args and seq_res]\n[define nfs4_get_lease_time_{args,res}]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99fe60d062cfecf382c036065b3278b82b6c5eff",
      "tree": "b4451fc4bb42c0915c4f736cc5fdae9e818b55d4",
      "parents": [
        "938e10109115a71cc69d475122f21cf75e5046cd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:29 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:23:57 2009 -0700"
      },
      "message": "nfs41: exchange_id operation\n\nImplement the exchange_id operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nUnlike NFSv4.0, NFSv4.1 requires machine credentials. RPC_AUTH_GSS machine\ncredentials will be passed into the kernel at mount time to be available for\nthe exchange_id operation.\n\nRPC_AUTH_UNIX root mounts can use the UNIX root credential. Store the root\ncredential in the nfs_client struct.\n\nWithout a credential, NFSv4.1 state renewal fails.\n\n[nfs41: establish clientid via exchange id only if cred !\u003d NULL]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: move nfstime4 from under CONFIG_NFS_V4_1]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: do not wait a lease time in exchange id]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: pass *session in seq_args and seq_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[nfs41: Ignoring impid in decode_exchange_id is missing a READ_BUF]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: fix Xcode_exchange_id\u0027s xdr Xcoding pointer type]\n[nfs41: get rid of unused struct nfs41_exchange_id_res members]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "938e10109115a71cc69d475122f21cf75e5046cd",
      "tree": "931b14799b8613d0f031963d0fddff2223979a9c",
      "parents": [
        "21d9a851aaa4161a9fddde720594659f3dae7fdd"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:28 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:51 2009 -0700"
      },
      "message": "nfs41 delegreturn sequence setup done support\n\nSeparate delegreturn calls from nfs41: sequence setup/done support\n\nImplement the delegreturn rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "21d9a851aaa4161a9fddde720594659f3dae7fdd",
      "tree": "6c18c057a56d5318a8e46d4615c03fefd5f5d498",
      "parents": [
        "def6ed7ef45ed19c3d6ca765f3bfdff1fe4c6bba"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:27 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:50 2009 -0700"
      },
      "message": "nfs41 commit sequence setup done support\n\nSeparate commit calls from nfs41: sequence setup/done support\n\nImplement the commit rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Support sessions with O_DIRECT.]\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: separate free slot from sequence done]\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "def6ed7ef45ed19c3d6ca765f3bfdff1fe4c6bba",
      "tree": "98e072aa00e6c284dac719c6c7f97abd7c930d90",
      "parents": [
        "f11c88af26453aee2823a1fd9120d0cd8dae7b9a"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:26 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:49 2009 -0700"
      },
      "message": "nfs41 write sequence setup done support\n\nSeparate write calls from nfs41: sequence setup/done support\n\nImplement the write rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[move the nfs4_sequence_free_slot call in nfs_readpage_retry from]\n[nfs41: separate free slot from sequence done\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Support sessions with O_DIRECT.]\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f11c88af26453aee2823a1fd9120d0cd8dae7b9a",
      "tree": "2a914fad3197bb9c28477e7a6224489acc11ae5d",
      "parents": [
        "472cfbd9b97be210a9b61ac1c6a774cd456ea9d2"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:25 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:48 2009 -0700"
      },
      "message": "nfs41: read sequence setup/done support\n\nImplement the read rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[move the nfs4_sequence_free_slot call in nfs_readpage_retry from]\n[nfs41: separate free slot from sequence done]\n[remove nfs_readargs.nfs_server, use calldata-\u003einode instead]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Support sessions with O_DIRECT]\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "472cfbd9b97be210a9b61ac1c6a774cd456ea9d2",
      "tree": "0bb59e6f5823087ad0152f3d363ada72a528f930",
      "parents": [
        "a893693c151433a1375060ecb13419080426bc08"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:24 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:47 2009 -0700"
      },
      "message": "nfs41: unlink sequence setup/done support\n\nImplement the rpc_call_prepare methods for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: separate free slot from sequence done]\n[nfs41: sequence res use slotid]\n[nfs41: remove SEQ4_STATUS_USE_TK_STATUS]\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a893693c151433a1375060ecb13419080426bc08",
      "tree": "c824ec4aa8e1aac88d7e16b8f104090ebaf2e0d4",
      "parents": [
        "66179efee31f431ab538016b4ac05edaf87525dc"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:23 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:46 2009 -0700"
      },
      "message": "nfs41: locku sequence setup/done support\n\nSeparate nfs4_locku calls from nfs41: sequence setup/done support\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "66179efee31f431ab538016b4ac05edaf87525dc",
      "tree": "e871bc165f8405bb4a00ed42023361bd8c5046c7",
      "parents": [
        "d898528cdb338b145c71049c3cb7b1dfa542a48a"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:22 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:45 2009 -0700"
      },
      "message": "nfs41: lock sequence setup/done support\n\nSeparate nfs4_lock calls from nfs41: sequence setup/done support\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\n[use nfs4_sequence_done_free_slot]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d898528cdb338b145c71049c3cb7b1dfa542a48a",
      "tree": "d4f0d7dea84e4cf686e375740fd23073db0aa83c",
      "parents": [
        "19ddab06ed923d27339b8009d37b0ab3de93cadf"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:21 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:44 2009 -0700"
      },
      "message": "nfs41: open sequence setup/done support\n\nSeparate nfs4_open calls from nfs41: sequence setup/done support\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\n[use nfs4_sequence_done_free_slot]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "19ddab06ed923d27339b8009d37b0ab3de93cadf",
      "tree": "7a70f629c07780c3d539fcf896a10d488a4df8d3",
      "parents": [
        "69ab40c4c3b9622232e31e0ee145875a2853c113"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:20 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:43 2009 -0700"
      },
      "message": "nfs41: close sequence setup/done support\n\nSeparate nfs4_close calls from nfs41: sequence setup/done support\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: separate free slot from sequence done]\n[nfs41: sequence res use slotid]\n[nfs41: remove SEQ4_STATUS_USE_TK_STATUS]\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "69ab40c4c3b9622232e31e0ee145875a2853c113",
      "tree": "72b5f87b10bd9d5069391cb39c4110f28416d038",
      "parents": [
        "b0df806c0f9d61e5fcfdb0f4e606e1a59303aaa6"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:19 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:42 2009 -0700"
      },
      "message": "nfs41: nfs41_call_sync_done\n\nImplement nfs4.1 synchronous rpc_call_done method\nthat essentially just calls nfs4_sequence_done, that turns\naround and calls nfs41_sequence_done for minorversion1 rpcs.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: check for session not minorversion]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[move adding nfs4_sequence_free_slot from nfs41-separate-free-slot-from-sequence-done]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs41_call_sync_data use nfs_client not nfs_server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b0df806c0f9d61e5fcfdb0f4e606e1a59303aaa6",
      "tree": "483e911bff62662ed4cce2c003a96a52d223c942",
      "parents": [
        "13615871cdf8e8263626a817c350c6978a6483fe"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:18 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:41 2009 -0700"
      },
      "message": "nfs41: nfs41_sequence_done\n\nHandle session level errors, update slot sequence id and\nsessions bookeeping, free slot.\n\n[nfs41: sequence res use slotid]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove SEQ4_STATUS_USE_TK_STATUS]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: check for session not minorversion]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: bail out early out of nfs41_sequence_done if !res-\u003esr_session]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[move nfs4_sequence_done from nfs41: nfs41_call_sync_done]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[move nfs4_sequence_free_slot from nfs41: separate free slot from sequence done]\n    Don\u0027t free the slot until after all rpc_restart_calls have completed.\n    Session reset will require more work.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[moved reset sr_slotid to nfs41_sequence_free_slot]\n[free slot also on unexpectecd error]\n[remove seq_res.sr_session member, use nfs_client\u0027s instead]\n[ditch seq_res.sr_flags until used]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[look at sr_slotid for bailing out early from nfs41_sequence_done]\n[nfs41: rpc_wake_up_next if sessions slot was not consumed.]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove unused error checking in nfs41_sequence_done]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: remove nfs4_has_session check in nfs41_sequence_done]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: remove nfs_client pointer check]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "13615871cdf8e8263626a817c350c6978a6483fe",
      "tree": "267069d5067c55d10c2a7b4e02dc5a03243f9967",
      "parents": [
        "e2c4ab3ce2ecc527672bd7e29a594c50d3ec0477"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:17 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:41 2009 -0700"
      },
      "message": "nfs41: nfs41_sequence_free_slot\n\n[from nfs41: separate free slot from sequence done]\n\nDon\u0027t free the slot until after all rpc_restart_calls have completed.\nSession reset will require more work.\n\nAs noted by Trond, since we\u0027re using rpc_wake_up_next rather than\nrpc_wake_up() we must always wake up the next task in the queue\neither by going through nfs4_free_slot, or just calling\nrpc_wake_up_next if no slot is to be freed.\n\n[nfs41: sequence res use slotid]\n[nfs41: remove SEQ4_STATUS_USE_TK_STATUS]\n[got rid of nfs4_sequence_res.sr_session, use nfs_client.cl_session instead]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: rpc_wake_up_next if sessions slot was not consumed.]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e2c4ab3ce2ecc527672bd7e29a594c50d3ec0477",
      "tree": "12043a6659ebbd9f4f51c4b0079e652db9ed8ed4",
      "parents": [
        "fbcd4abcb3841f85578985c09c6df85aa41b0ae8"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:16 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:39 2009 -0700"
      },
      "message": "nfs41: free slot\n\nFree a slot in the slot table.\n\nMark the slot as free in the bitmap-based allocation table\nby clearing a bit corresponding to the slotid.\n\nUpdate lowest_free_slotid if freed slotid is lower than that.\nUpdate highest_used_slotid.  In the case the freed slotid\nequals the highest_used_slotid, scan downwards for the next\nhighest used slotid using the optimized fls* functions.\n\nFinally, wake up thread waiting on slot_tbl_waitq for a free slot\nto become available.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: free slot use slotid]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use find_first_zero_bit for nfs4_find_slot]\n    While at it, obliterate lowest_free_slotid and fix-up related comments.\n    As per review comment 21/85.\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use __clear_bit for nfs4_free_slot]\n    While at it, fix-up function comment.\n    Part of review comment 22/85.\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: use find_last_bit in nfs4_free_slot to determine highest used slot.]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: rpc_sleep_on slot_tbl_waitq must be called under slot_tbl_lock]\n    Otherwise there\u0027s a race (we\u0027ve hit) with nfs4_free_slot where\n    nfs41_setup_sequence sees a full slot table, unlocks slot_tbl_lock,\n    nfs4_free_slots happen concurrently and call rpc_wake_up_next\n    where there\u0027s nobody to wake up yet, context goes back to\n    nfs41_setup_sequence which goes to sleep when the slot table\n    is actually empty now and there\u0027s no-one to wake it up anymore.\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbcd4abcb3841f85578985c09c6df85aa41b0ae8",
      "tree": "fd1744248ab503dad083e0fb54c938315adef92f",
      "parents": [
        "510b81756f18922a4c5b555e8145f4fed5beb569"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:15 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:39 2009 -0700"
      },
      "message": "nfs41: setup_sequence method\n\nAllocate a slot in the session slot table and set the sequence op arguments.\n\nCalled at the rpc prepare stage.\n\nAdd a status to nfs41_sequence_res, initialize it to one so that we catch\nrpc level failures which do not go through decode_sequence which sets\nthe new status field.\n\nNote that upon an rpc level failure, we don\u0027t know if the server processed the\nsequence operation or not. Proceed as if the server did process the sequence\noperation.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\n[nfs41: sequence args use slotid]\n[nfs41: find slot return slotid]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove SEQ4_STATUS_USE_TK_STATUS]\nAs per 11-14-08 review\n[move extern declaration from nfs41: sequence setup/done support]\n[removed sa_session definition, changed sa_cache_this into a u8 to reduce footprint]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: rpc_sleep_on slot_tbl_waitq must be called under slot_tbl_lock]\n    Otherwise there\u0027s a race (we\u0027ve hit) with nfs4_free_slot where\n    nfs41_setup_sequence sees a full slot table, unlocks slot_tbl_lock,\n    nfs4_free_slots happen concurrently and call rpc_wake_up_next\n    where there\u0027s nobody to wake up yet, context goes back to\n    nfs41_setup_sequence which goes to sleep when the slot table\n    is actually empty now and there\u0027s no-one to wake it up anymore.\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "510b81756f18922a4c5b555e8145f4fed5beb569",
      "tree": "9253ad2063b37292b3cf8c7425cbf6882807882a",
      "parents": [
        "ce5039c1be1fd04c2d9b1af80d41a6d003f2e20c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:14 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:37 2009 -0700"
      },
      "message": "nfs41: find slot\n\nFind a free slot using bitmap-based allocation.\nUse the optimized ffz function to find a zero bit\nin the bitmap that indicates a free slot, starting\nthe search from the \u0027lowest_free_slotid\u0027 position.\n\nIf found, mark the slot as used in the bitmap, get\nthe slot\u0027s slotid and seqid, and update max_slotid\nto be used by the SEQUENCE operation.\n\nAlso, update lowest_free_slotid for next search.\n\nIf no free slot was found the caller has to wait\nfor a free slot (outside the scope of this function)\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: find slot return slotid]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[use find_first_zero_bit for nfs4_find_slot as per review comment 21/85.]\n[use NFS4_MAX_SLOT_TABLE rather than NFS4_NO_SLOT]\n[nfs41: rpc_sleep_on slot_tbl_waitq must be called under slot_tbl_lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ce5039c1be1fd04c2d9b1af80d41a6d003f2e20c",
      "tree": "6ad09f92b5d6903fabeee3f4a59c58e174ccb33c",
      "parents": [
        "9b7b9fcc9c124b8a2a079f748239ce9b7a8d8304"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:13 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:36 2009 -0700"
      },
      "message": "nfs41: nfs4_setup_sequence\n\nPerform the nfs4_setup_sequence in the rpc_call_prepare state.\n\nIf a session slot is not available, we will rpc_sleep_on the\nslot wait queue leaving the tk_action as rpc_call_prepare.\n\nOnce we have a session slot, hang on to it even through rpc_restart_calls.\nEnsure the nfs41_sequence_res sr_slot pointer is NULL before rpc_run_task is\ncalled as nfs41_setup_sequence will only find a new slot if it is NULL.\n\nA future patch will call free slot after any rpc_restart_calls, and handle the\nrpc restart that result from a sequence operation error.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\n[nfs41: sequence res use slotid]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: simplify nfs4_call_sync]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_call_sync]\n[nfs41: check for session not minorversion]\n[nfs41: remove rpc_message from nfs41_call_sync_args]\n[moved NFS4_MAX_SLOT_TABLE logic into nfs41_setup_sequence]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs41_call_sync_data use nfs_client not nfs_server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: expose nfs4_call_sync_session for lease renewal]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: remove unnecessary return check]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5f7dbd5c752d88310d8fe1feedefd5c6496eff48",
      "tree": "870e270d87cf112494500b655f08980539ffa291",
      "parents": [
        "f3752975caa716709c5ea0b0820b86111d921df4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:05 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:30 2009 -0700"
      },
      "message": "nfs41: set up seq_res.sr_slotid\n\nInitialize nfs4_sequence_res sr_slotid to NFS4_MAX_SLOT_TABLE.\n\n[was nfs41: sequence res use slotid]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[pulled definition of struct nfs4_sequence_res.sr_slotid to here]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3752975caa716709c5ea0b0820b86111d921df4",
      "tree": "80349dd1e99683577ea4b0d264af7f8b3ded73aa",
      "parents": [
        "cccef3b96a4759ae0790452280c00ea505412157"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:04 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:29 2009 -0700"
      },
      "message": "nfs41: nfs41: pass *session in seq_args and seq_res\n\nTo be used for getting the rpc\u0027s minorversion and for nfs41 xdr\n{en,de}coding of the sequence operation.\nReset the seq session ptrs for minorversion\u003d0 rpc calls.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cccef3b96a4759ae0790452280c00ea505412157",
      "tree": "26e4f93653a5c980cf8bb585d6fc05817a23f4be",
      "parents": [
        "22958463d5dca8548e19430779f379e66fd6e4a4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:03 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:28 2009 -0700"
      },
      "message": "nfs41: introduce nfs4_call_sync\n\nUse nfs4_call_sync rather than rpc_call_sync to provide\nfor a nfs41 sessions-enabled interface for sessions manipulation.\n\nThe nfs41 rpc logic uses the rpc_call_prepare method to\nrecover and create the session, as well as selecting a free slot id\nand the rpc_call_done to free the slot and update slot table\nrelated metadata.\n\nIn the coming patches we\u0027ll add rpc prepare and done routines\nfor setting up the sequence op and processing the sequence result.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_call_sync]\nAs per 11-14-08 review.\nSquash into \"nfs41: introduce nfs4_call_sync\" and \"nfs41: nfs4_setup_sequence\"\nDefine two functions one for v4 and one for v41\nadd a pointer to struct nfs4_client to the correct one.\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[added BUG() in _nfs4_call_sync_session if !CONFIG_NFS_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: check for session not minorversion]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[group minorversion specific stuff together]\nSigned-off-by: Alexandros Batsakis \u003cAlexandros.Batsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfs41: fixup nfs4_clear_client_minor_version]\n[introduce nfs4_init_client_minor_version() in this patch]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[cleaned-up patch: got rid of nfs_call_sync_t, dprintks, cosmetics, extra server defs]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "22958463d5dca8548e19430779f379e66fd6e4a4",
      "tree": "6483363bee0eb39f155774858bdd06d5d8dc9d4a",
      "parents": [
        "73c403a9a93743b068103c13c05ed136dc687d05"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:02 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:27 2009 -0700"
      },
      "message": "nfs41: use nfs4_fs_locations_res\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[find nfs4_fs_locations_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "73c403a9a93743b068103c13c05ed136dc687d05",
      "tree": "9f95f8cb6f8c6ab866c08a5659d281847f0b3a23",
      "parents": [
        "9e9ecc03d6b37a5d85e16b357751e3b341de0fef"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:22:01 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:26 2009 -0700"
      },
      "message": "nfs41: use nfs4_setaclres\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[define nfs_setaclres]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "663c79b3cd8f5fe21fe7d7565fec0072e3234ddc",
      "tree": "343fa6b9ae1616d06154cbee88a2278c70e3ded6",
      "parents": [
        "d45b2989a7956ae9e71d584ceac942278c0371c7"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:21:59 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:25 2009 -0700"
      },
      "message": "nfs41: use nfs4_getaclres\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: embed resp_len in nfs_getaclres]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d45b2989a7956ae9e71d584ceac942278c0371c7",
      "tree": "a76229d959e2b33487d7e8e300257786ad58ec7f",
      "parents": [
        "3dda5e434721f942870ee30bc6103761618d410f"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:21:58 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:24 2009 -0700"
      },
      "message": "nfs41: use nfs4_pathconf_res\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[define nfs4_pathconf_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3dda5e434721f942870ee30bc6103761618d410f",
      "tree": "a478a9c0e25e3d560321a3256d4477fcfc86232e",
      "parents": [
        "24ad148a0ff74b1e703a8bc5b3e0793dc7d4e3a9"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:21:57 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:23 2009 -0700"
      },
      "message": "nfs41: use nfs4_fsinfo_res\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[define nfs4_fsinfo_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24ad148a0ff74b1e703a8bc5b3e0793dc7d4e3a9",
      "tree": "3d65ce7e3f71cdf8b57b76f009bd2f1e8c37ef21",
      "parents": [
        "f50c7000817e7cb4e676ac5d911a82c0f3fd226f"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:21:56 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:22 2009 -0700"
      },
      "message": "nfs41: use nfs4_statfs_res\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[define nfs4_statfs_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f50c7000817e7cb4e676ac5d911a82c0f3fd226f",
      "tree": "96c9c6ec5f8ee2fcdfe7b44dfdc274b652d7881b",
      "parents": [
        "43652ad55342d9146d8035932101a5814b22315a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:21:55 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:21 2009 -0700"
      },
      "message": "nfs41: use nfs4_readlink_res\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[define nfs4_readlink_res]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43652ad55342d9146d8035932101a5814b22315a",
      "tree": "1bcc69ee2ee1ec04c5ce1c23ecfd5947ea9e4da2",
      "parents": [
        "557134a39c8d2ab79d8b8d53438e03e29feb5ec4"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Apr 01 09:21:54 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:20 2009 -0700"
      },
      "message": "nfs41: use nfs4_server_caps_arg\n\nIn preparation for nfs41 sequence processing.\n\nSigned-off-by: Andy Admason \u003candros@netapp.com\u003e\n[define nfs4_server_caps_arg]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "557134a39c8d2ab79d8b8d53438e03e29feb5ec4",
      "tree": "3f6999d9601618102413fd535ff95f9be0babd85",
      "parents": [
        "9ff71c3a9827b99699510076dffa0bbe7c36bfd4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:21:53 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:19 2009 -0700"
      },
      "message": "nfs41: sessions client infrastructure\n\nNFSv4.1 Sessions basic data types, initialization, and destruction.\n\nThe session is always associated with a struct nfs_client that holds\nthe exchange_id results.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[remove extraneous rpc_clnt pointer, use the struct nfs_client cl_rpcclient.\nremove the rpc_clnt parameter from nfs4 nfs4_init_session]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Use the presence of a session to determine behaviour instead of the\nminorversion number.]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[constified nfs4_has_session\u0027s struct nfs_client parameter]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Rename nfs4_put_session() to nfs4_destroy_session() and call it from nfs4_free_client() not nfs4_free_server().\nAlso get rid of nfs4_get_session() and the ref_count in nfs4_session struct as keeping track of nfs_client should be sufficient]\nSigned-off-by: Alexandros Batsakis \u003cAlexandros.Batsakis@netapp.com\u003e\n[nfs41: pass rsize and wsize into nfs4_init_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[separated out removal of rpc_clnt parameter from nfs4_init_session ot a\n patch of its own]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Pass the nfs_client pointer into nfs4_alloc_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: don\u0027t assign to session-\u003eclp-\u003ecl_session in nfs4_destroy_session]\n[nfs41: fixup nfs4_clear_client_minor_version]\n[introduce nfs4_clear_client_minor_version() in this patch]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Refactor nfs4_init_session]\n    Moved session allocation into nfs4_init_client_minor_version, called from\n    nfs4_init_client.\n    Leave rwise and wsize initialization in nfs4_init_session, called from\n    nfs4_init_server.\n    Reverted moving of nfs_fsid definition to nfs_fs_sb.h\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Move NFS4_MAX_SLOT_TABLE define from under CONFIG_NFS_V4_1]\n[Fix comile error when CONFIG_NFS_V4_1 is not set.]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[moved nfs4_init_slot_table definition to \"create_session operation\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: alloc session with GFP_KERNEL]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "95baa25c7321eb8613246acbf61b97911cc748d3",
      "tree": "3aea4952f4721c2c456ac2b5d056c8db34dd2e6d",
      "parents": [
        "d0367a508af9cf97beb202935bb9ad8883d30cd1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 26 14:51:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 26 14:51:00 2009 -0400"
      },
      "message": "NFSv4: Fix the case where NFSv4 renewal fails\n\nIf the asynchronous lease renewal fails (usually due to a soft timeout),\nthen we _must_ schedule state recovery in order to ensure that we don\u0027t\nlose the lease unnecessarily or, if the lease is already lost, that we\nrecover the locking state promptly...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\n"
    },
    {
      "commit": "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48",
      "tree": "ab952affafe18e604f6aaf6b13315b9435588e60",
      "parents": [
        "f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:08:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New helper - current_umask()\n\ncurrent-\u003efs-\u003eumask is what most of fs_struct users are doing.\nPut that into a helper function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7fe5c398fc2186ed586db11106a6692d871d0d58",
      "tree": "1133bd775a23fb07ca759e4d6c44132c14576b75",
      "parents": [
        "b1e4adf4ea41bb8b5a7bfc1a7001f137e65495df"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:35:50 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:35:50 2009 -0400"
      },
      "message": "NFS: Optimise NFS close()\n\nClose-to-open cache consistency rules really only require us to flush out\nwrites on calls to close(), and require us to revalidate attributes on the\nvery last close of the file.\n\nCurrently we appear to be doing a lot of extra attribute revalidation\nand cache flushes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "72cb77f4a5ace37b12dcb47a0e8637a2c28ad881",
      "tree": "62fbdd7a34884f3ea9e1b0ba6bd5a4d78263f847",
      "parents": [
        "fb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:30 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:30 2009 -0400"
      },
      "message": "NFS: Throttle page dirtying while we\u0027re flushing to disk\n\nThe following patch is a combination of a patch by myself and Peter\nStaubach.\n\nTrond: If we allow other processes to dirty pages while a process is doing\na consistency sync to disk, we can end up never making progress.\n\nPeter: Attached is a patch which addresses a continuing problem with\nthe NFS client generating out of order WRITE requests.  While\nthis is compliant with all of the current protocol\nspecifications, there are servers in the market which can not\nhandle out of order WRITE requests very well.  Also, this may\nlead to sub-optimal block allocations in the underlying file\nsystem on the server.  This may cause the read throughputs to\nbe reduced when reading the file from the server.\n\nPeter: There has been a lot of work recently done to address out of\norder issues on a systemic level.  However, the NFS client is\nstill susceptible to the problem.  Out of order WRITE\nrequests can occur when pdflush is in the middle of writing\nout pages while the process dirtying the pages calls\ngeneric_file_buffered_write which calls\ngeneric_perform_write which calls\nbalance_dirty_pages_rate_limited which ends up calling\nwriteback_inodes which ends up calling back into the NFS\nclient to writes out dirty pages for the same file that\npdflush happens to be working with.\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\n[modification by Trond to merge the two similar patches]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a65318bf3afc93ce49227e849d213799b072c5fd",
      "tree": "754aad8596310825b96956012b7f584fff5b7a54",
      "parents": [
        "69aaaae18f7027d9594bce100378f102926cc0be"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:28 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:28 2009 -0400"
      },
      "message": "NFSv4: Simplify some cache consistency post-op GETATTRs\n\nCertain asynchronous operations such as write() do not expect\n(or care) that other metadata such as the file owner, mode, acls, ...\nchange. All they want to do is update and/or check the change attribute,\nctime, and mtime.\nBy skipping the file owner and group update, we also avoid having to do a\npotential idmapper upcall for these asynchronous RPC calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "69aaaae18f7027d9594bce100378f102926cc0be",
      "tree": "151c903e1a1eae360f9cf22870dcec6c41295467",
      "parents": [
        "409924e4c943072a63c43bb6b77576bf12f1896b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:28 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:28 2009 -0400"
      },
      "message": "NFSv4: A referral is assumed to always point to a directory.\n\nFix a bug whereby we would fail to create a mount point for a referral.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "46f72f57d279688c4524df78edb5738db730eeef",
      "tree": "cdd3d28f37f91bed3467e7f2da53c942d4eeb122",
      "parents": [
        "2efef7080f471d312a9c4feb3dc5ee038039c7ed"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "wangcong@zeuux.org",
        "time": "Tue Dec 30 16:35:55 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 30 16:35:55 2008 -0500"
      },
      "message": "fs/nfs/nfs4proc.c: make nfs4_map_errors() static\n\nnfs4_map_errors() can become static.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "027b6ca02192f381a5a91237ba8a8cf625dc6f6a",
      "tree": "f8ece785b53cbb8978bab734e348972aa5ed022f",
      "parents": [
        "6dcd3926b214a1fb081df18305921dedae269977"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:04:13 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:04:13 2008 -0500"
      },
      "message": "NFSv4: Fix an infinite loop in the NFS state recovery code\n\nMarten Gajda \u003cmarten.gajda@fernuni-hagen.de\u003e states:\n\nI tracked the problem down to the function nfs4_do_open_expired.\nWithin this function _nfs4_open_expired is called and may return\n-NFS4ERR_DELAY. When a further call to _nfs4_open_expired is\nexecuted and does not return -NFS4ERR_DELAY the \"exception.retry\"\nvariable is not reset to 0, causing the loop to iterate again\n(and as long as err !\u003d -NFS4ERR_DELAY, probably forever)\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc0b027dfadfcb8a5504f7d8052754bf8d501ab9",
      "tree": "f27f81794950b8a159e8045b7b6a74f19f2ac26e",
      "parents": [
        "7a50c60e461f6ff97428da9448c3dad5b7bef491"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:56 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:56 2008 -0500"
      },
      "message": "NFSv4: Convert the open and close ops to use fmode\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7391f44f26b17ad25c7183a3d6ad50f0a9305ff",
      "tree": "8e09a5714587a8bde2a805819501d10bae4787b7",
      "parents": [
        "6411bd4a471893ab2af103d96253ba97c92d4777"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:52 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:52 2008 -0500"
      },
      "message": "NFSv4: Return unreferenced delegations more promptly\n\nIf the client is not using a delegation, the right thing to do is to return\nit as soon as possible. This helps reduce the amount of state the server\nhas to track, as well as reducing the potential for conflicts with other\nclients.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e005e8041c132af9f70862e1387a222198f95e7f",
      "tree": "2e151e4d7e4e76dd889a0212aaa07460aec6e0a6",
      "parents": [
        "707fb4b324371f1b4bea5eb29e39d265c66086ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:48 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:48 2008 -0500"
      },
      "message": "NFSv4: Rename the state reclaimer thread\n\nIt is really a more general purpose state management thread at this point.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e33bed55239bdcee1746c31a11177d239bac1b5",
      "tree": "b6ff90aa50b1d71722ce8eb3f2cecc28dafc3e4d",
      "parents": [
        "95d35cb4c473c754824967c0b069bbeb7efa4847"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:46 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:46 2008 -0500"
      },
      "message": "NFSv4: Add recovery for individual stateids\n\nNFSv4 defines a number of state errors which the client does not currently\nhandle. Among those we should worry about are:\n  NFS4ERR_ADMIN_REVOKED - the server\u0027s administrator revoked our locks\n  \t\t\t  and/or delegations.\n  NFS4ERR_BAD_STATEID - the client and server are out of sync, possibly\n                        due to a delegation return racing with an OPEN\n\t\t\trequest.\n  NFS4ERR_OPENMODE - the client attempted to do something not sanctioned\n  \t\t     by the open mode of the stateid. Should normally just\n\t\t     occur as a result of a delegation return race.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "95d35cb4c473c754824967c0b069bbeb7efa4847",
      "tree": "bd46a5b0e4d35f9256cf44ca2706493fc3dd2819",
      "parents": [
        "19e03c570e6099ffaf24e5628d4fe1a8acbe820d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:45 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:45 2008 -0500"
      },
      "message": "NFSv4: Remove nfs_client-\u003ecl_sem\n\nNow that we\u0027re using the flags to indicate state that needs to be\nrecovered, as well as having implemented proper refcounting and spinlocking\non the state and open_owners, we can get rid of nfs_client-\u003ecl_sem. The\nonly remaining case that was dubious was the file locking, and that case is\nnow covered by the nfsi-\u003erwsem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "19e03c570e6099ffaf24e5628d4fe1a8acbe820d",
      "tree": "6e7eb831bbfe732044105f7f7a477fda5e912b6c",
      "parents": [
        "65de872ed6501a68e918a49a5c2fa7fca9c6ce21"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:44 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:44 2008 -0500"
      },
      "message": "NFSv4: Ensure that file unlock requests don\u0027t conflict with state recovery\n\nThe unlock path is currently failing to take the nfs_client-\u003ecl_sem read\nlock, and hence the recovery path may see locks disappear from underneath\nit.\nAlso ensure that it takes the nfs_inode-\u003erwsem read lock so that it there\nis no conflict with delegation recalls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "65de872ed6501a68e918a49a5c2fa7fca9c6ce21",
      "tree": "45fa63d65829c67fa6716adac2801acbf9a2b68f",
      "parents": [
        "fe1d81952e7f62b9da7dc438caaa07e35ec2b908"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:44 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:44 2008 -0500"
      },
      "message": "NFS: Remove the unnecessary argument to nfs4_wait_clnt_recover()\n\n...and move some code around in order to clear out an unnecessary\nforward declaration.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7eff03aec917e17f733471d7e12c262c0c96409f",
      "tree": "6f0e7b53cbf55689cd37cfe3b1b087b8c61ac4cd",
      "parents": [
        "0f605b56008c4b6b075217480c36ba395ca4eaa4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:43 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:43 2008 -0500"
      },
      "message": "NFSv4: Add a recovery marking scheme for state owners\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e598d843c08a7ab6bdfa8098de49afb017fc6c6a",
      "tree": "2e4862252744b4b8f0a9d43b371e0df6a1d3fcee",
      "parents": [
        "b79a4a1b45b2543e38026303a1956bdc0aababa0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:42 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:42 2008 -0500"
      },
      "message": "NFSv4: Remove redundant RENEW calls if we know the lease has expired\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b79a4a1b45b2543e38026303a1956bdc0aababa0",
      "tree": "73c7dba187dbe05f5527f47ccb42523f4655f77b",
      "parents": [
        "6dc9d57af9917f5c7faa13c17b770dce17c3972b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:41 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:41 2008 -0500"
      },
      "message": "NFSv4: Fix state recovery when the client runs over the grace period\n\nIf the client for some reason is not able to recover all its state within\nthe time allotted for the grace period, and the server reboots again, the\nclient is not allowed to recover the state that was \u0027lost\u0027 using reboot\nrecovery.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15c831bf1a3f8cab9812a96228145200726fea33",
      "tree": "6133811e099f223d17aaa46c9672bfb367435b26",
      "parents": [
        "86e894899820f2b3094d5557124fc22743ae0fc7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:39 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:39 2008 -0500"
      },
      "message": "NFS: Use atomic bitops when changing struct nfs_delegation-\u003eflags\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "343104308a33c4f1e23c8e841ede95e97b870842",
      "tree": "e7772538627a0a2176bd23cd3b2f1acbacd24592",
      "parents": [
        "0cb2659b818eca99235e17c04291cfa9985c14f7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:38 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:38 2008 -0500"
      },
      "message": "NFSv4: Fix up another delegation related race\n\nWhen we can update_open_stateid(), we need to be certain that we don\u0027t\nrace with a delegation return. While we could do this by grabbing the\nnfs_client-\u003ecl_lock, a dedicated spin lock in the delegation structure\nwill scale better.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "504e518953a330c8d44a95bdd65a5c9f50f1012e",
      "tree": "383df8cd12bebecd9bcf7714b6d8b07324a6353f",
      "parents": [
        "18de9735300756e3ca9c361ef58409d8561dfe0d"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu Oct 16 14:15:16 2008 +1100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 17 13:06:45 2008 -0400"
      },
      "message": "Make nfs_file_cred more robust.\n\nAs not all files have an associated open_context (e.g. device special\nfiles), it is safest to test for the existence of the open context\nbefore de-referencing it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bba67e0e3f4caba2b2b90b48ed798fb0461bcb86",
      "tree": "c13781f1265ccd73b4f71a33e9bb22931e954c1e",
      "parents": [
        "b6a2e569e2157509951c9f3f58dfa18b44ce91b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 13:26:23 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:53 2008 -0400"
      },
      "message": "NFS: Remove BKL usage from open()\n\nAll the NFSv4 stateful operations are already protected by other locks (in\nparticular by the rpc_sequence locks.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "77e03677ac76d413fbb6d6caaffa1d64877a0c2a",
      "tree": "7e89420de054284c5cb26896c52a3818598c642b",
      "parents": [
        "d8e7748ab8322171ebfd78f6155ff35e7d57ac32"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Jun 24 20:25:57 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:30 2008 -0400"
      },
      "message": "nfs: initialize timeout variable in nfs4_proc_setclientid_confirm\n\ngcc (4.3.0) rightfully warns about this:\n/usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/fs/nfs/nfs4proc.c: In function nfs4_proc_setclientid_confirm:\n/usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/fs/nfs/nfs4proc.c:2936: warning: timeout may be used uninitialized in this function\n\nnfs4_delay that\u0027s passed a pointer to \u0027timeout\u0027 is looking at its value\nand sets it up to some value in the range: NFS4_POLL_RETRY_MIN..NFS4_POLL_RETRY_MAX\n\tif (*timeout \u003c\u003d 0)\n\t\t*timeout \u003d NFS4_POLL_RETRY_MIN;\n\tif (*timeout \u003e NFS4_POLL_RETRY_MAX)\n\t\t*timeout \u003d NFS4_POLL_RETRY_MAX;\n\nTherefore it will end up set to some sane, though rather indeterministic, value.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f41f741838480aeaa3a189cff6e210503cf9c42d",
      "tree": "fc4509d47132c28ca211e57d8f59b56accb6db8b",
      "parents": [
        "2e96d2867245668dbdb973729288cf69b9fafa66"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 17:39:04 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:19 2008 -0400"
      },
      "message": "NFS: Ensure we zap only the access and acl caches when setting new acls\n\n...and ensure that we obey the NFS_INO_INVALID_ACL flag when retrieving the\nacls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e96d2867245668dbdb973729288cf69b9fafa66",
      "tree": "8f8b0642beaf0f7d53e31963328dfbc992c5ac88",
      "parents": [
        "34e8f92831cb5c40b3137e47a3daf4c09016ef02"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 16:42:05 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:18 2008 -0400"
      },
      "message": "NFS: Fix a warning in nfs4_async_handle_error\n\nWe\u0027re not modifying the nfs_server when we call nfs_inc_server_stats and\nfriends, so allow the compiler to pass \u0027const\u0027 pointers too.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "46cb650c224bb8e64a749090105d74b9e8eda669",
      "tree": "03c6b21bc70a983a63642c2bec6c0e26f07e4efb",
      "parents": [
        "b22602a673b1743bba4b62bb404ffd3b269d2f09"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 16:32:46 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:16 2008 -0400"
      },
      "message": "NFS: Remove the redundant file_open entry from struct nfs_rpc_ops\n\nAll instances are set to nfs_open(), so we should just remove the redundant\nindirection. Ditto for the file_release op\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "659bfcd6dd88919a5ad453f62afbeffcb3106847",
      "tree": "e3996d809e9ae4860a8adac71474e6ea8850c3b5",
      "parents": [
        "a486aeda9b2b0d944aecce7871b3186379b898de"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 10 19:39:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:14 2008 -0400"
      },
      "message": "NFS: Fix the ftruncate() credential problem\n\nftruncate() access checking is supposed to be performed at open() time,\njust like reads and writes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57dc9a5747942f131a1a8b36d661fec6e6a5e9f6",
      "tree": "853999af6586fcda2da1e3cf49b75ac73b40c7ca",
      "parents": [
        "f57e91682d141ea50d8c6d42cdc251b6256a3755"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 20 15:35:32 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:08:37 2008 -0400"
      },
      "message": "NFS: Reduce the stack usage in NFSv4 create operations\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31f31db1a15671513df9cd9fbe56ef45ee1e9a2a",
      "tree": "ad4015fb8159aaa18041791c2c85e272c5565dd7",
      "parents": [
        "3110ff8048fb757b36112b044b384aea9c44d6e4"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Fri May 02 13:42:45 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:30 2008 -0700"
      },
      "message": "nfs: path_{get,put}() cleanups\n\nHere are some more places where path_{get,put}() can be used instead of\ndput()/mntput() pair.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3110ff8048fb757b36112b044b384aea9c44d6e4",
      "tree": "5260f4973bd0848ddef3fb3c111386e59616abbc",
      "parents": [
        "46c8ac74250a396aca855e494f49a960797a6b5e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri May 02 13:42:44 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:29 2008 -0700"
      },
      "message": "nfs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78ea323be6380a9313e87fe241809e912e8ae401",
      "tree": "6ea9a772ab677012c52a08c6b32e366d7bf129d4",
      "parents": [
        "441092415770ddec648800701895913c4bfd60c1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:49:28 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:53 2008 -0400"
      },
      "message": "NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n\nWith the recent change to generic creds, we can no longer use\ncred-\u003ecr_ops-\u003ecr_name to distinguish between RPCSEC_GSS principals and\nAUTH_SYS/AUTH_NULL identities. Replace it with the rpc_authops-\u003eau_name\ninstead...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "536ff0f809b0f4d56e1c41e66768d330668e0a55",
      "tree": "fa2b17cc442227d5157b644d8b3fe188b4922983",
      "parents": [
        "4a9af59fee0701d9db99bc148d87b8852d6d6dd8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 04 15:08:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:33 2008 -0400"
      },
      "message": "NFSv4: Ensure we don\u0027t corrupt fl-\u003efl_flags in nfs4_proc_unlck\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1d519312dcdf11532fed9f99a8ecc3547ffd9d6",
      "tree": "f91e0d8df3fc424aaa6eddbc54aaf55bdbfb245b",
      "parents": [
        "35d05778e25ee16dbddb60331be0bc1309efba19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 13:20:54 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:15 2008 -0400"
      },
      "message": "NFSv4: Only increment the sequence id if the server saw it\n\nIt is quite possible that the OPEN, CLOSE, LOCK, LOCKU,... compounds fail\nbefore the actual stateful operation has been executed (for instance in the\nPUTFH call). There is no way to tell from the overall status result which\noperations were executed from the COMPOUND.\n\nThe fix is to move incrementing of the sequence id into the XDR layer,\nso that we do it as we process the results from the stateful operation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "35d05778e25ee16dbddb60331be0bc1309efba19"
}
