)]}'
{
  "log": [
    {
      "commit": "5680d48be88d12cd987e5579a6072a4ca34ca6ea",
      "tree": "030cb42a88efbd5ea35296d9d4d520e1ec63f618",
      "parents": [
        "9eaa67c6a5b77f248c4703d81c4a6c6434e35385"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:24 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean-up: Define macros for maximum host and export path name lengths\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9eaa67c6a5b77f248c4703d81c4a6c6434e35385",
      "tree": "acc90ec1e457b8583f8a9eafc6142152d8b41228",
      "parents": [
        "433c92379d9c2c59c2ebc7628fe4fb02cfc2daf8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:19 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean-up: use correct type when converting NFS blocks to local blocks\n\ninode-\u003ei_blocks is a blkcnt_t these days, which can be a u64 or unsigned\nlong, depending on the setting of CONFIG_LSF.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "433c92379d9c2c59c2ebc7628fe4fb02cfc2daf8",
      "tree": "6c67e6a8308857afdace8e767e7a583b02ede500",
      "parents": [
        "8bda4e4c98d14566fc1a354c62fb59d70cc49b97"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:14 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:43 2007 -0400"
      },
      "message": "NFS: Clean up nfs_size_to_loff_t()\n\nUse the same file size limit that lockd uses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8bda4e4c98d14566fc1a354c62fb59d70cc49b97",
      "tree": "d137e784db33d1347a6b03d22044e9a41e10967f",
      "parents": [
        "1ac7e2fd35905f3d44df06568bca5f9d140369b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 09 10:45:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:43 2007 -0400"
      },
      "message": "NFSv4: Fix up stateid locking...\n\nWe really don\u0027t need to grab both the state-\u003eso_owner and the\ninode-\u003ei_lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1ac7e2fd35905f3d44df06568bca5f9d140369b3",
      "tree": "86b80e5d17169f801f19427563d68728b8e3385e",
      "parents": [
        "6ee412689027dc7954453aed392ab5c7599c0f73"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 08 21:04:15 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:43 2007 -0400"
      },
      "message": "NFSv4: Clean up the callers of nfs4_open_recover_helper()\n\nRely on nfs4_try_open_cached() when appropriate.\n\nAlso fix an RCU violation in _nfs4_do_open_reclaim()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ee412689027dc7954453aed392ab5c7599c0f73",
      "tree": "71f09219acaf905e779f9cecf2d0256ba34d6526",
      "parents": [
        "aac00a8d0a53097063da532cbdf0b8775a4dcd53"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 08 14:11:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:43 2007 -0400"
      },
      "message": "NFSv4: Don\u0027t call OPEN if we already have an open stateid for a file\n\nIf we already have a stateid with the correct open mode for a given file,\nthen we can reuse that stateid instead of re-issuing an OPEN call without\nviolating the close-to-open caching semantics.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "aac00a8d0a53097063da532cbdf0b8775a4dcd53",
      "tree": "4a83d1a25dd23d63cbcb0fe5c40b2f857ebcc19e",
      "parents": [
        "3e309914a15333a5493058e4927e979c7434ae44"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jul 05 19:02:21 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:43 2007 -0400"
      },
      "message": "NFSv4: Check for the existence of a delegation in nfs4_open_prepare()\n\nWe should not be calling open() on an inode that has a delegation unless\nwe\u0027re doing a reclaim.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3e309914a15333a5493058e4927e979c7434ae44",
      "tree": "c9f5a86c7088313cf2c0648e313e4e918b4189d1",
      "parents": [
        "1b370bc28f90955bccda8be5e7d7047ad1381da7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 07 13:19:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:42 2007 -0400"
      },
      "message": "NFSv4: Clean up _nfs4_proc_open()\n\nUse a flag instead of the \u0027data-\u003erpc_status \u003d -ENOMEM hack.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b370bc28f90955bccda8be5e7d7047ad1381da7",
      "tree": "a63507ba14abd869a6645fc604e62f854a39af54",
      "parents": [
        "6f43ddccb31b5bd2297878f6f3735d45fd4dfce3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 07 08:04:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:42 2007 -0400"
      },
      "message": "NFSv4: Allow nfs4_opendata_to_nfs4_state to return errors.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f43ddccb31b5bd2297878f6f3735d45fd4dfce3",
      "tree": "2b21ec002ca6868df0d7d39a1044fff5ff97df87",
      "parents": [
        "003707c7225dbd4bf879b6c204743554de0a08d6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 08 16:49:11 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:42 2007 -0400"
      },
      "message": "NFSv4: Improve the debugging of bad sequence id errors...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "003707c7225dbd4bf879b6c204743554de0a08d6",
      "tree": "b5ca79744badf011d15111d819f629cfc69452ba",
      "parents": [
        "0f9f95e0ad1f9d07d77832c5b60f7d30440602ee"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jul 05 18:07:55 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:41 2007 -0400"
      },
      "message": "NFSv4: Always use the delegation if we have one\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0f9f95e0ad1f9d07d77832c5b60f7d30440602ee",
      "tree": "7d46ab8497ccd0dbeb151a6e45113379da8f22f3",
      "parents": [
        "412c77cee6d6e73fbe1dc3d67f52163efed33fc4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 08 16:19:56 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:41 2007 -0400"
      },
      "message": "NFSv4: Clean up confirmation of sequence ids...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "412c77cee6d6e73fbe1dc3d67f52163efed33fc4",
      "tree": "f7ea21158a76f8b3fd6450ee66dcc053f94b3fbd",
      "parents": [
        "8383e4602c89857ef926f29ca61ac0a83a614443"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 03 16:10:55 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:41 2007 -0400"
      },
      "message": "NFSv4: Defer inode revalidation when setting up a delegation\n\nCurrently we force a synchronous call to __nfs_revalidate_inode() in\nnfs_inode_set_delegation(). This not only ensures that we cannot call\nnfs_inode_set_delegation from an asynchronous context, but it also slows\ndown any call to open().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8383e4602c89857ef926f29ca61ac0a83a614443",
      "tree": "c60d44dbbfccfa6976d61fb7b10f9f97cc6cda06",
      "parents": [
        "13437e12fb43cb7e285ff59248f781c91578eafe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 06 15:12:04 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:41 2007 -0400"
      },
      "message": "NFSv4: Use RCU to protect delegations\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "13437e12fb43cb7e285ff59248f781c91578eafe",
      "tree": "450c618a4655161b4c534d700b9111cf7c349e6f",
      "parents": [
        "901630278469c0d7610554227f39ed2d02d0d270"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 06 15:10:43 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:41 2007 -0400"
      },
      "message": "NFSv4: Support recalling delegations by stateid part 2\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "901630278469c0d7610554227f39ed2d02d0d270",
      "tree": "b530f50e5838943826a215d402b1de770d970bde",
      "parents": [
        "2ced46c27058710a6d731d6eca77f1dd14ccde75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jul 05 14:55:18 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:40 2007 -0400"
      },
      "message": "NFSv4: Support recalling delegations by stateid\n\nThere appear to be some rogue servers out there that issue multiple\ndelegations with different stateids for the same file. Ensure that when we\nreturn delegations, we do so on a per-stateid basis rather than a per-file\nbasis.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2ced46c27058710a6d731d6eca77f1dd14ccde75",
      "tree": "d505d922873c7b3ade6426d0e9924b1c0c380614",
      "parents": [
        "549d6ed5e85003370fe858e70864a71882491d28"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 03 23:48:13 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:40 2007 -0400"
      },
      "message": "NFSv4: Fix up a bug in nfs4_open_recover()\n\nDon\u0027t clobber the delegation info...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "549d6ed5e85003370fe858e70864a71882491d28",
      "tree": "a5094cbce64f07560f0e3511279260e40c0ae669",
      "parents": [
        "1c816efa245111c52858fbe55d99474f3c149dd3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 03 16:42:45 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:40 2007 -0400"
      },
      "message": "NFSv4: set the delegation in nfs4_opendata_to_nfs4_state\n\nThis ensures that nfs4_open_release() and nfs4_open_confirm_release()\ncan now handle an eventual delegation that was returned with out open.\nAs such, it fixes a delegation \"leak\" when the user breaks out of an open\ncall.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1c816efa245111c52858fbe55d99474f3c149dd3",
      "tree": "df2d6fdd574a3a5352b5c246366cdeb0e8dcc43a",
      "parents": [
        "1b45c46cf75d9c48eb611d5cc41607ac1f046606"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 03 14:41:19 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:40 2007 -0400"
      },
      "message": "NFSv4: Fix a bug in __nfs4_find_state_byowner\n\nThe test for state-\u003estate \u003d\u003d 0 does not tell you that the stateid is in the\nprocess of being freed. It really tells you that the stateid is not yet\ninitialised...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b45c46cf75d9c48eb611d5cc41607ac1f046606",
      "tree": "866cbb5a15aec70a3da159da663f435475a2db4f",
      "parents": [
        "9f958ab8858c75df800e0121b1920182820cbc39"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 03 13:04:56 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:40 2007 -0400"
      },
      "message": "NFSv4: Fix atomic open for execute...\n\nCurrently we do not check for the FMODE_EXEC flag as we should. For that\nparticular case, we need to perform an ACCESS call to the server in order\nto check that the file is executable.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f958ab8858c75df800e0121b1920182820cbc39",
      "tree": "754bb9d68aac077825b40796e2acf716bce5df08",
      "parents": [
        "88d9093997e1c73ca98db41b5605dbde7783845f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 13:58:33 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:39 2007 -0400"
      },
      "message": "NFSv4: Reduce the chances of an open_owner identifier collision\n\nCurrently we just use a 32-bit counter.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88d9093997e1c73ca98db41b5605dbde7783845f",
      "tree": "455f60d9aef7527844424fd98373e48a7530c4a9",
      "parents": [
        "e6889620e89525ebf41f0eed937edb3dc065cf1d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 14:03:03 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:39 2007 -0400"
      },
      "message": "NFSv4: nfs_increment_open_seqid should not return a value\n\nIt is a void function...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6889620e89525ebf41f0eed937edb3dc065cf1d",
      "tree": "7037851dee3ef48e0af6c80840b4c2caede3c96e",
      "parents": [
        "2cebf82883f49fd26148da5d9a43d1b4363f1d59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 13:58:30 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:39 2007 -0400"
      },
      "message": "NFSv4: Fix underestimate of NFSv4 lookup request size\n\nAlso fix up the underestimate of fs_locations\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2cebf82883f49fd26148da5d9a43d1b4363f1d59",
      "tree": "0d3b656135a72bc0ef95fa8148767bbdcd9c2146",
      "parents": [
        "bd625ba80d84d9de003b8a4bf61fd937b82aca09"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 13:57:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:39 2007 -0400"
      },
      "message": "NFSv4: Fix the underestimate of NFSv4 open request size\n\nThe maximum size depends on the filename size and a number of other\nelements which are currently not being counted.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd625ba80d84d9de003b8a4bf61fd937b82aca09",
      "tree": "989f4280707a34eb525b37ceec29f3e5f4007620",
      "parents": [
        "7af654f8d1b7460415af5d1d326233478dd0f563"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 08 18:38:23 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:39 2007 -0400"
      },
      "message": "NFSv4: Fix the NFSv4 owner and owner_group size estimates\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7af654f8d1b7460415af5d1d326233478dd0f563",
      "tree": "00ebad16a49f13aa99b518f2554de5dcbeafa79c",
      "parents": [
        "27b3f949b769a208e2849d28e7ad64cadac5d0e3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 12:49:23 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:38 2007 -0400"
      },
      "message": "NFSv4: Don\u0027t reuse expired nfs4_state_owner structs\n\nThat just confuses certain NFSv4 servers.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "27b3f949b769a208e2849d28e7ad64cadac5d0e3",
      "tree": "68b7f71e253ab76a4dbc916695a3b78e8c2a6e68",
      "parents": [
        "587142f85f796cf0b823dd3080e815f02ff6b952"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 10:24:56 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:38 2007 -0400"
      },
      "message": "NFSv4: Fix a credential reference leak in nfs4_get_state_owner()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "587142f85f796cf0b823dd3080e815f02ff6b952",
      "tree": "891e9389d09916ff2c307dc5ada1c65303660c8d",
      "parents": [
        "4e56e082dd89266d320ccfbc7bd0102186a765ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 02 09:57:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:38 2007 -0400"
      },
      "message": "NFS: Replace NFS_I(inode)-\u003ereq_lock with inode-\u003ei_lock\n\nThere is no justification for keeping a special spinlock for the exclusive\nuse of the NFS writeback code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4e56e082dd89266d320ccfbc7bd0102186a765ac",
      "tree": "634bd7183db3bf3c380f97cff886528bf15fbc8a",
      "parents": [
        "8a702bbb7ddaa2e78c17dbaaf48e3cd5943676f0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 01 18:13:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:38 2007 -0400"
      },
      "message": "NFSv4: Clean up _nfs4_proc_lookup() vs _nfs4_proc_lookupfh()\n\nThey differ only slightly in the arguments they take. Why have they not\nbeen merged?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a702bbb7ddaa2e78c17dbaaf48e3cd5943676f0",
      "tree": "82c49e57220dff3d801658a7d0d3eddfedb76758",
      "parents": [
        "0df7fb74fbb709591301871a38aac7735a1d6583"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 27 18:30:26 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:38 2007 -0400"
      },
      "message": "SUNRPC: Suppress some noisy and unnecessary printk() calls in call_verify()\n\nConvert them into dprintk() calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0df7fb74fbb709591301871a38aac7735a1d6583",
      "tree": "a5fc18f5aa581a7e8591551f17e86902b5a7e6b3",
      "parents": [
        "0285ed1f12298e5304f0f2642e2cf31a5f302e61"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 26 17:04:57 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:37 2007 -0400"
      },
      "message": "SUNRPC: Ensure RPCSEC_GSS destroys the security context when freeing a cred\n\nDo so by set the gc_proc field to RPC_GSS_PROC_DESTROY, and then sending a\nNULL RPC call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0285ed1f12298e5304f0f2642e2cf31a5f302e61",
      "tree": "afc4f0829fcbe910c60a89d03c2ea99f71eb78b6",
      "parents": [
        "1be27f36601973815171db684c711d30557cf50c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 27 14:29:12 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:37 2007 -0400"
      },
      "message": "SUNRPC: Ensure that the struct gss_auth lifetime exceeds the credential\u0027s\n\nAdd a refcount in order to ensure that the gss_auth doesn\u0027t disappear from\nunderneath us while we\u0027re freeing up GSS contexts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1be27f36601973815171db684c711d30557cf50c",
      "tree": "37119def0079958b1ec444ee6a3b2ec3b15337b5",
      "parents": [
        "1dd17ec693bf4a08b666c2ef76b68ca08ce3c93d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 27 14:29:04 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:37 2007 -0400"
      },
      "message": "SUNRPC: Remove the tk_auth macro...\n\nWe should almost always be deferencing the rpc_auth struct by means of the\ncredential\u0027s cr_auth field instead of the rpc_clnt-\u003ecl_auth anyway. Fix up\nthat historical mistake, and remove the macro that propagated it.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1dd17ec693bf4a08b666c2ef76b68ca08ce3c93d",
      "tree": "633aabf459c0beafc5ed0ebd7c0efd2e58e7c22b",
      "parents": [
        "5d28dc82074f1e64b22c9424b161abc1f5d6bcdb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 26 16:57:41 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:36 2007 -0400"
      },
      "message": "SUNRPC: Allow rpc_auth to run clean up before the rpc_client is destroyed\n\nRPCSEC_GSS needs to be able to send NULL RPC calls to the server in order\nto free up any remaining GSS contexts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d28dc82074f1e64b22c9424b161abc1f5d6bcdb",
      "tree": "4d45f38dfb681a376478def668db7a9cd4cdeee4",
      "parents": [
        "f5c2187cfef628784d8a09b6d0f77888246d0c0f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 26 19:18:38 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:36 2007 -0400"
      },
      "message": "SUNRPC: Convert gss_ctx_lock to an RCU lock\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f5c2187cfef628784d8a09b6d0f77888246d0c0f",
      "tree": "8c648bb9210ea3bd24e6c5fe278951e47ff15faa",
      "parents": [
        "9499b4341b56935f61af9e7e354e7d11e70f5258"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 25 17:11:20 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:36 2007 -0400"
      },
      "message": "SUNRPC: Convert the credential garbage collector into a shrinker callback\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9499b4341b56935f61af9e7e354e7d11e70f5258",
      "tree": "d6ef7a4608e405aef3d270a641fa1f2cbaed6c7d",
      "parents": [
        "31be5bf15f3dafffce110eb1afadccbf2e3067b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 24 15:57:57 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:36 2007 -0400"
      },
      "message": "SUNRPC: Give credential cache a local spinlock\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31be5bf15f3dafffce110eb1afadccbf2e3067b4",
      "tree": "6e680e926d79a1c5fe6a5a726c3f16cb3b86adfa",
      "parents": [
        "e092bdcd939416ef911090890096fe07d0281a5e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 24 15:55:26 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:36 2007 -0400"
      },
      "message": "SUNRPC: Convert the credcache lookup code to use RCU\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e092bdcd939416ef911090890096fe07d0281a5e",
      "tree": "fdd6800427d470ea1a22d8b2245100277e38a64d",
      "parents": [
        "fc432dd90760a629c57026e57f65ff80a1a31d2f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 23 19:45:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:35 2007 -0400"
      },
      "message": "SUNRPC: cleanup rpc credential cache garbage collection\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc432dd90760a629c57026e57f65ff80a1a31d2f",
      "tree": "1df060f199effb8cfd52772e618c0bac7b8d0e9f",
      "parents": [
        "696e38df9d1b256e97b077ecde7afb8dd60364fd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 25 10:15:15 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:35 2007 -0400"
      },
      "message": "SUNRPC: Enforce atomic updates of rpc_cred-\u003ecr_flags\n\nConvert to the use of atomic bitops...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "696e38df9d1b256e97b077ecde7afb8dd60364fd",
      "tree": "715d9c9550c4cffa8362144d7464cf896c2fdb0c",
      "parents": [
        "5fe4755e2526a2aa82b7ed8daeb3aed74a236925"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 25 09:48:25 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:35 2007 -0400"
      },
      "message": "SUNRPC: replace casts in auth_unix.c with container_of()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5fe4755e2526a2aa82b7ed8daeb3aed74a236925",
      "tree": "aceb993080fc6aac5861f04d8a8494becb4046eb",
      "parents": [
        "f1c0a8615090359d57e096157feb9f900cbb233c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 23 19:55:31 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:35 2007 -0400"
      },
      "message": "SUNRPC: Clean up rpc credential initialisation\n\nAdd a helper rpc_cred_init()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f1c0a8615090359d57e096157feb9f900cbb233c",
      "tree": "2d76448a7c83a45944161a3d966a42f922c543dd",
      "parents": [
        "de7a8ce38aea529876db3890b61947bc4bc004da"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 23 20:17:58 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:34 2007 -0400"
      },
      "message": "SUNRPC: Mark auth and cred operation tables as constant.\n\nAlso do the same for gss_api operation tables.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "de7a8ce38aea529876db3890b61947bc4bc004da",
      "tree": "2067bae81ea0d39631d4caae9a8a092380f1932c",
      "parents": [
        "5e1550d6a2c2dd33ff0ca5febefd8e9c65c6ca1e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 23 10:46:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:34 2007 -0400"
      },
      "message": "SUNRPC: Rename rpcauth_destroy() to rpcauth_release()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5e1550d6a2c2dd33ff0ca5febefd8e9c65c6ca1e",
      "tree": "719d24d2da4fb1c68edd9207436edb1fa40ccb09",
      "parents": [
        "64c91a1f1c8bc4295fd6b90df8adf911a7dd64f4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 23 10:17:16 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:34 2007 -0400"
      },
      "message": "SUNRPC: Add the helper function \u0027rpc_call_null()\u0027\n\nDoes a NULL RPC call and returns a pointer to the resulting rpc_task. The\ncall may be either synchronous or asynchronous.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "64c91a1f1c8bc4295fd6b90df8adf911a7dd64f4",
      "tree": "62b8166a9638b6d349779fa2f77f3d7bd18e1aea",
      "parents": [
        "fc1b356f566fe05929ec2a88ce2c7b15f8b6279f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 23 10:17:16 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:34 2007 -0400"
      },
      "message": "SUNRPC: Make rpc_ping() static\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc1b356f566fe05929ec2a88ce2c7b15f8b6279f",
      "tree": "7d790ea2d3618b9cb166081a86797411f3547e44",
      "parents": [
        "07a2bf1da4765d987ffd1d8045e92ba032e0ad78"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 09 16:15:46 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:34 2007 -0400"
      },
      "message": "SUNRPC: Fix races in rpcauth_create\n\nSee the FIXME: auth_flavors[] really needs a lock and module refcounting.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "07a2bf1da4765d987ffd1d8045e92ba032e0ad78",
      "tree": "aae0eca6d85c75f6a5fb8ac538f1f8e58c7088e2",
      "parents": [
        "5c9cfc828ae34e19dabbdb9f2861b8c920454047"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 09 15:42:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:33 2007 -0400"
      },
      "message": "SUNRPC: Fix a memory leak in gss_create()\n\nFix a memory leak in gss_create() whereby the rpc credcache was not being\nfreed if the rpc_mkpipe() call failed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5c9cfc828ae34e19dabbdb9f2861b8c920454047",
      "tree": "a6c2ddf3fa7260d9e321a81c6839c239cfdfc3e0",
      "parents": [
        "3ab9bb7243489f9db3abf3d05521ddfc6b184c0a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 24 15:24:29 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:33 2007 -0400"
      },
      "message": "SUNRPC: Fix a typo in unx_create()\n\nWe want to set the unix_cred_cache.nextgc on the first call to\nunx_create(), which should be when unix_auth.au_count \u003d\u003d\u003d 1\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3ab9bb7243489f9db3abf3d05521ddfc6b184c0a",
      "tree": "05476c58c87c5578354ab8a3befcb7316c9ef9bc",
      "parents": [
        "03a1256f06cf1f58e33971fb4a524479e75c200e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 09 15:41:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:33 2007 -0400"
      },
      "message": "SUNRPC: Fix a memory leak in the auth credcache code\n\nThe leak only affects the RPCSEC_GSS caches, since they are the only ones\nthat are dynamically allocated...\nRename the existing rpcauth_free_credcache() to rpcauth_clear_credcache()\nin order to better describe its role, then add a new function\nrpcauth_destroy_credcache() that actually frees the cache in addition to\nclearing it out.\n\nAlso move the call to destroy the credcache in gss_destroy() to come before\nthe rpc upcall pipe is unlinked.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03a1256f06cf1f58e33971fb4a524479e75c200e",
      "tree": "29da3d4cee02e06e17fcb5087081602f8475b2e5",
      "parents": [
        "62e1761ceff5dbb78c4b4b9486d8ca9fed11b660"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 08 14:14:53 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:33 2007 -0400"
      },
      "message": "SUNRPC: Add a field to track the number of kernel users of an rpc_pipe\n\nThis allows us to correctly deduce when we need to remove the pipe.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62e1761ceff5dbb78c4b4b9486d8ca9fed11b660",
      "tree": "6d8a31738beec2340ccfe662b352f5aa9b5659f8",
      "parents": [
        "34f308960818e514fadd9365cb5b14cca319320b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 08 14:14:46 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:33 2007 -0400"
      },
      "message": "SUNRPC: Clean up rpc_pipefs.\n\nAdd a dentry_ops with a d_delete() method in order to ensure that dentries\nare removed as soon as the last reference is gone.\n\nClean up rpc_depopulate() so that it only removes files that were created\nvia rpc_populate().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34f308960818e514fadd9365cb5b14cca319320b",
      "tree": "45b91a37614559d83025356a19771e3537f5cf00",
      "parents": [
        "6e84c7b66a0aa0be16a7728d1e687c57978dac2c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 07 18:28:02 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:32 2007 -0400"
      },
      "message": "SUNRPC: Enable non-exclusive create in rpc_mkpipe()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6e84c7b66a0aa0be16a7728d1e687c57978dac2c",
      "tree": "0aa7ab3d44b1749dca78d554f1d18a5b6fad43ff",
      "parents": [
        "3b68aaeaf54065e5c44583a1d33ffb7793953ba4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 07 15:31:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:32 2007 -0400"
      },
      "message": "SUNRPC: Add a downcall queue to struct rpc_inode\n\nCurrently, the downcall queue is tied to the struct gss_auth, which means\nthat different RPCSEC_GSS pseudoflavours must use different upcall pipes.\nAdd a list to struct rpc_inode that can be used instead.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3b68aaeaf54065e5c44583a1d33ffb7793953ba4",
      "tree": "7b2e142d018fece125cc6616c117af575a8c095b",
      "parents": [
        "b185f835e243e654047ae85f42346827d3894171"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 07 10:14:15 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:31 2007 -0400"
      },
      "message": "SUNRPC: Always match an upcall message in gss_pipe_downcall()\n\nIt used to be possible for an rpc.gssd daemon to stuff the RPC credential\ncache for any rpc client simply by creating RPCSEC_GSS contexts and then\ndoing downcalls. In practice, no daemons ever made use of this feature.\n\nRemove this feature now, since it will be impossible to figure out which\nmechanism a given context actually matches if we enable more\nthan one gss mechanism to use the same upcall pipe.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b185f835e243e654047ae85f42346827d3894171",
      "tree": "a9cb1a321003db6e0f7f24ed923c4dd11724bd80",
      "parents": [
        "4a8c1344dccb848dbcf0edabc8b5c51a8ecf2808"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 07 10:14:14 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:31 2007 -0400"
      },
      "message": "SUNRPC: Remove the gss_auth spinlock\n\nWe\u0027re just as well off using the inode spinlock instead.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4a8c1344dccb848dbcf0edabc8b5c51a8ecf2808",
      "tree": "ecfa69d4bc36aefe86c2528240ef69da723f5bf4",
      "parents": [
        "c1384c9c4c184543375b52a0997d06cd98145164"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 07 10:14:14 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:31 2007 -0400"
      },
      "message": "SUNRPC: Add a backpointer from the struct rpc_cred to the rpc_auth\n\nCleans up an issue whereby rpcsec_gss uses the rpc_clnt-\u003ecl_auth. If we want\nto be able to add several rpc_auths to a single rpc_clnt, then this abuse\nmust go.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1384c9c4c184543375b52a0997d06cd98145164",
      "tree": "26bb2ee42dc2fddfe1817d3066844669912adef2",
      "parents": [
        "6e5b70e9d1e712d8dad5514e0ab5240ac4b5fb57"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 18:00:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:31 2007 -0400"
      },
      "message": "SUNRPC: fix hang due to eventd deadlock...\n\nBrian Behlendorf writes:\n\nThe root cause of the NFS hang we were observing appears to be a rare\ndeadlock between the kernel provided usermodehelper API and the linux NFS\nclient.  The deadlock can arise because both of these services use the\ngeneric linux work queues.  The usermodehelper API run the specified user\napplication in the context of the work queue.  And NFS submits both cleanup\nand reconnect work to the generic work queue for handling.  Normally this\nis fine but a deadlock can result in the following situation.\n\n  - NFS client is in a disconnected state\n  - [events/0] runs a usermodehelper app with an NFS dependent operation,\n    this triggers an NFS reconnect.\n  - NFS reconnect happens to be submitted to [events/0] work queue.\n  - Deadlock, the [events/0] work queue will never process the\n    reconnect because it is blocked on the previous NFS dependent\n    operation which will not complete.`\n\nThe solution is simply to run reconnect requests on rpciod.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6e5b70e9d1e712d8dad5514e0ab5240ac4b5fb57",
      "tree": "cb6c293dd5adf1b966dcd5681649fafc690fd053",
      "parents": [
        "188fef11db219f13f32d055ba59985e7d1a349fe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 12 10:02:37 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:30 2007 -0400"
      },
      "message": "SUNRPC: clean up rpc_call_async/rpc_call_sync/rpc_run_task\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "188fef11db219f13f32d055ba59985e7d1a349fe",
      "tree": "b64754962315934c1fa33fca16eabffeb901425a",
      "parents": [
        "f61534dfd38f895b203e2aadaba04f21a992ca8c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 16 14:18:40 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:30 2007 -0400"
      },
      "message": "SUNRPC: Move rpc_register_client and friends into net/sunrpc/clnt.c\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f61534dfd38f895b203e2aadaba04f21a992ca8c",
      "tree": "02485ae68fb2f45cbbc06152e0a4856ceff5f587",
      "parents": [
        "4ada539ed77c7a2bbcb75cafbbd7bd8d2b9bef7b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 17:31:58 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:30 2007 -0400"
      },
      "message": "SUNRPC: Remove redundant calls to rpciod_up()/rpciod_down()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ada539ed77c7a2bbcb75cafbbd7bd8d2b9bef7b",
      "tree": "cb4ba7df88aee07173dc7e44a3c35249ae4ab539",
      "parents": [
        "ab418d70e1fceda1e2824c45ba3323a1b1413507"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 17:26:17 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:30 2007 -0400"
      },
      "message": "SUNRPC: Make create_client() take a reference to the rpciod workqueue\n\nEnsures that an rpc_client always has the possibility to send asynchronous\nRPC calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ab418d70e1fceda1e2824c45ba3323a1b1413507",
      "tree": "f7ece30a34a089476f84afc4a95be459a5cb06bf",
      "parents": [
        "d431a555fcf920e1b5c3e3eba52eb5f5e7836771"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 17:08:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:30 2007 -0400"
      },
      "message": "SUNRPC: Optimise rpciod_up()\n\nInstead of taking the mutex every time we just need to increment/decrement\nrpciod_users, we can optmise by using atomic_inc_not_zero and\natomic_dec_and_test.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d431a555fcf920e1b5c3e3eba52eb5f5e7836771",
      "tree": "2f2a11b506742417b91fa2b63d332f4ad27a88db",
      "parents": [
        "4c402b40970382ded616eadd544fd63feb76cc79"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 17:07:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:29 2007 -0400"
      },
      "message": "SUNRPC: Don\u0027t create an rpc_pipefs directory before rpc_clone is initialised\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c402b40970382ded616eadd544fd63feb76cc79",
      "tree": "ddff43479ae51f0ba5af566b09e0188563aab17b",
      "parents": [
        "8ad7c892e18ff8e6df422eb48ca0f73268ffd632"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 16:40:32 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:29 2007 -0400"
      },
      "message": "SUNRPC: Remove rpc_clnt-\u003ecl_count\n\nThe kref now does most of what cl_count + cl_user used to do. The only\nremaining role for cl_count is to tell us if we are in a \u0027shutdown\u0027\nphase. We can provide that information using a single bit field instead\nof a full atomic counter.\n\nAlso rename rpc_destroy_client() to rpc_close_client(), which reflects\nbetter what its role is these days.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8ad7c892e18ff8e6df422eb48ca0f73268ffd632",
      "tree": "42e1e0bacc39ef9ea457a4f278d6361e4582ce01",
      "parents": [
        "90c5755ff5111ffdcca10a1e8a823dba29f37b6d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 16:40:32 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:29 2007 -0400"
      },
      "message": "SUNRPC: Make rpc_clone take a reference instead of using cl_count\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90c5755ff5111ffdcca10a1e8a823dba29f37b6d",
      "tree": "a3ca80b629d11e341fa2bcdf30e0d712dcccc3ba",
      "parents": [
        "848f1fe6be2e290691bb6c13cbb8fd92bd0cfaab"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 09 19:49:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:29 2007 -0400"
      },
      "message": "SUNRPC: Kill rpc_clnt-\u003ecl_oneshot\n\nReplace it with explicit calls to rpc_shutdown_client() or\nrpc_destroy_client() (for the case of asynchronous calls).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "848f1fe6be2e290691bb6c13cbb8fd92bd0cfaab",
      "tree": "d653340b5e0c8c6ce393e67b11d8958fab4b05e4",
      "parents": [
        "34f52e3591f241b825353ba27def956d8487c400"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 09 19:39:12 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:29 2007 -0400"
      },
      "message": "SUNRPC: Kill rpc_clnt-\u003ecl_dead\n\nIts use is at best racy, and there is only one user (lockd), which has\nadditional locking that makes the whole thing redundant.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34f52e3591f241b825353ba27def956d8487c400",
      "tree": "9f7f0cd52f206095217bd2469e31c2531cbae0a4",
      "parents": [
        "c44fe705530ff9ea5e563bf9b65bdd29defe682b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 16:40:31 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:28 2007 -0400"
      },
      "message": "SUNRPC: Convert rpc_clnt-\u003ecl_users to a kref\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c44fe705530ff9ea5e563bf9b65bdd29defe682b",
      "tree": "8f4a7eaf29d5d6e1752f5807bc9e9e27d2256f67",
      "parents": [
        "4bef61ff7514396419563ca54fd42ef846485b06"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 16 14:17:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:28 2007 -0400"
      },
      "message": "SUNRPC: Clean up tk_pid allocation and make it lockless\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4bef61ff7514396419563ca54fd42ef846485b06",
      "tree": "5ea7eca032557a8ae307661b8c2b887fac257476",
      "parents": [
        "6529eba08fe7297852391a468d95322913de73fa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 16 14:17:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:28 2007 -0400"
      },
      "message": "SUNRPC: Add a per-rpc_clnt spinlock\n\nUse that to protect the rpc_clnt-\u003ecl_tasks list instead of using a global\nlock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6529eba08fe7297852391a468d95322913de73fa",
      "tree": "6c9e0fa67de82f8a0c0df4e5bed9dbfefe3f1ac2",
      "parents": [
        "c6d00e639bdec5f33460bc95bae4efda7177a6ed"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 16:40:14 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:28 2007 -0400"
      },
      "message": "SUNRPC: Move rpc_task-\u003etk_task list into struct rpc_clnt\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c6d00e639bdec5f33460bc95bae4efda7177a6ed",
      "tree": "86c00c756f3212ea54203dc62619f5cd6b4f153e",
      "parents": [
        "3bec63db55463365110d00721ed60a31e4614cb6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 16:02:44 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:28 2007 -0400"
      },
      "message": "NFSv4: Convert struct nfs4_opendata to use struct kref\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3bec63db55463365110d00721ed60a31e4614cb6",
      "tree": "ad0fed8f7e83258c7fcf59ca8433f02232e05cac",
      "parents": [
        "edc05fc1c24ba49dae585da1b2a22686f0b221f0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 16:02:44 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:27 2007 -0400"
      },
      "message": "NFS: Convert struct nfs_open_context to use a kref\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "edc05fc1c24ba49dae585da1b2a22686f0b221f0",
      "tree": "a31d11b97d4207b63019866481292528aaa1666b",
      "parents": [
        "dce34ce298d85b81630401f4feb4bd7ac77fe9c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 16:02:34 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:27 2007 -0400"
      },
      "message": "NFS: reduce latency by using conditional rescheduling in nfs_scan_list\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dce34ce298d85b81630401f4feb4bd7ac77fe9c7",
      "tree": "9caa66cd3f03d500fdef5df290de23695589026d",
      "parents": [
        "2aefa104313996d1a9582476cee53d1296c834bf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 15:47:53 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:27 2007 -0400"
      },
      "message": "NFS: Prevent integer overflow in nfs_scan_list()\n\nAlso ensure that nfs_inode ncommit and npages are large enough to represent\nall possible values for the number of pages.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2aefa104313996d1a9582476cee53d1296c834bf",
      "tree": "858c9af6784949b714e728be52ffde7fba842811",
      "parents": [
        "5c36968343fcd013a3f7ae93f246c2e75596780b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 15:40:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:26 2007 -0400"
      },
      "message": "NFS: Remove the redundant \u0027dirty\u0027 and \u0027commit\u0027 lists from nfs_inode\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5c36968343fcd013a3f7ae93f246c2e75596780b",
      "tree": "96a3f2867e4631d84179952b1af170f3e48eae4b",
      "parents": [
        "9fd367f0f376ccfb2592eed9be0eece70429894f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 15:27:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:26 2007 -0400"
      },
      "message": "NFS cleanup: speed up nfs_scan_commit using radix tree tags\n\nAdd a tag for requests that are waiting for a COMMIT\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9fd367f0f376ccfb2592eed9be0eece70429894f",
      "tree": "9fa7b6570db80dd7025a5c33ebd7c82ca73698a7",
      "parents": [
        "c03b40246123b2ced79e2620d1d2c089bb12369a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 15:10:24 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:26 2007 -0400"
      },
      "message": "NFS cleanup: Rename NFS_PAGE_TAG_WRITEBACK to NFS_PAGE_TAG_LOCKED\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c03b40246123b2ced79e2620d1d2c089bb12369a",
      "tree": "59851fd137ee3ef4d7a3f6a5c6953011f45f8f96",
      "parents": [
        "a50f7951a31d3b976e829250853f89c9d2da32c0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 17 13:26:38 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:26 2007 -0400"
      },
      "message": "NFS: Convert struct nfs_page to use krefs\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a50f7951a31d3b976e829250853f89c9d2da32c0",
      "tree": "de9e8a3f93ee724471a49d9edb1155adef8d41f5",
      "parents": [
        "e2f032e9ef66e33089d09452892696ea97d1dca1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 19:23:43 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:25 2007 -0400"
      },
      "message": "NFS: Fix an Oops in the nfs_access_cache_shrinker()\n\nThe nfs_access_cache_shrinker may race with nfs_access_zap_cache().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e2f032e9ef66e33089d09452892696ea97d1dca1",
      "tree": "f342e1944bc9e230730c519197832709fc18f9a6",
      "parents": [
        "aa53ed541a1fec78a78d02afc8b042d040cc080d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 19:27:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:25 2007 -0400"
      },
      "message": "NFS: nfs3_proc_create() should use nfs_post_op_update_inode()\n\nAlso get rid of a redundant call to nfs_setattr_update_inode(). The call to\nnfs3_proc_setattr() already takes care of that.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "aa53ed541a1fec78a78d02afc8b042d040cc080d",
      "tree": "04d4c66b643e4ec9ec1277f3ad642b18f3f94990",
      "parents": [
        "fc6ae3cf482c385a6fe87ba119d399bb85aa670b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 05 14:49:03 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:25 2007 -0400"
      },
      "message": "NFS4: on a O_EXCL OPEN make sure SETATTR sets the fields holding the verifier\n\nThe Linux NFS4 client simply skips over the bitmask in an O_EXCL open\ncall and so it doesn\u0027t bother to reset any fields that may be holding\nthe verifier. This patch has us save the first two words of the bitmask\n(which is all the current client has #defines for). The client then\nlater checks this bitmask and turns on the appropriate flags in the\nsattr-\u003eia_verify field for the following SETATTR call.\n\nThis patch only currently checks to see if the server used the atime\nand mtime slots for the verifier (which is what the Linux server uses\nfor this). I\u0027m not sure of what other fields the server could\nreasonably use, but adding checks for others should be trivial.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc6ae3cf482c385a6fe87ba119d399bb85aa670b",
      "tree": "0bd1f3392f1e4d2a902eb0e23a4978cfe91f1843",
      "parents": [
        "83d93f2229348837bf988a1048f7f38789474471"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 19:13:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:25 2007 -0400"
      },
      "message": "NFS: Re-enable forced umounts\n\nThey disappeared some time around 2.6.18.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "83d93f2229348837bf988a1048f7f38789474471",
      "tree": "cd4c6fc06cea4f7f761ceac187671f9cb5348d20",
      "parents": [
        "a0356862bcbeb20acf64bc1a82d28a4c5bb957a7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jun 07 09:58:08 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:25 2007 -0400"
      },
      "message": "NFS: Use GFP_HIGHUSER for page allocation in nfs_symlink()\n\nnfs_symlink() allocates a GFP_KERNEL page for the pagecache. Most\npagecache pages are allocated using GFP_HIGHUSER, and there\u0027s no reason\nnot to do that in nfs_symlink() as well.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "a0356862bcbeb20acf64bc1a82d28a4c5bb957a7",
      "tree": "20dd38a076a17c35e63eadddc77ccf0f3633f377",
      "parents": [
        "b39e625b6e75aa70e26c13f9378756bb5f2af032"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 13:26:15 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:24 2007 -0400"
      },
      "message": "NFS: Fix nfs_reval_fsid()\n\nWe don\u0027t need to revalidate the fsid on the root directory. It suffices to\nrevalidate it on the current directory.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b39e625b6e75aa70e26c13f9378756bb5f2af032",
      "tree": "acf17b925b359b051f476c7e9500c4f4d60f5d0c",
      "parents": [
        "4a35bd41aff5714deb41c8f14766df3871e2e8f7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 11 23:05:07 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:24 2007 -0400"
      },
      "message": "NFSv4: Clean up nfs4_call_async()\n\nUse rpc_run_task() instead of doing it ourselves.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4a35bd41aff5714deb41c8f14766df3871e2e8f7",
      "tree": "3542c76b1e0aabcd0ee6bb76fdd8228e6f3b5479",
      "parents": [
        "ad389da79f7bf9dc12dbc79c9c2740f9ed2f13d1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 10:31:33 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:24 2007 -0400"
      },
      "message": "NFSv4: Ensure that nfs4_do_close() doesn\u0027t race with umount\n\nnfs4_do_close() does not currently have any way to ensure that the user\nwon\u0027t attempt to unmount the partition while the asynchronous RPC call\nis completing. This again may cause Oopses in nfs_update_inode().\n\nAdd a vfsmount argument to nfs4_close_state to ensure that the partition\nremains mounted while we\u0027re closing the file.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ad389da79f7bf9dc12dbc79c9c2740f9ed2f13d1",
      "tree": "9fd51d8a43aaba790a87f721d2796e36ab9f66e7",
      "parents": [
        "539cd03a5708c9861a3e738e6f363ad743c85ddf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 12:30:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:24 2007 -0400"
      },
      "message": "NFSv4: Ensure asynchronous open() calls always pin the mountpoint\n\nA number of race conditions may currently ensue if the user presses ^C\nand then unmounts the partition while an asynchronous open() is in\nprogress.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "539cd03a5708c9861a3e738e6f363ad743c85ddf",
      "tree": "3d786675f645621b9a04c7b7aad2bbbca9cc5241",
      "parents": [
        "88be9f990fe70f0f177ef44a16a477599e91f825"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 11:46:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:24 2007 -0400"
      },
      "message": "NFSv4: Cleanup: pass the nfs_open_context to open recovery code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88be9f990fe70f0f177ef44a16a477599e91f825",
      "tree": "d48ed0c934fc20dc3f7cacfc3b1eca3058246b65",
      "parents": [
        "de05a0cc2a2ae16eb8d8dbf88fe728ace45beb9a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 10:42:27 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Replace vfsmount and dentry in nfs_open_context with struct path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "de05a0cc2a2ae16eb8d8dbf88fe728ace45beb9a",
      "tree": "363a6afc01a935d9e34b3559235687f8fec4d512",
      "parents": [
        "44dd151d5c21234cc534c47d7382f5c28c3143cd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 20 13:05:05 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Minor read optimisation...\n\nSince PG_uptodate may now end up getting set during the call to\nnfs_wb_page(), we can avoid putting a read request on the wire in those\nsituations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44dd151d5c21234cc534c47d7382f5c28c3143cd",
      "tree": "eb84acd25a07a70a0418be7b94b3516865043f0f",
      "parents": [
        "d9df8d6b38228afab519094048aa2c082b0b2cf4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 19 11:58:03 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Don\u0027t mark a written page as uptodate until it is on disk\n\nThe write may fail, so we should not mark the page as uptodate until we are\ncertain that the data has been accepted and written to disk by the server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d9df8d6b38228afab519094048aa2c082b0b2cf4",
      "tree": "7bbe92c2ac8e3eab2179cd194dccc8f30bf63df5",
      "parents": [
        "070ea60214c1894c9eec86ca9aa5dff57a5ab525"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 10:22:20 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Don\u0027t fail an O_DIRECT read/write if get_user_pages() returns pages\n\nThere is no need to fail the entire O_DIRECT read/write just because\nget_user_pages() returned fewer pages than we requested.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "070ea60214c1894c9eec86ca9aa5dff57a5ab525",
      "tree": "ee77da93e0faa6a893d8ad6dacaf1943de7ffbae",
      "parents": [
        "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sat May 19 17:22:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Clean ups in fs/nfs/direct.c\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4",
      "tree": "f587497c783b04f3e89b4b0e5c105b0533489624",
      "parents": [
        "bcf67e16251c42302499499b1c50f7d35622f564"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Jul 10 17:22:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "lots-of-architectures: enable arbitary speed tty support\n\nAdd the termios2 structure ready for enabling on most platforms.  One or\ntwo like Sparc are plain weird so have been left alone.  Most can use the\nsame structure as ktermios for termios2 (ie the newer ioctl uses the\nstructure matching the current kernel structure)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcf67e16251c42302499499b1c50f7d35622f564",
      "tree": "3df64aa83005c0a153acf3a1a0d7a6e6d49dc688",
      "parents": [
        "c14d444b55f285063a4018c10d521614b70b581a"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue Jul 10 17:22:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "Make common helpers for seq_files that work with list_heads\n\nMany places in kernel use seq_file API to iterate over a regular list_head.\nThe code for such iteration is identical in all the places, so it\u0027s worth\nintroducing a common helpers.\n\nThis makes code about 300 lines smaller:\n\nThe first version of this patch made the helper functions static inline\nin the seq_file.h header. This patch moves them to the fs/seq_file.c as\nAndrew proposed. The vmlinux .text section sizes are as follows:\n\n2.6.22-rc1-mm1:              0x001794d5\nwith the previous version:   0x00179505\nwith this patch:             0x00179135\n\nThe config file used was make allnoconfig with the \"y\" inclusion of all\nthe possible options to make the files modified by the patch compile plus\ndrivers I have on the test node.\n\nThis patch:\n\nMany places in kernel use seq_file API to iterate over a regular list_head.\nThe code for such iteration is identical in all the places, so it\u0027s worth\nintroducing a common helpers.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c14d444b55f285063a4018c10d521614b70b581a",
      "tree": "6bcf518665f937f46247ab99ffe6744bda6d8b8d",
      "parents": [
        "64c70b1cf43de158282bc1675918d503e5b15cc1"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue Jul 10 17:22:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "sx: switch subven and subid values\n\nsx.c is failing to locate Graham\u0027s card.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Graham Murray \u003cgmurray@webwayone.co.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64c70b1cf43de158282bc1675918d503e5b15cc1",
      "tree": "e7797ee372de94bb9129300e55d23034a7d05f9a",
      "parents": [
        "4c75f7416f51b0c6855952467a5db04f9c598f09"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@openedhand.com",
        "time": "Tue Jul 10 17:22:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "Add LZO1X algorithm to the kernel\n\nThis is a hybrid version of the patch to add the LZO1X compression\nalgorithm to the kernel.  Nitin and myself have merged the best parts of\nthe various patches to form this version which we\u0027re both happy with (and\nare jointly signing off).\n\nThe performance of this version is equivalent to the original minilzo code\nit was based on.  Bytecode comparisons have also been made on ARM, i386 and\nx86_64 with favourable results.\n\nThere are several users of LZO lined up including jffs2, crypto and reiser4\nsince its much faster than zlib.\n\nSigned-off-by: Nitin Gupta \u003cnitingupta910@gmail.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@openedhand.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c75f7416f51b0c6855952467a5db04f9c598f09",
      "tree": "dbe06f7e69d68cf99b20567577c9c5488e4e1e8c",
      "parents": [
        "6ed911fb04886c5510a41cd89203b931b1c5d261",
        "ed99c541e0a15281c57530d54a4a5e3272f74fb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:57:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:57:52 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:\n  mmc: at91_mci: fix hanging and rework to match flowcharts\n  mmc: at91_mci typo\n  sdhci: Fix \"Unexpected interrupt\" handling\n  mmc: fix silly copy-and-paste error\n  mmc: move layer init and workqueue to core file\n  mmc: refactor host class handling\n  mmc: refactor bus operations\n  sdhci: add ene controller id\n  mmc: bounce requests for simple hosts\n"
    }
  ],
  "next": "6ed911fb04886c5510a41cd89203b931b1c5d261"
}
