)]}'
{
  "log": [
    {
      "commit": "4fc8796d23819da814ec25b7793bde8f104f1a2a",
      "tree": "d86513109dd792087091b6054a983271b2536f60",
      "parents": [
        "0032a7a749a49b2c044092a1d0af5cfd0077f35d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 17:42:01 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 22:38:55 2012 -0500"
      },
      "message": "NFSv4: Clean up nfs4_select_rw_stateid()\n\nEnsure that we select delegation stateids first, then\nlock stateids and then open stateids.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0032a7a749a49b2c044092a1d0af5cfd0077f35d",
      "tree": "b73ca09268f9b6f1c6b5c8bb9301b088a305830d",
      "parents": [
        "2dc317565b6fd264929b41aaa9674431d75178ef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 17:16:12 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 22:37:12 2012 -0500"
      },
      "message": "NFS: Don\u0027t copy read delegation stateids in setattr\n\nThe server will just return an NFS4ERR_OPENMODE anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2dc317565b6fd264929b41aaa9674431d75178ef",
      "tree": "dd944aeb038638086a6054f24cb0f74822cf1873",
      "parents": [
        "3114ea7a24d3264c090556a2444fc6d2c06176d4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Mar 08 11:03:53 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 11:05:48 2012 -0500"
      },
      "message": "NFSv4.1 cleanup DS stateid error handling\n\nThe error handler nfs4_state parameter is never NULL in the pNFS case as\nthe open_context must carry an nfs_state.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3114ea7a24d3264c090556a2444fc6d2c06176d4",
      "tree": "50b8f1f3f43c6eb93093abec368c070e2efdc7d2",
      "parents": [
        "cf470c3e004efe16d73dc8ba9b29bdc9a5327cda"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 16:39:06 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 17:11:19 2012 -0500"
      },
      "message": "NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE\n\nIf a setattr() fails because of an NFS4ERR_OPENMODE error, it is\nprobably due to us holding a read delegation. Ensure that the\nrecovery routines return that delegation in this case.\n\nReported-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "cf470c3e004efe16d73dc8ba9b29bdc9a5327cda",
      "tree": "57f8f72ef5af7d33d760570bd8d78e9b0face719",
      "parents": [
        "9cb8196839ab4ec87710526e9c43ac7f5dba69d3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 13:49:12 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 13:49:12 2012 -0500"
      },
      "message": "NFSv4: Don\u0027t free the nfs4_lock_state until after the release_lockowner\n\nOtherwise we can end up with sequence id problems if the client reuses\nthe owner_id before the server has processed the release_lockowner\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9cb8196839ab4ec87710526e9c43ac7f5dba69d3",
      "tree": "97ea8225d7ea1b7ba45785f25d042a18263eaf8e",
      "parents": [
        "4f1abd226d80ef763c50e3930b369b63dffbb312"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Mar 07 10:49:41 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 10:53:55 2012 -0500"
      },
      "message": "NFSv4.1 handle DS stateid errors\n\nHandle DS READ and WRITE stateid errors by recovering the stateid on the MDS.\n\nNFS4ERR_OLD_STATEID is ignored as the client always sends a\nstate sequenceid of zero for DS READ and WRITE stateids.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4f1abd226d80ef763c50e3930b369b63dffbb312",
      "tree": "6dfbcc0046ef135fadd2b6585e864c067b3bf1a6",
      "parents": [
        "d8e0539ebdff5ff27fa7eb019715d9dfb5171a3b"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Mar 06 21:58:20 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 10:34:27 2012 -0500"
      },
      "message": "NFS: add fh_crc to debug output\n\nPrint the filehandle crc in two debug messages\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d8e0539ebdff5ff27fa7eb019715d9dfb5171a3b",
      "tree": "c85febe66a9527be703fd82fd9e017df740364b3",
      "parents": [
        "ff2eb6818d0d5b2691c112f51c539a817fcc59fc"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Mar 06 20:46:43 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 10:34:07 2012 -0500"
      },
      "message": "NFS: add filehandle crc for debug display\n\nMatch wireshark\u0027s CRC-32 hash for easier debugging\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff2eb6818d0d5b2691c112f51c539a817fcc59fc",
      "tree": "a21cbf015c37babb6a913a30c7619b8670dda99e",
      "parents": [
        "475d4ba02c3748b69cc71fa5c11c4b281cac5928"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 11:40:12 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:50 2012 -0500"
      },
      "message": "NFSv4: Add a helper encode_uint64\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "475d4ba02c3748b69cc71fa5c11c4b281cac5928",
      "tree": "9f8d3368e12cc73ac095e36f86e19c252dc087cf",
      "parents": [
        "700195142185c05757cfd27f8070ae0e9e07710b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 11:27:16 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:49 2012 -0500"
      },
      "message": "NFSv4: More xdr cleanups\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "700195142185c05757cfd27f8070ae0e9e07710b",
      "tree": "93070a75b4c35b4d5c1ee519d5952760484da12d",
      "parents": [
        "cd93710e8d290711ba2e08e1d1a380013aad667d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 20:49:32 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:49 2012 -0500"
      },
      "message": "NFSv4: Cleanup - convert more functions to use encode_op_hdr\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd93710e8d290711ba2e08e1d1a380013aad667d",
      "tree": "28f1a04dabfa3eaa64b61ea4491654e9ba70d889",
      "parents": [
        "ab19b4813fdbdef8f9c8732d1f7a2a69ae78d00b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 02 17:14:31 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:48 2012 -0500"
      },
      "message": "NFS: Fix nfs4_verifier memory alignment\n\nClean up due to code review.\n\nThe nfs4_verifier\u0027s data field is not guaranteed to be u32-aligned.\nCasting an array of chars to a u32 * is considered generally\nhazardous.\n\nFix this by using a __be32 array to generate a verifier\u0027s contents,\nand then byte-copy the contents into the verifier field.  The contents\nof a verifier, for all intents and purposes, are opaque bytes.  Only\nlocal code that generates a verifier need know the actual content and\nformat.  Everyone else compares the full byte array for exact\nequality.\n\nAlso, sizeof(nfs4_verifer) is the size of the in-core verifier data\nstructure, but NFS4_VERIFIER_SIZE is the number of octets in an XDR\u0027d\nverifier.  The two are not interchangeable, even if they happen to\nhave the same value.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ab19b4813fdbdef8f9c8732d1f7a2a69ae78d00b",
      "tree": "eef3e453d0c80d4134a833b2b8118e5ba134b275",
      "parents": [
        "4ade9821602ada8f56f3a3eb444dedbe42f1730e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:48 2012 -0500"
      },
      "message": "NFSv4: Add a encode op helper\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ade9821602ada8f56f3a3eb444dedbe42f1730e",
      "tree": "1e045d135dcb70e8607cc46cb886af1fb94fc6f7",
      "parents": [
        "6fdfb0bc2a43f5deb612b7f79d9c7750708e0184"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:48 2012 -0500"
      },
      "message": "NFSv4: Add a helper for encoding NFSv4 sequence ids\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6fdfb0bc2a43f5deb612b7f79d9c7750708e0184",
      "tree": "1c144e8448a2a392c2e86e4d7d42734e1b0c3617",
      "parents": [
        "2d2f24add1ff903ff8e0ce61c5c05635cc636985"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:47 2012 -0500"
      },
      "message": "NFSv4: Minor clean ups for encode_string()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d2f24add1ff903ff8e0ce61c5c05635cc636985",
      "tree": "132ddb133179b95931d42a19e79d25f2db33339c",
      "parents": [
        "f597c53790f662662281b82b7692a22d2a4d4afa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:47 2012 -0500"
      },
      "message": "NFSv4: Simplify the struct nfs4_stateid\n\nReplace the union with the common struct stateid4 as defined in both\nRFC3530 and RFC5661. This makes it easier to access the sequence id,\nwhich will again make implementing support for parallel OPEN calls\neasier.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f597c53790f662662281b82b7692a22d2a4d4afa",
      "tree": "3567e1c7e232973fee14b7ddffa3545cd88392d0",
      "parents": [
        "1e3987c3052a48fbfc8f5d30214c825eff41192d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:46 2012 -0500"
      },
      "message": "NFSv4: Add helpers for basic copying of stateids\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1e3987c3052a48fbfc8f5d30214c825eff41192d",
      "tree": "7940587f55f176c6f0bc7c293834a376e6130037",
      "parents": [
        "ea9d23f51041036b5d5d062dae2fafe0f670449c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:46 2012 -0500"
      },
      "message": "NFSv4: Rename nfs4_copy_stateid()\n\nIt is really a function for selecting the correct stateid to use in a\nread or write situation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ea9d23f51041036b5d5d062dae2fafe0f670449c",
      "tree": "deda0b22af68a64d4817dc4430898605d354d532",
      "parents": [
        "cb17e556f6202c200d38a2e0c05a5bd29060389f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:46 2012 -0500"
      },
      "message": "NFSv4: Add a helper for encoding stateids\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cb17e556f6202c200d38a2e0c05a5bd29060389f",
      "tree": "721c791ba3bbd1ab85ddf109f2050b903cf6a590",
      "parents": [
        "d0b496d2fc08cc51000fcdd9739235d1cab890cd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:45 2012 -0500"
      },
      "message": "NFSv4: Add a helper for encoding opaque data\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d0b496d2fc08cc51000fcdd9739235d1cab890cd",
      "tree": "ff7ac1293aad02f070a88ec7432f5099896d4aa3",
      "parents": [
        "36281caa839f4441c793c81d2e3cc5ea44ad5aa2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:45 2012 -0500"
      },
      "message": "NFSv4: Rename encode_stateid() to encode_open_stateid()\n\nThe current version of encode_stateid really only applies to open stateids.\nYou can\u0027t use it for locks, delegations or layouts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36281caa839f4441c793c81d2e3cc5ea44ad5aa2",
      "tree": "be5471741713d77681fcf1e161b0748343748977",
      "parents": [
        "8e663f0e5fabf57065aed1cfdaff5b13057dce23"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:44 2012 -0500"
      },
      "message": "NFSv4: Further clean-ups of delegation stateid validation\n\nChange the name to reflect what we\u0027re really doing: testing two\nstateids for whether or not they match according the the rules in\nRFC3530 and RFC5661.\nMove the code from callback_proc.c to nfs4proc.c\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8e663f0e5fabf57065aed1cfdaff5b13057dce23",
      "tree": "844f5568113fe1c43a6d4ac93e9dfd5452682e06",
      "parents": [
        "a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:44 2012 -0500"
      },
      "message": "NFSv4.1: Fix matching of the stateids when returning a delegation\n\nnfs41_validate_delegation_stateid is broken if we supply a stateid with\na non-zero sequence id. Instead of trying to match the sequence id,\nthe function assumes that we always want to error. While this is\ntrue for a delegation callback, it is not true in general.\n\nAlso fix a typo in nfs4_callback_recall.\n\nReported-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5",
      "tree": "80d13543ee4f1928e0436919a19de40be2a3b12b",
      "parents": [
        "fa68a1ba1de349f0d1fcc54171b95236efe24148"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 19:56:44 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:43 2012 -0500"
      },
      "message": "NFS: Properly handle the case where the delegation is revoked\n\nIf we know that the delegation stateid is bad or revoked, we need to\nremove that delegation as soon as possible, and then mark all the\nstateids that relied on that delegation for recovery. We cannot use\nthe delegation as part of the recovery process.\n\nAlso note that NFSv4.1 uses a different error code (NFS4ERR_DELEG_REVOKED)\nto indicate that the delegation was revoked.\n\nFinally, ensure that setlk() and setattr() can both recover safely from\na revoked delegation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "fa68a1ba1de349f0d1fcc54171b95236efe24148",
      "tree": "d7f1d06a8e041133fa1473b46b1eacd9f71d54d0",
      "parents": [
        "7e03b7cc0736eefe7471782c344112ad6eba951e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:14:35 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:43 2012 -0500"
      },
      "message": "NFS: Fix a typo in _nfs_display_fhandle\n\nThe check for \u0027fh \u003d\u003d NULL\u0027 needs to come _before_ we dereference\nfh.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7e03b7cc0736eefe7471782c344112ad6eba951e",
      "tree": "691426bfac629a9e463d543518e8223a5af4c7f0",
      "parents": [
        "91e56aaedd7ebceacde782a3921fadef4b5d0e1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:12:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 15:27:01 2012 -0500"
      },
      "message": "NFS: Fix a compile issue when !CONFIG_NFS_V4_1\n\nThe attempt to display the implementation ID needs to be conditional on\nwhether or not CONFIG_NFS_V4_1 is defined\n\nReported-by: Bryan Schumaker \u003cBryan.Schumaker@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "91e56aaedd7ebceacde782a3921fadef4b5d0e1c",
      "tree": "bab4aba01720a09f581c48ce3f77fa3c47863594",
      "parents": [
        "8aa0a410af8011d557877e558f9ff17c082c6840"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 05 14:58:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 15:26:47 2012 -0500"
      },
      "message": "NFS: Undo changes to idmap.h\n\nWhen compiled without NFS v4 configured these function won\u0027t be defined\nand the compiler will yell.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8aa0a410af8011d557877e558f9ff17c082c6840",
      "tree": "e347920bcaba78f6af0fecc626c1842f85aeeb83",
      "parents": [
        "54b50af089552bae368502e35dead67e81129b8d",
        "abe9a6d57b4544ac208401f9c0a4262814db2be4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 03 15:04:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 03 15:05:56 2012 -0500"
      },
      "message": "Merge commit \u0027nfs-for-3.3-4\u0027 into nfs-for-next\n\nConflicts:\n\tfs/nfs/nfs4proc.c\n\nBack-merge of the upstream kernel in order to fix a conflict with the\nslotid type conversion and implementation id patches...\n"
    },
    {
      "commit": "54b50af089552bae368502e35dead67e81129b8d",
      "tree": "8590bf9a496926cbd2e4678442650b1d4a1c6a1e",
      "parents": [
        "264e6351c59d22303582c45d79f0a5735f51d8d1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 02 16:58:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:10 2012 -0500"
      },
      "message": "NFS: Reduce debugging noise from encode_compound_hdr\n\nGet rid of\n\n  encode_compound: tag\u003d\n\nwhen XDR debugging is enabled.  The current Linux client never sets\ncompound tags.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "264e6351c59d22303582c45d79f0a5735f51d8d1",
      "tree": "e1e15aa257b54fc890d94eb4f874ab0606ac371c",
      "parents": [
        "81934ddb8eb62a85b8015c0f2b824a88510965a2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:02:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:10 2012 -0500"
      },
      "message": "NFS: Request fh_expire_type attribute in \"server caps\" operation\n\nThe fh_expire_type file attribute is a filesystem wide attribute that\nconsists of flags that indicate what characteristics file handles\non this FSID have.\n\nOur client doesn\u0027t support volatile file handles.  It should find\nout early (say, at mount time) whether the server is going to play\nshenanighans with file handles during a migration.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "81934ddb8eb62a85b8015c0f2b824a88510965a2",
      "tree": "db5988884f8a0309b488cba6623b1ed2c31af983",
      "parents": [
        "bb4dae5e5b5a92f0ffbcc6ac10c5e8afcd87934d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:09 2012 -0500"
      },
      "message": "NFS: Introduce NFS_ATTR_FATTR_V4_LOCATIONS\n\nThe Linux NFS client must distinguish between referral events (which\nit currently supports) and migration events (which it does not yet\nsupport).\n\nIn both types of events, an fs_locations array is returned.  But upper\nlayers, not the XDR layer, should make the distinction between a\nreferral and a migration.  There really isn\u0027t a way for an XDR decoder\nfunction to distinguish the two, in general.\n\nSlightly adjust the FATTR flags returned by decode_fs_locations()\nto set NFS_ATTR_FATTR_V4_LOCATIONS only if a non-empty locations\narray was returned from the server.  Then have logic in nfs4proc.c\ndistinguish whether the locations array is for a referral or\nsomething else.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bb4dae5e5b5a92f0ffbcc6ac10c5e8afcd87934d",
      "tree": "a6ad907fbee535fff2f9234d9ebfb850f1026337",
      "parents": [
        "20d27e929fb4790a339a4ddcc9a27f14db06055b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:48 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:09 2012 -0500"
      },
      "message": "NFS: Simplify arguments of encode_renew()\n\nClean up: pass just the clientid4 to encode_renew().  This enables it\nto be used by callers who might not have an full nfs_client.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20d27e929fb4790a339a4ddcc9a27f14db06055b",
      "tree": "e62d752180c2c7342d801f903c7f2ce2dd952075",
      "parents": [
        "31b8e2aec099f22d40277c424d8c24b2a4c95fce"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:31 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:08 2012 -0500"
      },
      "message": "NFS: Add a client-side function to display NFS file handles\n\nFor debugging, introduce a simplistic function to print NFS file\nhandles on the system console.  The main function is hooked into the\ndprintk debugging facility, but you can directly call the helper,\n_nfs_display_fhandle(), if you want to print a handle unconditionally.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31b8e2aec099f22d40277c424d8c24b2a4c95fce",
      "tree": "47092ef0ac344736a78afadd71e4808e4fe63dcc",
      "parents": [
        "2e738fdce22f9a7edf20281fd2d768ef9785922e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:04 2012 -0500"
      },
      "message": "NFS: Make clientaddr\u003d optional\n\nFor NFSv4 mounts, the clientaddr\u003d mount option has always been\nrequired.  Now we have rpc_localaddr() in the kernel, which was\nmodeled after the same logic in the mount.nfs command that constructs\nthe clientaddr\u003d mount option.  If user space doesn\u0027t provide a\nclientaddr\u003d mount option, the kernel can now construct its own.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e738fdce22f9a7edf20281fd2d768ef9785922e",
      "tree": "634895e561ad33ac4be20adaf610f420e0de5ace",
      "parents": [
        "4e0038b6b246e4145fc4a53dca61a556d17bc52c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:14 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:53 2012 -0500"
      },
      "message": "SUNRPC: Add API to acquire source address\n\nNFSv4.0 clients must send endpoint information for their callback\nservice to NFSv4.0 servers during their first contact with a server.\nTraditionally on Linux, user space provides the callback endpoint IP\naddress via the \"clientaddr\u003d\" mount option.\n\nDuring an NFSv4 migration event, it is possible that an FSID may be\nmigrated to a destination server that is accessible via a different\nsource IP address than the source server was.  The client must update\ncallback endpoint information on the destination server so that it can\nmaintain leases and allow delegation.\n\nWithout a new \"clientaddr\u003d\" option from user space, however, the\nkernel itself must construct an appropriate IP address for the\ncallback update.  Provide an API in the RPC client for upper layer\nRPC consumers to acquire a source address for a remote.\n\nThe mechanism used by the mount.nfs command is copied: set up a\nconnected UDP socket to the designated remote, then scrape the source\naddress off the socket.  We are careful to select the correct network\nnamespace when setting up the temporary UDP socket.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4e0038b6b246e4145fc4a53dca61a556d17bc52c",
      "tree": "67055f0c5dca7a4a24b062b1320675ad468d7b69",
      "parents": [
        "2446ab6070861aba2dd9229463ffbc40016a9f33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:01:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:41 2012 -0500"
      },
      "message": "SUNRPC: Move clnt-\u003ecl_server into struct rpc_xprt\n\nWhen the cl_xprt field is updated, the cl_server field will also have\nto change.  Since the contents of cl_server follow the remote endpoint\nof cl_xprt, just move that field to the rpc_xprt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: simplify check_gss_callback_principal(), whitespace changes ]\n[ cel: forward ported to 3.4 ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2446ab6070861aba2dd9229463ffbc40016a9f33",
      "tree": "2e366c3236788936b9f4f58c0787ae01c265f4a4",
      "parents": [
        "a3ca5651cb5eebe2e56e510bbf5cd60abc301c9f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:00:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:38 2012 -0500"
      },
      "message": "SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field\n\nA migration event will replace the rpc_xprt used by an rpc_clnt.  To\nensure this can be done safely, all references to cl_xprt must now use\na form of rcu_dereference().\n\nSpecial care is taken with rpc_peeraddr2str(), which returns a pointer\nto memory whose lifetime is the same as the rpc_xprt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: fix lockdep splats and layering violations ]\n[ cel: forward ported to 3.4 ]\n[ cel: remove rpc_max_reqs(), add rpc_net_ns() ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a3ca5651cb5eebe2e56e510bbf5cd60abc301c9f",
      "tree": "d4534407c920f07bad65b523ece54fe30ec3b41d",
      "parents": [
        "02a2976c9180a7dcc43bc46cf69bd3687a9d7ea6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:00:40 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:34 2012 -0500"
      },
      "message": "NFS: Add debugging messages to NFSv4\u0027s CLOSE procedure\n\nCLOSE is new with NFSv4.  Sometimes it\u0027s important to know the timing\nof this operation compared to things like lease renewal.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02a2976c9180a7dcc43bc46cf69bd3687a9d7ea6",
      "tree": "0cf276340b9a6013b33e54092f35ab9196c8f095",
      "parents": [
        "88b8e133c46792d264c991065c2c395d0b3b5482"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:00:31 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:26 2012 -0500"
      },
      "message": "NFS: Clean up debugging in decode_pathname()\n\nI noticed recently that decode_attr_fs_locations() is not generating\nvery pretty debugging output.  The pathname components each appear on\na separate line of output, though that does not appear to be the\nintended display behavior.  The preferred way to generate continued\nlines of output on the console is to use pr_cont().\n\nNote that incoming pathname4 components contain a string that is not\nnecessarily NUL-terminated.  I did actually see some trailing garbage\non the console.  In addition to correcting the line continuation\nproblem, add a string precision format specifier to ensure that each\ncomponent string is displayed properly, and that vsnprintf() does\nnot Oops.\n\nSomeone pointed out that allowing incoming network data to possibly\ngenerate a console line of unbounded length may not be such a good\nidea.  Since this output will rarely be enabled, and there is a hard\nupper bound (NFS4_PATHNAME_MAXCOMPONENTS) in our implementation, this\nis probably not a major concern.\n\nIt might be useful to additionally sanity-check the length of each\nincoming component, however.  RFC 3530bis15 does not suggest a maximum\nnumber of UTF-8 characters per component for either the pathname4 or\ncomponent4 types.  However, we could invent one that is appropriate\nfor our implementation.\n\nAnother possibility is to scrap all of this and print these pathnames\nin upper layers after a reasonable amount of sanity checking in the\nXDR layer.  This would give us an opportunity to allocate a full\nbuffer so that the whole pathname would be output via a single\ndprintk.\n\nIntroduced by commit 7aaa0b3b: \"NFSv4: convert fs-locations-components\nto conform to RFC3530,\" (June 9, 2006).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88b8e133c46792d264c991065c2c395d0b3b5482",
      "tree": "b1830fe3f798160a9bf430e19e9f6f7405d20717",
      "parents": [
        "3862279a5fcf44d0c68fa54a507a5bcd2ab4f0b7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:00:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:13 2012 -0500"
      },
      "message": "NFS: Make nfs_cache_array.size a signed integer\n\nEliminate a number of implicit type casts in comparisons, and these\ncompiler warnings:\n\nfs/nfs/dir.c: In function ‘nfs_readdir_clear_array’:\nfs/nfs/dir.c:264:16: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\nfs/nfs/dir.c: In function ‘nfs_readdir_search_for_cookie’:\nfs/nfs/dir.c:352:16: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\nfs/nfs/dir.c: In function ‘nfs_do_filldir’:\nfs/nfs/dir.c:769:38: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\nfs/nfs/dir.c:780:9: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3862279a5fcf44d0c68fa54a507a5bcd2ab4f0b7",
      "tree": "42f49fd908d7223c03b8594a8fe7a40f579b43e7",
      "parents": [
        "7bbceb6f2bdda67054bc66035a9543623e539126"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:06:39 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:06:39 2012 -0500"
      },
      "message": "NFS: Consolidate the parsing of the \u0027-ov4.x\u0027 and \u0027-overs\u003d4.x\u0027 mount options\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7bbceb6f2bdda67054bc66035a9543623e539126",
      "tree": "901a46726fcadbef13611926b699a6f5752a1397",
      "parents": [
        "0d71b058092fc98cfef8e8f6d913180a10a55397"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:00:20 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:00:20 2012 -0500"
      },
      "message": "NFS: Ensure we display the minor version correctly in /proc/mounts etc.\n\nThe \u0027minorversion\u0027 mount option is now deprecated, so we need to display\nthe minor version number in the \u0027vers\u003d\u0027 format.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0d71b058092fc98cfef8e8f6d913180a10a55397",
      "tree": "54dd66684853a75b86a19ad3eb9fa4c124468a08",
      "parents": [
        "7d2ed9ac22bc6bf0d34e8fd291a5295f373b384e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 13:59:49 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 13:59:49 2012 -0500"
      },
      "message": "NFS: Extend the -overs\u003d mount option to allow 4.x minorversions\n\nAllow the user to mount an NFSv4.0 or NFSv4.1 partition using a\nstandard syntax of \u0027-overs\u003d4.0\u0027, or \u0027-overs\u003d4.1\u0027 rather than the\nmore cumbersome \u0027-overs\u003d4,minorversion\u003d1\u0027.\n\nSee also the earlier patch by Dros Adamson, which added the\nLinux-specific syntax \u0027-ov4.0\u0027, \u0027-ov4.1\u0027.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d2ed9ac22bc6bf0d34e8fd291a5295f373b384e",
      "tree": "d6af20f85e68c075c6587afaa94f56fe001aae4b",
      "parents": [
        "9edbd953f8aeabf49b89c7c29ff9e31560775b27"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 15:20:26 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:22 2012 -0500"
      },
      "message": "NFSv4: parse and display server implementation ids\n\nShows the implementation ids in /proc/self/mountstats.  This doesn\u0027t break\nthe nfs-utils mountstats tool.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9edbd953f8aeabf49b89c7c29ff9e31560775b27",
      "tree": "aa33f44b9935c3b303d1448f89dae52ddc8705ea",
      "parents": [
        "db8ac8ba871ae7b97118cfb2913b4986867f09a7"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 15:20:25 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:21 2012 -0500"
      },
      "message": "NFSv4: fix server_scope memory leak\n\nserver_scope would never be freed if nfs4_check_cl_exchange_flags() returned\nnon-zero\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "db8ac8ba871ae7b97118cfb2913b4986867f09a7",
      "tree": "cae7a2bfb92ea435f356f767cb0f36a819cceace",
      "parents": [
        "57e62324e469e092ecc6c94a7a86fe4bd6ac5172"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 15:20:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:21 2012 -0500"
      },
      "message": "NFSv4: Send implementation id with exchange_id\n\nSend the nfs implementation id in EXCHANGE_ID requests unless the module\nparameter nfs.send_implementation_id is 0.\n\nThis adds a CONFIG variable for the nii_domain that defaults to \"kernel.org\".\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57e62324e469e092ecc6c94a7a86fe4bd6ac5172",
      "tree": "162a5ecd487bc842bc07cc8d4c14d4d1a337813d",
      "parents": [
        "59e6b9c11341e3b8ac5925427c903d4eae435bd8"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Feb 24 14:14:51 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:16 2012 -0500"
      },
      "message": "NFS: Store the legacy idmapper result in the keyring\n\nThis patch removes the old hashmap-based caching and instead uses a\n\"request key actor\" to place an upcall to the legacy idmapper rather\nthan going through /sbin/request-key.  This will only be used as a\nfallback if /etc/request-key.conf isn\u0027t configured to use nfsidmap.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "59e6b9c11341e3b8ac5925427c903d4eae435bd8",
      "tree": "68b39f847badedfca1476fbbf7ef6049a444f493",
      "parents": [
        "0cb3284b535bd5eacc287632b55150c8e5d9edc7"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Feb 24 14:14:50 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 16:50:31 2012 -0500"
      },
      "message": "Created a function for setting timeouts on keys\n\nThe keyctl_set_timeout function isn\u0027t exported to other parts of the\nkernel, but I want to use it for the NFS idmapper.  I already have the\nkey, but I wanted a generic way to set the timeout.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0cb3284b535bd5eacc287632b55150c8e5d9edc7",
      "tree": "ef1bdc9d47837a16ff306c9c6fcfa2659511dc4b",
      "parents": [
        "a59c30acfbe701dc991f4f84abce27818120a2ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:50 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:50 2012 -0500"
      },
      "message": "NFSv4.1: Get rid of NFS4CLNT_LAYOUTRECALL\n\nThe NFS4CLNT_LAYOUTRECALL bit is a long-term impediment to scalability. It\nbasically stops all other recalls by a given server once any layout recall\nis requested.\n\nIf the recall is for a different file, then we don\u0027t care.\nIf the recall applies to the same file, then we\u0027re in one of two situations:\nEither we are in the case of a replay of an existing request, in which case\nthe session is supposed to deal with matters, or we are dealing with a\ncompletely different request, in which case we should just try to process\nit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a59c30acfbe701dc991f4f84abce27818120a2ac",
      "tree": "675fd98cb09e3d8bf021af05396defb4d3b6d51c",
      "parents": [
        "591ad7feaec5417681b4112f8df52fc43bb7c92e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:47 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:47 2012 -0500"
      },
      "message": "NFSv4.1: Get rid of redundant NFS4CLNT_LAYOUTRECALL tests\n\nThe NFS4CLNT_LAYOUTRECALL tests in pnfs_layout_process and\npnfs_update_layout are redundant.\n\nIn the case of a bulk layout recall, we\u0027re always testing for\nthe NFS_LAYOUT_BULK_RECALL flay anyway.\nIn the case of a file or segment recall, the call to\npnfs_set_layout_stateid() updates the layout_header \u0027barrier\u0027\nsequence id, which triggers the test in pnfs_layoutgets_blocked()\nand is less race-prone than NFS4CLNT_LAYOUTRECALL anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "591ad7feaec5417681b4112f8df52fc43bb7c92e",
      "tree": "0555df9d98236f6a63ca109632a277c4458842e3",
      "parents": [
        "2c9030eef9dbd0d737a7f55646da70d217fd6255"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:54 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:37:48 2012 -0500"
      },
      "message": "SUNRPC: move waitq from RPC pipe to RPC inode\n\nCurrently, wait queue, used for polling of RPC pipe changes from user-space,\nis a part of RPC pipe. But the pipe data itself can be released on NFS umount\nprior to dentry-inode pair, connected to it (is case of this pair is open by\nsome process).\nThis is not a problem for almost all pipe users, because all PipeFS file\noperations checks pipe reference prior to using it.\nExcept evenfd. This thing registers itself with \"poll\" file operation and thus\nhas a reference to pipe wait queue. This leads to oopses on destroying eventfd\nafter NFS umount (like rpc_idmapd do) since not pipe data left to the point\nalready.\nThe solution is to wait queue from pipe data to internal RPC inode data. This\nlooks more logical, because this wiat queue used only for user-space processes,\nwhich already holds inode reference.\n\nNote: upcalls have to get pipe-\u003edentry prior to dereferecing wait queue to make\nsure, that mount point won\u0027t disappear from underneath us.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c9030eef9dbd0d737a7f55646da70d217fd6255",
      "tree": "69f1eafced52fef9d3939d8e1246d5063d14649a",
      "parents": [
        "e9dbca8d732e20b8d31a3094a8669c014e7ee262"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:45 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:37:09 2012 -0500"
      },
      "message": "SUNRPC: check RPC inode\u0027s pipe reference before dereferencing\n\nThere are 2 tightly bound objects: pipe data (created for kernel needs, has\nreference to dentry, which depends on PipeFS mount/umount) and PipeFS\ndentry/inode pair (created on mount for user-space needs). They both\nindependently may have or have not a valid reference to each other.\nThis means, that we have to make sure, that pipe-\u003edentry reference is valid on\nupcalls, and dentry-\u003epipe reference is valid on downcalls. The latter check is\nabsent - my fault.\nIOW, PipeFS dentry can be opened by some process (rpc.idmapd for example), but\nit\u0027s pipe data can belong to NFS mount, which was unmounted already and thus\npipe data was destroyed.\nTo fix this, pipe reference have to be set to NULL on rpc_unlink() and checked\non PipeFS file operations instead of pipe-\u003edentry check.\n\nNote: PipeFS \"poll\" file operation will be updated in next patch, because it\u0027s\nlogic is more complicated.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9dbca8d732e20b8d31a3094a8669c014e7ee262",
      "tree": "bb77ebab17bc03f7e534df359474685bc87ff09d",
      "parents": [
        "da3b462296e421e8f54b54b7d2706488661c36e2"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:37 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:36:35 2012 -0500"
      },
      "message": "NFS: release per-net clients lock before calling PipeFS dentries creation\n\nv3:\n1) Lookup for client is performed from the beginning of the list on each PipeFS\nevent handling operation.\n\nLockdep is sad otherwise, because inode mutex is taken on PipeFS dentry\ncreation, which can be called on mount notification, where this per-net client\nlock is taken on clients list walk.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "da3b462296e421e8f54b54b7d2706488661c36e2",
      "tree": "9e1330dc3ffafa9ae758949f03b592b12a46ed84",
      "parents": [
        "7df529af5fb4b4064f8cd62629e259ac79c0b4ca"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:29 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:36:16 2012 -0500"
      },
      "message": "SUNRPC: release per-net clients lock before calling PipeFS dentries creation\n\nv3:\n1) Lookup for client is performed from the beginning of the list on each PipeFS\nevent handling operation.\n\nLockdep is sad otherwise, because inode mutex is taken on PipeFS dentry\ncreation, which can be called on mount notification, where this per-net client\nlock is taken on clients list walk.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7df529af5fb4b4064f8cd62629e259ac79c0b4ca",
      "tree": "ca2995f28fb5c487926d88d6a9f2fb710667dca9",
      "parents": [
        "abd96698613eb27415e7028b6100be930920adc6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 26 17:34:22 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 26 17:34:22 2012 -0500"
      },
      "message": "NFSv4.1: Don\u0027t call nfs4_deviceid_purge_client() unless we\u0027re NFSv4.1\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "abd96698613eb27415e7028b6100be930920adc6",
      "tree": "8049bdcf2d4d9d699f26570424189261680f8a91",
      "parents": [
        "9937347a1ee6a67e450cc9e90750ce0b10abfe75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:46:49 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:46:49 2012 +0100"
      },
      "message": "NFS: Ensure struct nfs_client holds a reference to the net namespace\n\nOtherwise we have no guarantee that the net namespace won\u0027t just\ndisappear from underneath us once the task that created it\nis destroyed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "9937347a1ee6a67e450cc9e90750ce0b10abfe75",
      "tree": "051923a6fd655fb0dc0be0b90f7de117575a91a2",
      "parents": [
        "0a702195234eb77c4097148285cccf7f095de9cf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:44:07 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:44:07 2012 +0100"
      },
      "message": "NFS: Ensure that the nfs_client \u0027net\u0027 field is always set\n\nCurrently, the nfs_parsed_mount_data-\u003enet field is initialised in\nthe nfs_parse_mount_options() function, which means that it only\ngets set if we\u0027re using text based mounts. The legacy binary\nmount interface is therefore broken.\n\nFix is to initialise the -\u003enet field in nfs_alloc_parsed_mount_data.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "abe9a6d57b4544ac208401f9c0a4262814db2be4",
      "tree": "7fb4e9f48bcc6f9269ff59be77c7d9ad9c15ed2d",
      "parents": [
        "f86f36a6ae625eda87a13e1ea102a908e08f491b"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Feb 16 11:17:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 17:34:03 2012 -0500"
      },
      "message": "NFSv4: fix server_scope memory leak\n\nserver_scope would never be freed if nfs4_check_cl_exchange_flags() returned\nnon-zero\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f86f36a6ae625eda87a13e1ea102a908e08f491b",
      "tree": "4facbd3378390f4a571bbc169e197a3373f39159",
      "parents": [
        "b9f9a03150969e4bd9967c20bce67c4de769058f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 14 20:33:19 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 17:33:39 2012 -0500"
      },
      "message": "NFSv4.1: Fix a NFSv4.1 session initialisation regression\n\nCommit aacd553 (NFSv4.1: cleanup init and reset of session slot tables)\nintroduces a regression in the session initialisation code. New tables\nnow find their sequence ids initialised to 0, rather than the mandated\nvalue of 1 (see RFC5661).\n\nFix the problem by merging nfs4_reset_slot_table() and nfs4_init_slot_table().\nSince the tbl-\u003emax_slots is initialised to 0, the test in\nnfs4_reset_slot_table for max_reqs !\u003d tbl-\u003emax_slots will automatically\npass for an empty table.\n\nReported-by: Vitaliy Gusev \u003cgusev.vitaliy@nexenta.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0a702195234eb77c4097148285cccf7f095de9cf",
      "tree": "40fead6b131fb3c24e3cd85e39fbba8057196457",
      "parents": [
        "b6bf6e7d6f6fae1ddcae9e02dfe676bdc8fe892c"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 13:15:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 13:39:47 2012 -0500"
      },
      "message": "NFS: include filelayout DS rpc stats in mountstats\n\nInclude RPC statistics from all data servers in /proc/self/mountstats for pNFS\nfilelayout mounts.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6bf6e7d6f6fae1ddcae9e02dfe676bdc8fe892c",
      "tree": "cf7b9ee68592ef5fc145999405e70c6f537f56d3",
      "parents": [
        "d7c32675021bd750d8e0e726f2f81f746e8cab01"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Feb 17 13:05:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 13:38:03 2012 -0500"
      },
      "message": "NFSv4.1 set highest_used_slotid to NFS4_NO_SLOT\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d7c32675021bd750d8e0e726f2f81f746e8cab01",
      "tree": "873a67e2006ea589d44ca7d4c9514ece4f34a133",
      "parents": [
        "dbb9c2a22d32492544765e798386daa2d9da27d2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Feb 15 16:35:17 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 15:05:16 2012 -0500"
      },
      "message": "nfs: Clean up debugging in nfs_follow_mountpoint()\n\nClean up: Fix a debugging message which had an obsolete function name\nin it (nfs_follow_mountpoint).\n\nIntroduced by commit 36d43a43 \"NFS: Use d_automount() rather than\nabusing follow_link()\" (January 14, 2011)\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dbb9c2a22d32492544765e798386daa2d9da27d2",
      "tree": "997ad46ec944ec99fcb95f566825c3ea9506ff50",
      "parents": [
        "15a4520621824a3c2eb2de2d1f3984bc1663d3c8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Feb 15 16:35:08 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 14:55:30 2012 -0500"
      },
      "message": "SUNRPC: Use KERN_DEFAULT for debugging printk\u0027s\n\nOur dprintk() debugging facility doesn\u0027t specify any verbosity level\nfor it\u0027s printk() calls, but it should.\n\nThe default verbosity for printk\u0027s is KERN_DEFAULT.  You might argue\nthat these are debugging printk\u0027s and thus the verbosity should be\nKERN_DEBUG.  That would mean that to see NFS and SUNRPC debugging\noutput an admin would also have to boost the syslog verbosity, which\nwould be insufferably noisy.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15a4520621824a3c2eb2de2d1f3984bc1663d3c8",
      "tree": "0ff258cf98774c72793ece98f2605f3fe132e352",
      "parents": [
        "1d96e80faff57b9eefa283b35716a384bbb3d5b3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Feb 14 16:19:18 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 14:55:27 2012 -0500"
      },
      "message": "SUNRPC: add sending,pending queue and max slot to xprt stats\n\nWith static RPC slots, the xprt backlog queue stats were useful in showing\nwhen the transport (TCP) was starved by lack of RPC slots. The new dynamic\nRPC slot code, commit d9ba131d8f58c0d2ff5029e7002ab43f913b36f9, always\nprovides an RPC slot and so only uses the xprt backlog queue when the\ntcp_max_slot_table_entries value has been hit or when an allocation error\noccurs. All requests are now placed on the xprt sending or pending queue which\nneed to be monitored for debugging.\n\nThe max_slot stat shows the maximum number of dynamic RPC slots reached which is\nuseful when debugging performance issues.\n\nAdd the new fields at the end of the mountstats xprt stanza so that mountstats\noutputs the previous correct values and ignores the new fields. Bump\nNFS_IOSTATS_VERS.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1d96e80faff57b9eefa283b35716a384bbb3d5b3",
      "tree": "dbf7bcfa38be395d348c511a7d137d56d596e8cc",
      "parents": [
        "b4b9a0c1c89464dabafef974960f509ce33ae1c0"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Feb 16 17:42:12 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 14:00:48 2012 -0500"
      },
      "message": "SUNRPC: init per-net rpcbind spinlock\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4b9a0c1c89464dabafef974960f509ce33ae1c0",
      "tree": "54b90f1c3f403db513bebe3bf1e7fdddc202515e",
      "parents": [
        "571b7554016941ef0f0c3c61be72561e2bc55f5e"
      ],
      "author": {
        "name": "Vitaliy Gusev",
        "email": "gusev.vitaliy@gmail.com",
        "time": "Wed Feb 15 19:38:25 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 11:16:11 2012 -0500"
      },
      "message": "nfs41: Verify channel\u0027s attributes accordingly to RFC v2\n\n ca_maxoperations:\n\n      For the backchannel, the server MUST\n      NOT change the value the client offers.  For the fore channel,\n      the server MAY change the requested value.\n\n  ca_maxrequests:\n\n       For the backchannel, the server MUST NOT change the\n       value the client offers.  For the fore channel, the server MAY\n       change the requested value.\n\nSigned-off-by: Vitaliy Gusev \u003cgusev.vitaliy@nexenta.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "571b7554016941ef0f0c3c61be72561e2bc55f5e",
      "tree": "a8ad7cc44feb613af22775211d377606c737b575",
      "parents": [
        "2f09c24216cd789653eb8efbf8be88409eb8d581"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Wed Feb 01 14:06:41 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:52 2012 -0500"
      },
      "message": "NFS: dont allow minorversion\u003d opt when vers !\u003d 4\n\nDon\u0027t allow invalid \u0027vers\u0027 and \u0027minorversion\u0027 combinations in mount options,\nsuch as \"vers\u003d3,minorversion\u003d1\".\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f09c24216cd789653eb8efbf8be88409eb8d581",
      "tree": "8ad3049b8303e4537f03ce3c11abdad468cd0803",
      "parents": [
        "685f50f9188ac1e8244d0340a9d6ea36b6136cec"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 22:01:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "SUNRPC: Ensure that we can trace waitqueues when !defined(CONFIG_SYSCTL)\n\nThe tracepoint code relies on the queue-\u003ename being defined in order to\nbe able to display the name of the waitqueue on which an RPC task is\nsleeping.\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "685f50f9188ac1e8244d0340a9d6ea36b6136cec",
      "tree": "ddb20fcea10937841e1c2af8b2da961ca0848354",
      "parents": [
        "e3da87066f950076fe274b58f0d0adc7d9f9d412"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 13:39:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "NFSv4: Further reduce the footprint of the idmapper\n\nDon\u0027t allocate the legacy idmapper tables until we actually need\nthem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "e3da87066f950076fe274b58f0d0adc7d9f9d412",
      "tree": "871295188aaa75d9bb04355cd999b466a19a4770",
      "parents": [
        "d073e9b541e1ac3f52d72c3a153855d9a9ee3278"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 13:21:38 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "NFSv4: The idmapper now depends on keyring functionality\n\nAdd the appropriate \u0027select KEYS\u0027 to the NFSv4 Kconfig entry.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d073e9b541e1ac3f52d72c3a153855d9a9ee3278",
      "tree": "4719e9b10b9df0416523577d5008045198ad8633",
      "parents": [
        "7ced286e0ade171af89d32c22b1590e1ca480542"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 07 14:59:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:50 2012 -0500"
      },
      "message": "NFSv4: Reduce the footprint of the idmapper\n\nInstead of pre-allocating the storage for all the strings, we can\nsignificantly reduce the size of that table by doing the allocation\nwhen we do the downcall.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "7ced286e0ade171af89d32c22b1590e1ca480542",
      "tree": "efe18b23b9c65a01c3982afe738ee633ca3b723c",
      "parents": [
        "b6d1e83b4ea6cb369bdd490871f00651decdb509"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Feb 07 11:49:11 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:50 2012 -0500"
      },
      "message": "NFS: add mount options \u0027v4.0\u0027 and \u0027v4.1\u0027\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6d1e83b4ea6cb369bdd490871f00651decdb509",
      "tree": "ee69267a410d7373d935aa81e15335107a1f3436",
      "parents": [
        "4c03ae4a897b52e0e8fc38749606549eaa20d5b7"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Feb 07 19:53:19 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:49 2012 -0500"
      },
      "message": "NFS: fix nfs4_find_client_sessionid() arguments list\n\nIt\u0027s not compilable in case of CONFIG_NFS_V4_1 is not set.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c03ae4a897b52e0e8fc38749606549eaa20d5b7",
      "tree": "91d16026684c82e841f78cbc88e61d518eb701c4",
      "parents": [
        "3b64739fb928c34b13db6b5adcb0d3efb19e78be"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 07 00:05:11 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:49 2012 -0500"
      },
      "message": "NFS: Initialise the nfs_net-\u003enfs_client_lock\n\nEnsure that we initialise the nfs_net-\u003enfs_client_lock spinlock.\nAlso ensure that nfs_server_remove_lists() doesn\u0027t try to\ndereference server-\u003enfs_client before that is initialised.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "3b64739fb928c34b13db6b5adcb0d3efb19e78be",
      "tree": "d3a0e8293b2da6d816c47939675e00da22c576d9",
      "parents": [
        "0e1cb5c0aad1c37a4eee6db45f52c0b3869db2cc"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:29 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:48 2012 -0500"
      },
      "message": "Lockd: shutdown NLM hosts in network namespace context\n\nLockd now managed in network namespace context. And this patch introduces\nnetwork namespace related NLM hosts shutdown in case of releasing per-net Lockd\nresources.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0e1cb5c0aad1c37a4eee6db45f52c0b3869db2cc",
      "tree": "1b483f62c0e8f8b5a8d5054d928902ac2eac5471",
      "parents": [
        "66697bfd6aec0a9ca9331c1aa544ac20324a7561"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:21 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:48 2012 -0500"
      },
      "message": "LockD: make NSM network namespace aware\n\nNLM host is network namespace aware now.\nSo NSM have to take it into account.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "66697bfd6aec0a9ca9331c1aa544ac20324a7561",
      "tree": "f4e16eba25d9b757e256f96d0a1eca58b65a68cb",
      "parents": [
        "bb2224df5ffe4f864f5b696199b17db1ce77bc0a"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:13 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:48 2012 -0500"
      },
      "message": "LockD: make nlm hosts network namespace aware\n\nThis object depends on RPC client, and thus on network namespace.\nSo let\u0027s make it\u0027s allocation and lookup in network namespace context.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bb2224df5ffe4f864f5b696199b17db1ce77bc0a",
      "tree": "1aa476668966b94ea5f5e399ea15f3aede936f47",
      "parents": [
        "a9c5d73a8d8cb37601f8c39b35b9b4128e1a5254"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:05 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:47 2012 -0500"
      },
      "message": "Lockd: per-net up and down routines introduced\n\nThis patch introduces per-net Lockd initialization and destruction routines.\nThe logic is the same as in global Lockd up and down routines. Probably the\nsolution is not the best one. But at least it looks clear.\nSo per-net \"up\" routine are called only in case of lockd is running already. If\nper-net resources are not allocated yet, then service is being registered with\nlocal portmapper and lockd sockets created.\nPer-net \"down\" routine is called on every lockd_down() call in case of global\nusers counter is not zero.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a9c5d73a8d8cb37601f8c39b35b9b4128e1a5254",
      "tree": "0ae70dea76c0039e5fa0f62e12001c82a0d1647a",
      "parents": [
        "c228fa2038a33bb3b87f567482124f452e162a71"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:07:57 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:47 2012 -0500"
      },
      "message": "Lockd: pernet usage counter introduced\n\nLockd is going to be shared between network namespaces - i.e. going to be able\nto handle lock requests from different network namespaces. This means, that\nnetwork namespace related resources have to be allocated not once (like now),\nbut for every network namespace context, from which service is requested to\noperate.\nThis patch implements Lockd per-net users accounting. New per-net counter is\nused to determine, when per-net resources have to be freed.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c228fa2038a33bb3b87f567482124f452e162a71",
      "tree": "7d89404b7d9facf20487b782126ddfa5dfe14620",
      "parents": [
        "074d0f67cfe0af4927ce49560f403096b490c47f"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:07:48 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:46 2012 -0500"
      },
      "message": "Lockd: create permanent lockd sockets in current network namespace\n\nThis patch parametrizes Lockd permanent sockets creation routine by network\nnamespace context.\nIt also replaces hard-coded init_net with current network namespace context in\nLockd sockets creation routines.\nThis approach looks safe, because Lockd is created during NFS mount (or NFS\nserver start) and thus socket is required exactly in current network namespace\ncontext. But in the same time it means, that Lockd sockets inherits first Lockd\nrequester network namespace. This issue will be fixed in further patches of the\nseries.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "074d0f67cfe0af4927ce49560f403096b490c47f",
      "tree": "89e578ca4f35a1bddb6cc7c8547ed65744d7bb35",
      "parents": [
        "7b147f1ff267d12e0d189ca3d4156ed5a76b8d99"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:25 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:46 2012 -0500"
      },
      "message": "SUNRPC: service shutdown function in network namespace context introduced\n\nThis function is enough for releasing resources, allocated for network\nnamespace context, in case of sharing service between them.\nIOW, each service \"user\" (LockD, NFSd, etc), which wants to share service\nbetween network namespaces, have to release related resources by the function,\nintroduced in this patch, instead of performing service shutdown (of course in\ncase the service is shared already to the moment of release).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7b147f1ff267d12e0d189ca3d4156ed5a76b8d99",
      "tree": "651496e6e08521de934b2ad0953e2b81d3f5da2f",
      "parents": [
        "3a22bf506c9df47e93e8dc8a68d86cd8ae384d98"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:17 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:45 2012 -0500"
      },
      "message": "SUNRPC: service destruction in network namespace context\n\nv2: Added comment to BUG_ON\u0027s in svc_destroy() to make code looks clearer.\n\nThis patch introduces network namespace filter for service destruction\nfunction.\nNothing special here - just do exactly the same operations, but only for\ntranports in passed networks namespace context.\nBTW, BUG_ON() checks for empty service transports lists were returned into\nsvc_destroy() function. This is because of swithing generic svc_close_all() to\nnetworks namespace dependable svc_close_net().\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a22bf506c9df47e93e8dc8a68d86cd8ae384d98",
      "tree": "4dbbd631e3083969d265c8f2a0782c395882e09f",
      "parents": [
        "6f5133652eaab6fbd88bdb1b1fd2236fd82583cb"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:08 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:45 2012 -0500"
      },
      "message": "SUNRPC: clear svc transports lists helper introduced\n\nThis patch moves service transports deletion from service sockets lists to\nseparated function.\nThis is a precursor patch, which would be usefull with service shutdown in\nnetwork namespace context, introduced later in the series.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f5133652eaab6fbd88bdb1b1fd2236fd82583cb",
      "tree": "c1cd295993d8d8f4808bed47bada155d9189a2ed",
      "parents": [
        "ef159e9177cc5a09e6174796dde0b2d243ddf28b"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:00 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:44 2012 -0500"
      },
      "message": "SUNRPC: clear svc pools lists helper introduced\n\nThis patch moves removing of service transport from it\u0027s pools ready lists to\nseparated function. Also this clear is now done with list_for_each_entry_safe()\nhelper.\nThis is a precursor patch, which would be usefull with service shutdown in\nnetwork namespace context, introduced later in the series.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef159e9177cc5a09e6174796dde0b2d243ddf28b",
      "tree": "848dc5cc90b9090a1bfb00021cf3e3511569fdef",
      "parents": [
        "45d43c291e9a922d7b432b0dbcb1d8fb70d8410f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 19:50:40 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:44 2012 -0500"
      },
      "message": "NFSv4.1: Add a module parameter to set the number of session slots\n\nAdd the module parameter \u0027max_session_slots\u0027 to set the initial number\nof slots that the NFSv4.1 client will attempt to negotiate with the\nserver.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "45d43c291e9a922d7b432b0dbcb1d8fb70d8410f",
      "tree": "b7aeca1a66177b2b03c2bb96996d3d40cbbf7a9a",
      "parents": [
        "17347d03c008e2f504c33bb4905cdad0abc01319"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 19:38:51 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:43 2012 -0500"
      },
      "message": "NFSv4.1: Convert slotid from u8 to u32\n\nIt is perfectly legal to negotiate up to 2^32-1 slots in the protocol,\nand with 10GigE, we are already seeing that 255 slots is far too limiting.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9f9a03150969e4bd9967c20bce67c4de769058f",
      "tree": "0621ee547ab628d3bed40f32ccbfb60af5779d4b",
      "parents": [
        "331818f1c468a24e581aedcbe52af799366a9dfe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 09 15:31:36 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 09 15:59:21 2012 -0500"
      },
      "message": "NFSv4: Ensure we throw out bad delegation stateids on NFS4ERR_BAD_STATEID\n\nTo ensure that we don\u0027t just reuse the bad delegation when we attempt to\nrecover the nfs4_state that received the bad stateid error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "17347d03c008e2f504c33bb4905cdad0abc01319",
      "tree": "7b164ab1cdf1ca32833512f9fee03c84b75d4a23",
      "parents": [
        "33faaa380e9ec4b93503cae8c9969fb599f0f283"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:11:41 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:05 2012 -0500"
      },
      "message": "NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33faaa380e9ec4b93503cae8c9969fb599f0f283",
      "tree": "101b6a5994840c95be7df8eeaf42c748bbe2b987",
      "parents": [
        "b48e127884b117b429d3473577b9dc3f2b42b8eb"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:12:05 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:05 2012 -0500"
      },
      "message": "NFS: pass transport net to rpc_pton() while parse server name\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b48e127884b117b429d3473577b9dc3f2b42b8eb",
      "tree": "dcb056246ebad346e08c38806471a475edf6694e",
      "parents": [
        "c7add9a9720ff5be4715f7a0bb0d9578b2e8534e"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:11:57 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:04 2012 -0500"
      },
      "message": "NFS: pass current net to rpc_pton() while parsing mount options\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c7add9a9720ff5be4715f7a0bb0d9578b2e8534e",
      "tree": "9b87930052ffe27acbdb94ac294ea0f073847189",
      "parents": [
        "bc224f539dcce7805d4bfb68a92f0fe8bb102c22"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:11:49 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:04 2012 -0500"
      },
      "message": "NFS: search for client session id in proper network namespace\n\nNetwork namespace is taken from request transport and passed as a part of\ncb_process_state structure.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bc224f539dcce7805d4bfb68a92f0fe8bb102c22",
      "tree": "7d44e7b2348a29c48505057ac592efdc06562158",
      "parents": [
        "dc03085834a4530b2514708a643cd3fe38f35b21"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:11:33 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:04 2012 -0500"
      },
      "message": "NFS: pass proper net rpc_pton() in nfs_dns_resolve_name()\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc03085834a4530b2514708a643cd3fe38f35b21",
      "tree": "fa90ddfeb798295d42783a8a336b4cd905f7fed1",
      "parents": [
        "28cd1b3f262dba56b5e335ba668e342d530f6129"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:31 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:03 2012 -0500"
      },
      "message": "NFS: make nfs_client_lock per net ns\n\nThis patch makes nfs_clients_lock allocated per network namespace. All items it\nprotects are already network namespace aware.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "28cd1b3f262dba56b5e335ba668e342d530f6129",
      "tree": "7ae24e43fe054042800118edb266287125ba34f8",
      "parents": [
        "c25d32b26361ce0814fef2281f164866c18c8692"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:22 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:03 2012 -0500"
      },
      "message": "NFS: make cb_ident_idr per net ns\n\nThis patch makes ID\u0027s infrastructure network namespace aware. This was done\nmainly because of nfs_client_lock, which is desired to be per network\nnamespace, but protects NFS clients ID\u0027s.\n\nNOTE: NFS client\u0027s net pointer have to be set prior to ID initialization,\nproper assignment was moved.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c25d32b26361ce0814fef2281f164866c18c8692",
      "tree": "8429f6b0bc9deeab4a74792eb43e62d65dd57082",
      "parents": [
        "6b13168b36b6a7f603d962c232f1f2f325705832"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:14 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:02 2012 -0500"
      },
      "message": "NFS: make nfs_volume_list per net ns\n\nThis patch splits global list of NFS servers into per-net-ns array of lists.\nThis looks more strict and clearer.\nBTW, this patch also makes \"/proc/fs/nfsfs/volumes\" content depends on /proc\nmount owner pid namespace. See below for details.\n\nNOTE: few words about how was /proc/fs/nfsfs/ entries content show per network\nnamespace done. This is a little bit tricky and not the best is could be. But\nit\u0027s cheap (proper fix for /proc conteinerization is a hard nut to crack).\nThe idea is simple: take proper network namespace from pid namespace\nchild reaper nsproxy of /proc/ mount creator.\nThis actually means, that if there are 2 containers with different net\nnamespace sharing pid namespace, then read of /proc/fs/nfsfs/ entries will\nalways return content, taken from net namespace of pid namespace creator task\n(and thus second namespace set wil be unvisible).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b13168b36b6a7f603d962c232f1f2f325705832",
      "tree": "e524fb58428a8c128dcad8cf00cbd2692be9c6ad",
      "parents": [
        "a602bea3e7ccc5ce3da61d2c18245c4058983926"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:05 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:02 2012 -0500"
      },
      "message": "NFS: make nfs_client_list per net ns\n\nThis patch splits global list of NFS clients into per-net-ns array of lists.\nThis looks more strict and clearer.\nBTW, this patch also makes \"/proc/fs/nfsfs/servers\" entry content depends on\n/proc mount owner pid namespace. See below for details.\n\nNOTE: few words about how was /proc/fs/nfsfs/ entries content show per network\nnamespace done. This is a little bit tricky and not the best is could be. But\nit\u0027s cheap (proper fix for /proc conteinerization is a hard nut to crack).\nThe idea is simple: take proper network namespace from pid namespace\nchild reaper nsproxy of /proc/ mount creator.\nThis actually means, that if there are 2 containers with different net\nnamespace sharing pid namespace, then read of /proc/fs/nfsfs/ entries will\nalways return content, taken from net namespace of pid namespace creator task\n(and thus second namespace set wil be unvisible).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a602bea3e7ccc5ce3da61d2c18245c4058983926",
      "tree": "8a8ff57d6c86111df6713fe2c567c6888efd35aa",
      "parents": [
        "3cd0f37a2cc9e4d6188df10041a2441eaa41d991"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Jan 26 16:54:25 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:01 2012 -0500"
      },
      "message": "NFS: Update idmapper documentation\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3cd0f37a2cc9e4d6188df10041a2441eaa41d991",
      "tree": "e7e64e30500c5e2fef0df009d22ea90b11ea2fe5",
      "parents": [
        "e6499c6f4b5f56a16f8b8ef60529c1da28b13aea"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Jan 26 16:54:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:01 2012 -0500"
      },
      "message": "NFS: Keep idmapper include files in one place\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6499c6f4b5f56a16f8b8ef60529c1da28b13aea",
      "tree": "9212b8d42b0cb24e68c46509e3d924f2b9d30f41",
      "parents": [
        "2d3fe01c36a9b881fae89c5bdf4085a4d7d53ae1"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Jan 26 16:54:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:01 2012 -0500"
      },
      "message": "NFS: Fall back on old idmapper if request_key() fails\n\nThis patch removes the CONFIG_NFS_USE_NEW_IDMAPPER compile option.\nFirst, the idmapper will attempt to map the id using /sbin/request-key\nand nfsidmap.  If this fails (if /etc/request-key.conf is not configured\nproperly) then the idmapper will call the legacy code to perform the\nmapping.  I left a comment stating where the legacy code begins to make\nit easier for somebody to remove in the future.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d3fe01c36a9b881fae89c5bdf4085a4d7d53ae1",
      "tree": "96abc37a5977cec03f55c3575db054e4c08283c3",
      "parents": [
        "a030889a01d1bea921e1a7501010b7b891d2abd2"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 03 15:45:40 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:00 2012 -0500"
      },
      "message": "NFS: Fix comparison between DS address lists\n\ndata_server_cache entries should only be treated as the same if the address\nlist hasn\u0027t changed.\n\nA new entry will be made when an MDS changes an address list (as seen by\nGETDEVINFO). The old entry will be freed once all references are gone.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "a030889a01d1bea921e1a7501010b7b891d2abd2"
}
