)]}'
{
  "log": [
    {
      "commit": "53f2c4a8fd882009a2a75c5b72d6898c0808616e",
      "tree": "922293a1056c0c2358203cdab832f0e0891e628a",
      "parents": [
        "8f6576ad476b2a22d05ddafd2ddaee102577a4ed",
        "cc0a98436820b161b595b8cc1d2329bcf7328107"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 10:43:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 10:43:51 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.5-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"New features include:\n   - Rewrite the O_DIRECT code so that it can share the same coalescing\n     and pNFS functionality as the page cache code.\n   - Allow the server to provide hints as to when we should use pNFS,\n     and when it is more efficient to read and write through the\n     metadata server.\n   - NFS cache consistency updates:\n     * Use the ctime to emulate a change attribute for NFSv2/v3 so that\n       all NFS versions can share the same cache management code.\n     * New cache management code will only look at the change attribute\n       and size attribute when deciding whether or not our cached data\n       is still valid or not.\n     * Don\u0027t request NFSv4 post-op attributes on writes in cases such as\n       O_DIRECT, where we don\u0027t care about data cache consistency, or\n       when we have a write delegation, and know that our cache is still\n       consistent.\n     * Don\u0027t request NFSv4 post-op attributes on operations such as\n       COMMIT, where there are no expected metadata updates.\n     * Don\u0027t request NFSv4 directory post-op attributes in cases where\n       the operations themselves already return change attribute\n       updates: i.e. operations such as OPEN, CREATE, REMOVE, LINK and\n       RENAME.\n   - Speed up \u0027ls\u0027 and friends by using READDIR rather than READDIRPLUS\n     if we detect no attempts to lookup filenames.\n   - Improve the code sharing between NFSv2/v3 and v4 mounts\n   - NFSv4.1 state management efficiency improvements\n   - More patches in preparation for NFSv4/v4.1 migration functionality.\"\n\nFix trivial conflict in fs/nfs/nfs4proc.c that was due to the dcache\nqstr name initialization changes (that made the length/hash a 64-bit\nunion)\n\n* tag \u0027nfs-for-3.5-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (146 commits)\n  NFSv4: Add debugging printks to state manager\n  NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO\n  NFSv4: update_changeattr does not need to set NFS_INO_REVAL_PAGECACHE\n  NFSv4.1: nfs4_reset_session should use nfs4_handle_reclaim_lease_error\n  NFSv4.1: Handle other occurrences of NFS4ERR_CONN_NOT_BOUND_TO_SESSION\n  NFSv4.1: Handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION in the state manager\n  NFSv4.1: Handle errors in nfs4_bind_conn_to_session\n  NFSv4.1: nfs4_bind_conn_to_session should drain the session\n  NFSv4.1: Don\u0027t clobber the seqid if exchange_id returns a confirmed clientid\n  NFSv4.1: Add DESTROY_CLIENTID\n  NFSv4.1: Ensure we use the correct credentials for bind_conn_to_session\n  NFSv4.1: Ensure we use the correct credentials for session create/destroy\n  NFSv4.1: Move NFSPROC4_CLNT_BIND_CONN_TO_SESSION to the end of the operations\n  NFSv4.1: Handle NFS4ERR_SEQ_MISORDERED when confirming the lease\n  NFSv4: When purging the lease, we must clear NFS4CLNT_LEASE_CONFIRM\n  NFSv4: Clean up the error handling for nfs4_reclaim_lease\n  NFSv4.1: Exchange ID must use GFP_NOFS allocation mode\n  nfs41: Use BIND_CONN_TO_SESSION for CB_PATH_DOWN*\n  nfs4.1: add BIND_CONN_TO_SESSION operation\n  NFSv4.1 test the mdsthreshold hint parameters\n  ...\n"
    },
    {
      "commit": "fb13bfa7e1bcfdcfdece47c24b62f1a1cad957e9",
      "tree": "e4df7a2bb6737e6e725c7b333e824a9edf77a98f",
      "parents": [
        "359d7d1c976851c658aa7085761015812ed3b56f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 28 11:36:28 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 28 17:21:48 2012 -0400"
      },
      "message": "NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO\n\nIf a file OPEN is denied due to a share lock, the resulting\nNFS4ERR_SHARE_DENIED is currently mapped to the default EIO.\nThis patch adds a more appropriate mapping, and brings Linux\ninto line with what Solaris 10 does.\n\nSee https://bugzilla.kernel.org/show_bug.cgi?id\u003d43286\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "359d7d1c976851c658aa7085761015812ed3b56f",
      "tree": "64e97174554638a9929850e6eaccfd23bf11cf11",
      "parents": [
        "f2c1b5100db340441963649fabb4e43e2a65df77"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 28 10:01:34 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 28 10:05:47 2012 -0400"
      },
      "message": "NFSv4: update_changeattr does not need to set NFS_INO_REVAL_PAGECACHE\n\nWe\u0027re already invalidating the data cache, and setting the new change\nattribute. Since directories don\u0027t care about the i_size field, there\nis no need to be forcing any extra revalidation of the page cache.\n\nWe do keep the NFS_INO_INVALID_ATTR flag, in order to force an\nattribute cache revalidation on stat() calls since we do not\nupdate the mtime and ctime fields.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f594791dd530c2dc06953fb32505a26cc28371f",
      "tree": "3e981af095a51a354bb1c1d281136e1889a125c9",
      "parents": [
        "7c5d7256845e30d295de4d72d4c52943bff7d1ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 27 13:02:53 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 27 14:33:07 2012 -0400"
      },
      "message": "NFSv4.1: Handle other occurrences of NFS4ERR_CONN_NOT_BOUND_TO_SESSION\n\nLet nfs4_schedule_session_recovery() handle the details of choosing\nbetween resetting the session, and other session related recovery.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "32b0131069c5bebf52368a9fe170f8d58b78fa8d",
      "tree": "540451b739e9938b2f15682a0bab117852bc8e4e",
      "parents": [
        "662455391040a783b89d0232e743c27c23617dbd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 26 13:41:04 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 26 14:17:31 2012 -0400"
      },
      "message": "NFSv4.1: Don\u0027t clobber the seqid if exchange_id returns a confirmed clientid\n\nIf the EXCHGID4_FLAG_CONFIRMED_R flag is set, the client is in theory\nsupposed to already know the correct value of the seqid, in which case\nRFC5661 states that it should ignore the value returned.\n\nAlso ensure that if the sanity check in nfs4_check_cl_exchange_flags\nfails, then we must not change the nfs_client fields.\n\nFinally, clean up the code: we don\u0027t need to retest the value of\n\u0027status\u0027 unless it can change.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "662455391040a783b89d0232e743c27c23617dbd",
      "tree": "aa1819778ac5005932edcbd844c54e6cab0dc4e5",
      "parents": [
        "2cf047c994c8a62f65e520342d0287fca8807a53"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 17:18:09 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 26 14:17:30 2012 -0400"
      },
      "message": "NFSv4.1: Add DESTROY_CLIENTID\n\nEnsure that we destroy our lease on last unmount\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2cf047c994c8a62f65e520342d0287fca8807a53",
      "tree": "ecc1b7c364bc6090201072d6975720febd455e2c",
      "parents": [
        "848f5bda54ef19435ff78f124082bf6eff2ab620"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 17:57:41 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 18:02:10 2012 -0400"
      },
      "message": "NFSv4.1: Ensure we use the correct credentials for bind_conn_to_session\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Weston Andros Adamson \u003cdros@netapp.com\u003e\n"
    },
    {
      "commit": "848f5bda54ef19435ff78f124082bf6eff2ab620",
      "tree": "06b86b2725e1c1c309067cb7c3bd7b16058662e9",
      "parents": [
        "ad24ecfbcddfa88541bccc980e753aeda8bf4031"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 17:51:23 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 18:02:09 2012 -0400"
      },
      "message": "NFSv4.1: Ensure we use the correct credentials for session create/destroy\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bbafffd293e47f4cd5f0ae8b91d7d5767b242a5e",
      "tree": "54e52fb857211914d7de2b3fe2292929bf41b9d1",
      "parents": [
        "a9e64442f1399e9f6ceaeeeb03a26a560c949fac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:31:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:31:39 2012 -0400"
      },
      "message": "NFSv4.1: Exchange ID must use GFP_NOFS allocation mode\n\nExchange ID can be called in a lease reclaim situation, so it\nwill deadlock if it then tries to write out dirty NFS pages.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c44f1ae4a21458a1ea3d6482ffb3136f1df6d2b",
      "tree": "a66f9b3fb7a5252a87dbcee40562a1e8ed47dc9b",
      "parents": [
        "d23d61c8d351f5ced44ce87caf1fa3baab4c3f89"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu May 24 13:22:50 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:22:19 2012 -0400"
      },
      "message": "nfs4.1: add BIND_CONN_TO_SESSION operation\n\nThis patch adds the BIND_CONN_TO_SESSION operation which is needed for\nupcoming SP4_MACH_CRED work and useful for recovering from broken connections\nwithout destroying the session.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82be417aa37c05116e310b0f2171187ea389f89b",
      "tree": "901d8fc702d6aef425c4b17cdf62e4fdd8c81833",
      "parents": [
        "88034c3d88c2c48b215f2cc5eb22e564aa817f9c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed May 23 05:02:35 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:15:48 2012 -0400"
      },
      "message": "NFSv4.1 cache mdsthreshold values on OPEN\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "54ac471c83aff6b1e068eb8029c797dc68a76e89",
      "tree": "3311a74fc6f5cdbedbe4e1da9bbbbaf6671050a2",
      "parents": [
        "4697bd5e9419348ef9fa9b55cefe4355ad9d3d01"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 23 13:26:10 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 23 15:24:59 2012 -0400"
      },
      "message": "NFS: Add memory barriers to the nfs_client-\u003ecl_cons_state initialisation\n\nEnsure that a process that uses the nfs_client-\u003ecl_cons_state test\nfor whether the initialisation process is finished does not read\nstale data.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7b38c3682c5cab4f98751d5fe57b78a59020653d",
      "tree": "c6c2ea72b99b59b60a3c7ba3d142a4926664398e",
      "parents": [
        "acdeb69d9c5934a678a732b4e24770326bf9471e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 23 13:23:31 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 23 15:20:57 2012 -0400"
      },
      "message": "NFSv4.1: Fix session initialisation races\n\nSession initialisation is not complete until the lease manager\nhas run. We need to ensure that both nfs4_init_session and\nnfs4_init_ds_session do so, and that they check for any resulting\nerrors in clp-\u003ecl_cons_state.\n\nOnly after this is done, can nfs4_ds_connect check the contents\nof clp-\u003ecl_exchange_flags.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Andy Adamson \u003candros@netapp.com\u003e\n"
    },
    {
      "commit": "acdeb69d9c5934a678a732b4e24770326bf9471e",
      "tree": "818b6b385ecddc5bf2c7da2641ec55704b940b3b",
      "parents": [
        "4bf590e08f6db3395c181618a4c14f1c39b7c4af"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:46:16 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:48 2012 -0400"
      },
      "message": "NFS: EXCHANGE_ID should save the server major and minor ID\n\nSave the server major and minor ID results from EXCHANGE_ID, as they\nare needed for detecting server trunking.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f092075dd33ea04000590e8ffea65c2e7d03d764",
      "tree": "626ce6b85084d50e9d2d81e32850e494eadbc8cb",
      "parents": [
        "2c820d9a97f07b273b2c8a5960bd52b1b5864c68"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:45:41 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:46 2012 -0400"
      },
      "message": "NFS: Always use the same SETCLIENTID boot verifier\n\nCurrently our NFS client assigns a unique SETCLIENTID boot verifier\nfor each server IP address it knows about.  It\u0027s set to CURRENT_TIME\nwhen the struct nfs_client for that server IP is created.\n\nDuring the SETCLIENTID operation, our client also presents an\nnfs_client_id4 string to servers, as an identifier on which the server\ncan hang all of this client\u0027s NFSv4 state.  Our client\u0027s\nnfs_client_id4 string is unique for each server IP address.\n\nAn NFSv4 server is obligated to wipe all NFSv4 state associated with\nan nfs_client_id4 string when the client presents the same\nnfs_client_id4 string along with a changed SETCLIENTID boot verifier.\n\nWhen our client unmounts the last of a server\u0027s shares, it destroys\nthat server\u0027s struct nfs_client.  The next time the client mounts that\nNFS server, it creates a fresh struct nfs_client with a fresh boot\nverifier.  On seeing the fresh verifer, the server wipes any previous\nNFSv4 state associated with that nfs_client_id4.\n\nHowever, NFSv4.1 clients are supposed to present the same\nnfs_client_id4 string to all servers.  And, to support Transparent\nState Migration, the same nfs_client_id4 string should be presented\nto all NFSv4.0 servers so they recognize that migrated state for this\nclient belongs with state a server may already have for this client.\n(This is known as the Uniform Client String model).\n\nIf the nfs_client_id4 string is the same but the boot verifier changes\nfor each server IP address, SETCLIENTID and EXCHANGE_ID operations\nfrom such a client could unintentionally result in a server wiping a\nclient\u0027s previously obtained lease.\n\nThus, if our NFS client is going to use a fixed nfs_client_id4 string,\neither for NFSv4.0 or NFSv4.1 mounts, our NFS client should use a\nboot verifier that does not change depending on server IP address.\nReplace our current per-nfs_client boot verifier with a per-nfs_net\nboot verifier.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c820d9a97f07b273b2c8a5960bd52b1b5864c68",
      "tree": "5dfdd518744f4987775e8ad531029239efda4b05",
      "parents": [
        "ce1c8fc12d99386737953dfeb7b531dfa3d18e5e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:45:33 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:45 2012 -0400"
      },
      "message": "NFS: Force server to drop NFSv4 state\n\nnfs4_reset_all_state() refreshes the boot verifier a server sees to\ntrigger that server to wipe this client\u0027s state.  This function is\ninvoked when an NFSv4.1 server reports that it has revoked some or\nall of a client\u0027s NFSv4 state.\n\nTo facilitate server trunking discovery, we will eventually want to\nmove the cl_boot_time field to a more global structure.  The Uniform\nClient String model (and specifically, server trunking detection)\nrequires that all servers see the same boot verifier until the client\nactually does reboot, and not a fresh verifier every time the client\nunmounts and remounts the server.\n\nWithout the cl_boot_time field, however, nfs4_reset_all_state() will\nhave to find some other way to force the server to purge the client\u0027s\nNFSv4 state.\n\nBecause these verifiers are opaque (ie, the server doesn\u0027t know or\ncare that they happen to be timestamps), we can force the server\nto wipe NFSv4 state by updating the boot verifier as we do now, then\nimmediately afterwards establish a fresh client ID using the old boot\nverifier again.\n\nHopefully there are no extra paranoid server implementations that keep\ntrack of the client\u0027s boot verifiers and prevent clients from reusing\na previous one.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "177313f1498dd66b551dccadc98331b3fc3b09a4",
      "tree": "203c83e35cbda914ae74b1ad794365f3fc65a113",
      "parents": [
        "73ea666c2bb536f2862cefdb3e014ed62b262ba5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:44:58 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:44 2012 -0400"
      },
      "message": "NFS: Clean up return code checking in nfs4_proc_exchange_id()\n\nClean up: update to use matching types in \"if\" expressions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "591555465ec513c42416392d392fd56866cb220c",
      "tree": "8b7ce3d4fe39e31e48e3e7a1a604675395607888",
      "parents": [
        "79d4e1f0d8910f0214a57832ca6d589640d572c0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:44:41 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:43 2012 -0400"
      },
      "message": "NFS: Use proper naming conventions for nfs_client.impl_id field\n\nClean up:  When naming fields and data types, follow established\nconventions to facilitate accurate grep/cscope searches.\n\nAdditionally, for consistency, move the impl_id field into the NFSv4-\nspecific part of the nfs_client, and free that memory in the logic\nthat shuts down NFSv4 nfs_clients.\n\nIntroduced by commit 7d2ed9ac \"NFSv4: parse and display server\nimplementation ids,\" Fri Feb 17, 2012.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "79d4e1f0d8910f0214a57832ca6d589640d572c0",
      "tree": "c32a4ff22864b554061b0ea6f81667f9f4ef14cf",
      "parents": [
        "722baafc9e638714a69aa66e9ed24ef961ff350c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:44:31 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:43 2012 -0400"
      },
      "message": "NFS: Use proper naming conventions for NFSv4.1 server scope fields\n\nClean up:  When naming fields and data types, follow established\nconventions to facilitate accurate grep/cscope searches.\n\nAdditionally, for consistency, move the scope field into the NFSv4-\nspecific part of the nfs_client, and free that memory in the logic\nthat shuts down NFSv4 nfs_clients.\n\nIntroduced by commit 99fe60d0 \"nfs41: exchange_id operation\", April\n1 2009.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c3607282b4d8787a530eb4a9a452b4e823508b9f",
      "tree": "edf90820e54b5f9ff18e120d07bd1c5e471f05d6",
      "parents": [
        "497826af60f812240ed5b6ba80541f7c9f2154d9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:45:16 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:42 2012 -0400"
      },
      "message": "NFS: Don\u0027t swap bytes in nfs4_construct_boot_verifier()\n\nThe SETCLIENTID boot verifier is opaque to NFSv4 servers, thus there\nis no requirement for byte swapping before the client puts the\nverifier on the wire.\n\nThis treatment is similar to other timestamp-based verifiers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b3f87b98aa3dc22cc58f970140113b270015cddb",
      "tree": "c4aec5996567ad96310f61e9244e799f41bf2625",
      "parents": [
        "041245c88a29273788e8eff1353bc6e1f56c61df",
        "1afeaf5c29aa07db25760d2fbed5c08a3aec3498"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 21 10:12:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 21 10:12:39 2012 -0400"
      },
      "message": "Merge branch \u0027bugfixes\u0027 into nfs-for-next\n"
    },
    {
      "commit": "a033a09189c0125d56f2ac17ffb4bec5a3d3323b",
      "tree": "a224455528e9dc35da8649ad9c88c2b8ffa4a280",
      "parents": [
        "e7dd79af01e7ca932c5168a708e77750659f7a9e"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 27 17:53:47 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 19 17:54:59 2012 -0400"
      },
      "message": "NFSv4.1 remove nfs4_reset_write and nfs4_reset_read\n\nReplaced by filelayout_reset_write and filelayout_reset_read\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bae36241be7fab16b2e987d31b6e6bd4456ac188",
      "tree": "a6964de8b14917a2a0b9326d7ad84860f2f0fd8d",
      "parents": [
        "3028eb2b324c517da1e9e589743c4a5154f70dd1"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu May 10 15:07:31 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:30:26 2012 -0700"
      },
      "message": "NFS: Create a single nfs_get_root()\n\nThis patch splits out the NFS v4 specific functionality of\nnfs4_get_root() into its own rpc_op called by the generic client, and\nleaves nfs4_proc_get_rootfh() as its own stand alone function.  This\nalso allows me to change nfs4_remote_mount(), nfs4_xdev_mount() and\nnfs4_remote_referral_mount() to use the generic client\u0027s nfs_get_root()\nfunction.  Later patches in this series will collapse these functions\ninto one common function, so using the same get_root() function\neverywhere simplifies future changes.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3028eb2b324c517da1e9e589743c4a5154f70dd1",
      "tree": "9f2f13e0bea581bac9f68a8f516a3018e3d78e15",
      "parents": [
        "0427708657750bdc03af3491a0297cab5e7efabf"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu May 10 15:07:30 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:30:25 2012 -0700"
      },
      "message": "NFS: Rename nfs4_proc_get_root()\n\nThis function is really getting the root filehandle and not the root\ndentry of the filesystem.  I also removed the rpc_ops lookup from\nnfs4_get_rootfh() under the assumption that if we reach this function\nthen we already know we are using NFS v4.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "26fe575028703948880fce4355a210c76bb0536e",
      "tree": "0a7d04289e1eb1f1739659ebc9498d40f2add5da",
      "parents": [
        "ee983e89670704b2a05e897b161f2674a42d1508"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 13:14:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 19:54:35 2012 -0700"
      },
      "message": "vfs: make it possible to access the dentry hash/len as one 64-bit entry\n\nThis allows comparing hash and len in one operation on 64-bit\narchitectures.  Right now only __d_lookup_rcu() takes advantage of this,\nsince that is the case we care most about.\n\nThe use of anonymous struct/unions hides the alternate 64-bit approach\nfrom most users, the exception being a few cases where we initialize a\n\u0027struct qstr\u0027 with a static initializer.  This makes the problematic\ncases use a new QSTR_INIT() helper function for that (but initializing\njust the name pointer with a \"{ .name \u003d xyzzy }\" initializer remains\nvalid, as does just copying another qstr structure).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8582715e733d08bc98fe629db0601360d70de4dc",
      "tree": "dbdbe5b56dce73beffadc5178a0fe80165146028",
      "parents": [
        "5a37f85131c526ed7a3991d4dc2845498f81c1de"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 29 10:44:42 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:45 2012 -0400"
      },
      "message": "NFSv4: COMMIT does not need post-op attributes\n\nNo attributes are supposed to change during a COMMIT call, so there\nis no need to request post-op attributes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5a37f85131c526ed7a3991d4dc2845498f81c1de",
      "tree": "47163949a691aa8353f41539003f7371f232e22c",
      "parents": [
        "778d28172f710184855bcfeadcdd6b46997c4de2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 28 14:55:16 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:45 2012 -0400"
      },
      "message": "NFSv4: Don\u0027t request cache consistency attributes on some writes\n\nWe don\u0027t need cache consistency information when we\u0027re doing O_DIRECT\nwrites. Ditto for the case of delegated writes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "778d28172f710184855bcfeadcdd6b46997c4de2",
      "tree": "d7aaf6c46d3e408f129a6e514d5684c56d860f9d",
      "parents": [
        "7c317fcfbae773e493ecee1c53738db774b1d0ca"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 13:48:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:44 2012 -0400"
      },
      "message": "NFSv4: Simplify the NFSv4 REMOVE, LINK and RENAME compounds\n\nGet rid of the post-op GETATTR on the directory in order to reduce\nthe amount of processing done on the server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c317fcfbae773e493ecee1c53738db774b1d0ca",
      "tree": "0d592d0244e1ef1ef59047574aceaebe17913e2e",
      "parents": [
        "90ff0c548d1220d31f80e498b587393895705e6c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 13:48:18 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:44 2012 -0400"
      },
      "message": "NFSv4: Simplify the NFSv4 CREATE compound\n\nGet rid of the post-op GETATTR on the directory in order to reduce\nthe amount of processing done on the server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90ff0c548d1220d31f80e498b587393895705e6c",
      "tree": "cb3b1f54071764034304c4c35440ca12235e4b20",
      "parents": [
        "fee7fe196c41847c135cde41b0ec790f53ee6fcf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 13:48:18 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:43 2012 -0400"
      },
      "message": "NFSv4: Simplify the NFSv4 OPEN compound\n\nGet rid of the post-op GETATTR on the directory in order to reduce\nthe amount of processing done on the server.\n\nThe cost is that if we later need to stat() the directory, then we\nknow that the ctime and mtime are likely to be invalid.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e144cbcc251f16c1a14b9256cda73ab4aebe933a",
      "tree": "4ca37ff9816b9b38277a881429176b804422fe21",
      "parents": [
        "9e907fec6ef7705ba07e22f034dacf102d29a538"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 28 16:05:03 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:40 2012 -0400"
      },
      "message": "NFSv4: Retrieve attributes _before_ calling delegreturn\n\nIn order to retrieve cache consistency attributes before\nanyone else has a chance to change the inode, we need to\nput the GETATTR op _before_ the DELEGRETURN op.\n\nWe can then use that as part of a \u0027nfs_post_op_update_inode_force_wcc()\u0027\ncall, to ensure that we update the attributes without clearing our\ncached data.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e907fec6ef7705ba07e22f034dacf102d29a538",
      "tree": "c0152c28061bd712faec9320bb9da4e0e72d9411",
      "parents": [
        "a9f6991b6cd3f55aa8482633337cd811d84d0dd8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 13:48:17 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:40 2012 -0400"
      },
      "message": "NFSv4: Delegreturn only needs the cache consistency bitmask\n\nIn order to do close-to-open cache consistency checking after\na delegreturn, we don\u0027t need to retrieve the full set of\nattributes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3617e5031b3acec04efaa36566a8111ac8f07325",
      "tree": "20fac2901263ee8602e2c211dd971705c58974f5",
      "parents": [
        "cbbb34498f8b2b26cbdc79532c8a2ee5cd1e756a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 12:04:58 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 12:04:58 2012 -0400"
      },
      "message": "NFSv4.1: Use the correct hostname in the client identifier string\n\nWe need to use the hostname of the process that created the nfs_client.\nThat hostname is now stored in the rpc_client-\u003ecl_nodename.\n\nAlso remove the utsname()-\u003edomainname component. There is no reason\nto include the NIS/YP domainname in a client identifier string.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "80a16b21a81eb639f0b726549f4c46c0e9aff92e",
      "tree": "5095cb05498d16e64976b03c38b3fcdaa83e4ecb",
      "parents": [
        "281cad46b34db4dbb1d1e603f7b9cfe25d1ae7c9"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:46 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:39 2012 -0400"
      },
      "message": "NFS: Remove extra rpc_clnt argument to proc_lookup\n\nNow that I\u0027m doing secinfo automatically in the v4 code this extra\nargument isn\u0027t needed.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "281cad46b34db4dbb1d1e603f7b9cfe25d1ae7c9",
      "tree": "f13917030755776a4f80ffcc0d07c2b5da60066d",
      "parents": [
        "2671bfc3beb44e70636bd0208274426db57f73b5"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:45 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:39 2012 -0400"
      },
      "message": "NFS: Create a submount rpc_op\n\nThis simplifies the code for v2 and v3 and gives v4 a chance to decide\non referrals without needing to modify the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2671bfc3beb44e70636bd0208274426db57f73b5",
      "tree": "5aeec6224c390a046bfa5758a958174ebf542772",
      "parents": [
        "df0117481cd94dbb8970f4be9d05b0568fa09ab1"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:44 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:39 2012 -0400"
      },
      "message": "NFS: Remove secinfo knowledge out of the generic client\n\nAnd also remove the unneeded rpc_op.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6c75dc0d498caa402fb17b1bf769835a9db875c8",
      "tree": "b367bb2428c011f20b8fd47a6dd0b8603ee136ba",
      "parents": [
        "4db6e0b74c0f6dfc2f9c0690e8df512e3b635983"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:47 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: merge _full and _partial write rpc_ops\n\nDecouple nfs_pgio_header and nfs_write_data, and have (possibly\nmultiple) nfs_write_datas each take a refcount on nfs_pgio_header.\n\nFor the moment keeps nfs_write_header as a way to preallocate a single\nnfs_write_data with the nfs_pgio_header.  The code doesn\u0027t need this,\nand would be prettier without, but given the amount of churn I am\nalready introducing I didn\u0027t want to play with tuning new mempools.\n\nThis also fixes bug in pnfs_ld_handle_write_error.  In the case of\ndesc-\u003epg_bsize \u003c PAGE_CACHE_SIZE, the pages list was empty, causing\nreplay attempt to do nothing.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4db6e0b74c0f6dfc2f9c0690e8df512e3b635983",
      "tree": "19d8a2a7051bdab220b0bdcf3da1e350a53ce428",
      "parents": [
        "30dd374f6fc1b202db3a1b57b61afff1326bad92"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:46 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: merge _full and _partial read rpc_ops\n\nDecouple nfs_pgio_header and nfs_read_data, and have (possibly\nmultiple) nfs_read_datas each take a refcount on nfs_pgio_header.\n\nFor the moment keeps nfs_read_header as a way to preallocate a single\nnfs_read_data with the nfs_pgio_header.  The code doesn\u0027t need this,\nand would be prettier without, but given the amount of churn I am\nalready introducing I didn\u0027t want to play with tuning new mempools.\n\nThis also fixes bug in pnfs_ld_handle_read_error.  In the case of\ndesc-\u003epg_bsize \u003c PAGE_CACHE_SIZE, the pages list was empty, causing\nreplay attempt to do nothing.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd841605f7a721878d8a2d1362484723d8abf569",
      "tree": "b5c37db575cd545a183577249909e042fe38d646",
      "parents": [
        "b5542849764aa56fd3f05c0041195b637b9d2ac2"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:44 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: create common nfs_pgio_header for both read and write\n\nIn order to avoid duplicating all the data in nfs_read_data whenever we\nsplit it up into multiple RPC calls (either due to a short read result\nor due to rsize \u003c PAGE_SIZE), we split out the bits that are the same\nper RPC call into a separate \"header\" structure.\n\nThe goal this patch moves towards is to have a single header\nrefcounted by several rpc_data structures.  Thus, want to always refer\nfrom rpc_data to the header, and not the other way.  This patch comes\nclose to that ideal, but the directio code currently needs some\nspecial casing, isolated in the nfs_direct_[read_write]hdr_release()\nfunctions.  This will be dealt with in a future patch.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0b7c01533aa9f4a228d07d2768d084acb3a387bc",
      "tree": "aa57b08ce42f1effea2294354e3c9770b70e7612",
      "parents": [
        "799ba8d53d32c84bd2a867ca2689538a48176140"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: add a struct nfs_commit_data to replace nfs_write_data in commits\n\nCommits don\u0027t need the vectors of pages, etc. that writes do. Split out\na separate structure for the commit operation.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f05d147f7e3cf0d86b3a4bd5603029a7cb109633",
      "tree": "e351ef7dd3d541626f5cccef86f50906bfb3a649",
      "parents": [
        "72de53ec4bca39c26709122a8f78bfefe7b6bca4"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:41 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:02 2012 -0400"
      },
      "message": "NFS: Fix following referral mount points with different security\n\nI create a new proc_lookup_mountpoint() to use when submounting an NFS\nv4 share.  This function returns an rpc_clnt to use for performing an\nfs_locations() call on a referral\u0027s mountpoint.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "72de53ec4bca39c26709122a8f78bfefe7b6bca4",
      "tree": "dac32c44281b153df7104037c1e97c11deffae69",
      "parents": [
        "db0a9593d52f935c80085d8993bdcead1ad30b0c"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:02 2012 -0400"
      },
      "message": "NFS: Do secinfo as part of lookup\n\nWhenever lookup sees wrongsec do a secinfo and retry the lookup to find\nattributes of the file or directory, such as \"is this a referral\nmountpoint?\".  This also allows me to remove handling -NFS4ERR_WRONSEC\nas part of getattr xdr decoding.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "db0a9593d52f935c80085d8993bdcead1ad30b0c",
      "tree": "e0ca32d8d4366042479cb2a87d6fe87998a9849f",
      "parents": [
        "31e4dda4747713de13889f7c79c7aec341fea61b"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:01 2012 -0400"
      },
      "message": "NFS: Handle exceptions coming out of nfs4_proc_fs_locations()\n\nWe don\u0027t want to return -NFS4ERR_WRONGSEC to the VFS because it could\ncause the kernel to oops.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5794d21ef4639f0e33440927bb903f9598c21e92",
      "tree": "d4bdbde63624df6e970751f46fd6fe0dacb8718c",
      "parents": [
        "5a00689930ab975fdd1b37b034475017e460cf2a"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Tue Apr 17 14:36:40 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:09:53 2012 -0400"
      },
      "message": "Avoid beyond bounds copy while caching ACL\n\nWhen attempting to cache ACLs returned from the server, if the bitmap\nsize + the ACL size is greater than a PAGE_SIZE but the ACL size itself\nis smaller than a PAGE_SIZE, we can read past the buffer page boundary.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nReported-by: Jian Li \u003cjiali@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5a00689930ab975fdd1b37b034475017e460cf2a",
      "tree": "9cc6df10ac849488efe28ea811e55c213c22a754",
      "parents": [
        "10bd295a0b6488ebe634b72a11d8986bd3af3819"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Tue Apr 17 14:35:39 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 13:15:07 2012 -0400"
      },
      "message": "Avoid reading past buffer when calling GETACL\n\nBug noticed in commit\nbf118a342f10dafe44b14451a1392c3254629a1f\n\nWhen calling GETACL, if the size of the bitmap array, the length\nattribute and the acl returned by the server is greater than the\nallocated buffer(args.acl_len), we can Oops with a General Protection\nfault at _copy_from_pages() when we attempt to read past the pages\nallocated.\n\nThis patch allocates an extra PAGE for the bitmap and checks to see that\nthe bitmap + attribute_length + ACLs don\u0027t exceed the buffer space\nallocated to it.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nReported-by: Jian Li \u003cjiali@redhat.com\u003e\n[Trond: Fixed a size_t vs unsigned int printk() warning]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "95b72eb0bdef6476b7e73061f0382adf46c5495a",
      "tree": "db1cbb01793ac5f744defb73e869373fefb7d0ce",
      "parents": [
        "98a2139f4f4d7b5fcc3a54c7fddbe88612abed20"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 19:24:51 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 23:14:28 2012 -0400"
      },
      "message": "NFSv4: Ensure we do not reuse open owner names\n\nThe NFSv4 spec is ambiguous about whether or not it is permissible\nto reuse open owner names, so play it safe. This patch adds a timestamp\nto the state_owner structure, and combines that with the IDA based\nuniquifier.\nFixes a regression whereby the Linux server returns NFS4ERR_BAD_SEQID.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "451146be933e26e21277852b5e40c6a52266ef96",
      "tree": "207795769b9e1b18952f67fda9db5c7259fb9d63",
      "parents": [
        "55725513b5ef9d462aa3e18527658a0362aaae83"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 18 16:29:11 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 19 13:23:09 2012 -0400"
      },
      "message": "NFSv4: Fix open(O_TRUNC) and ftruncate() error handling\n\nIf the file wasn\u0027t opened for writing, then truncate and ftruncate\nneed to report the appropriate errors.\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": "55725513b5ef9d462aa3e18527658a0362aaae83",
      "tree": "e258eff89b9c1b72a4c1e6ff136ddd477c8ca9ef",
      "parents": [
        "05ffe24f5290dc095f98fbaf84afe51ef404ccc5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 18 12:48:35 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 19 13:23:08 2012 -0400"
      },
      "message": "NFSv4: Ensure that we check lock exclusive/shared type against open modes\n\nSince we may be simulating flock() locks using NFS byte range locks,\nwe can\u0027t rely on the VFS having checked the file open mode for us.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "05ffe24f5290dc095f98fbaf84afe51ef404ccc5",
      "tree": "555ddc0f2266861b3532ea1ab9d70def1176ab55",
      "parents": [
        "ca138f368a36dba40d3ef4a53d64af2011cda3c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 18 12:20:10 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 19 13:23:00 2012 -0400"
      },
      "message": "NFSv4: Ensure that the LOCK code sets exception-\u003einode\n\nAll callers of nfs4_handle_exception() that need to handle\nNFS4ERR_OPENMODE correctly should set exception-\u003einode\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "14977489ffdb80d4caf5a184ba41b23b02fbacd9",
      "tree": "8d0b755ca35743e6a00dc7da04a7b7c21dd6d650",
      "parents": [
        "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:31:25 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa",
      "tree": "217a19f29b5214d8b0e36dbe190c34140a01000f",
      "parents": [
        "05e9cfb408b24debb3a85fd98edbfd09dd148881"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:22:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4.1: Fix layoutcommit error handling\n\nFirstly, task-\u003etk_status will always return negative error values,\nso the current tests for \u0027NFS4ERR_DELEG_REVOKED\u0027 etc. are all being\nignored.\nSecondly, clean up the code so that we only need to test\ntask-\u003etk_status once!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "05e9cfb408b24debb3a85fd98edbfd09dd148881",
      "tree": "47c4039701bf081a8b6e9209b65c1284f2183dd7",
      "parents": [
        "864cf9bf99f62d2095c8e6cc3a87af80b263984e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:13:02 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Fix two infinite loops in the mount code\n\nWe can currently loop forever in nfs4_lookup_root() and in\nnfs41_proc_secinfo_no_name(), if the first iteration returns a\nNFS4ERR_DELAY or something else that causes exception.retry to get\nset.\n\nReported-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "20e0fa98b751facf9a1101edaefbc19c82616a68",
      "tree": "b3a902d953bb60b36886d66d626a68800b020b0a",
      "parents": [
        "250f6715a4112d6686670c5a62ceb9305da94616"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Thu Mar 22 16:46:28 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 24 14:33:26 2012 -0400"
      },
      "message": "Fix length of buffer copied in __nfs4_get_acl_uncached\n\n_copy_from_pages() used to copy data from the temporary buffer to the\nuser passed buffer is passed the wrong size parameter when copying\ndata. res.acl_len contains both the bitmap and acl lenghts while\nacl_len contains the acl length after adjusting for the bitmap size.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    },
    {
      "commit": "c6bfa1a16377b42496ecc0490a33516c0e414e7b",
      "tree": "a45bb649475733474350d1420b6cb1079020b8f2",
      "parents": [
        "34e137cc7e3b63c254875e59cd48dcbe6757fe6c"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:42 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:46 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic rename code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34e137cc7e3b63c254875e59cd48dcbe6757fe6c",
      "tree": "ea509e7f715bcbf2fd3541062063348f547e6c6c",
      "parents": [
        "ea7c330362257c072791aeaf03bae2cebf9fb984"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:41 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:46 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic unlink code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ea7c330362257c072791aeaf03bae2cebf9fb984",
      "tree": "5633ea3278a8ad9b81891bd1fd149af76ad3fe7d",
      "parents": [
        "c6cb80d00be42f30716ec817b963bcec094433b5"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:45 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic read code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c6cb80d00be42f30716ec817b963bcec094433b5",
      "tree": "8049071fc2c5f01a730eb47bfa95ee095ce677df",
      "parents": [
        "6f00866ddd15724eb20eac4ddf6e2c6c1a6cfcdc"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:45 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic write code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ae67c4fee869c9b3c87b727a9ea511b6326b834",
      "tree": "68fe22b71462c6e13eff3a6d637b79371c77441e",
      "parents": [
        "c4f1b62a4b50a01e8d820717906b674807ef9ca3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 19 16:17:18 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 13:08:25 2012 -0400"
      },
      "message": "NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n\nIt is quite possible for the release_lockowner RPC call to race with the\nclose RPC call, in which case, we cannot dereference lsp-\u003els_state in\norder to find the nfs_server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b86ce2db3349f5c2af81769c2596ee0d5a63a47",
      "tree": "41d9a8973b50bb96929f3cbd6d9faf49cb2cc3dd",
      "parents": [
        "27a6d5c742ceff68b09396bb99cd6344afa85330"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:33 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:24 2012 +0800"
      },
      "message": "nfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "9a3ba432330e504ac61ff0043dbdaba7cea0e35a",
      "tree": "1efadb9ff2c7a662bf8cb6da9a7bd70595810b02",
      "parents": [
        "0097143c12e279f5d454e0f636a02afff102cc6a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 18:01:48 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 18:15:22 2012 -0400"
      },
      "message": "NFSv4: Rate limit the state manager warning messages\n\nPrevent the state manager from filling up system logs when recovery\nfails on the server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "17280175c587469b34757263c7cfc608f0ea2334",
      "tree": "34a3008bfd1055e9fdb0557ea563484b67433797",
      "parents": [
        "5ffaf8554163d9f3873988ce2f9977f6c6f408d2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 13:11:00 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 15:14:16 2012 -0400"
      },
      "message": "NFS: Fix a number of sparse warnings\n\nFix a number of \"warning: symbol \u0027foo\u0027 was not declared. Should it be\nstatic?\" conditions.\n\nFix 2 cases of \"warning: Using plain integer as NULL pointer\"\n\nfs/nfs/delegation.c:263:31: warning: restricted fmode_t degrades to integer\n  - We want to allow upgrades to a WRITE delegation, but should otherwise\n    consider servers that hand out duplicate delegations to be borken.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "a030889a01d1bea921e1a7501010b7b891d2abd2",
      "tree": "4e76ec42bbdd41682e6cea5541f305c2f1275e99",
      "parents": [
        "f9fd2d9c1f3b512c9794abbbd76c77a6e6de57aa"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Jan 26 13:32:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:00 2012 -0500"
      },
      "message": "NFS: start printks w/ NFS: even if __func__ shown\n\nThis patch addresses printks that have some context to show that they are\nfrom fs/nfs/, but for the sake of consistency now start with NFS:\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f9fd2d9c1f3b512c9794abbbd76c77a6e6de57aa",
      "tree": "c6496c3820eeb799c7326abb531308363f5be724",
      "parents": [
        "87e3c0553fcbea79bf9f17fc5694484ecf3ae5e8"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Jan 26 13:32:22 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:47:59 2012 -0500"
      },
      "message": "NFS: printks in fs/nfs/ should start with NFS:\n\nMessages like \"Got error -10052 from the server on DESTROY_SESSION. Session\nhas been destroyed regardless\" can be confusing to users who aren\u0027t very\nfamiliar with NFS.\n\nNOTE: This patch ignores any printks() that start by printing __func__ - that\nwill be in a separate patch.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b01dd1d8fae6178cbec374b90da2e4a3b8dce9ba",
      "tree": "64627fdd095c4659ebf02d4c9891fd172ecc5d04",
      "parents": [
        "1cab0652ba985d11b67645bd344c39ebb6cd28a2"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Jan 31 10:39:30 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:47:58 2012 -0500"
      },
      "message": "NFS: Call test_stateid() and free_stateid() with correct stateids\n\nI noticed that test_stateid() was always using the same stateid for open\nand lock recovery.  After poking around a bit, I discovered that it was\nalways testing with a delegation stateid (even if there was no\ndelegation present).  I figured this wasn\u0027t correct, so now delegation\nand open stateids are tested during open_expired() and lock stateids are\ntested during lock_expired().\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1cab0652ba985d11b67645bd344c39ebb6cd28a2",
      "tree": "98f439b7b90400c4c5b6bbb51d37fcb81d6a6ca5",
      "parents": [
        "883381246c5ac2c29b849fe619f55fa5961ee76d"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Jan 31 10:39:29 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:47:58 2012 -0500"
      },
      "message": "NFS: Pass a stateid to test_stateid() and free_stateid()\n\nThis takes the guesswork out of what stateid to use.  The caller is\nexpected to figure this out and pass in the correct one.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "331818f1c468a24e581aedcbe52af799366a9dfe",
      "tree": "9bdbc52833c576e21e83d457d350b5db931ebade",
      "parents": [
        "7c7ed8ec337bf5f62cc5287a6eb6b2f1b7504c2f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 03 18:30:53 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 03 18:50:34 2012 -0500"
      },
      "message": "NFSv4: Fix an Oops in the NFSv4 getacl code\n\nCommit bf118a342f10dafe44b14451a1392c3254629a1f (NFSv4: include bitmap\nin nfsv4 get acl data) introduces the \u0027acl_scratch\u0027 page for the case\nwhere we may need to decode multi-page data. However it fails to take\ninto account the fact that the variable may be NULL (for the case where\nwe\u0027re not doing multi-page decode), and it also attaches it to the\nencoding xdr_stream rather than the decoding one.\n\nThe immediate result is an Oops in nfs4_xdr_enc_getacl due to the\ncall to page_address() with a NULL page pointer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Andy Adamson \u003candros@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "a4980e7840176b4baa60715c32c5994b084ea9a6",
      "tree": "03c2382a2133d8fb8c6259bf98f6f1fb38c96004",
      "parents": [
        "8b7e3f49ddda0d43c5bc8de404c1dc7e7a13cc80"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 30 15:43:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:24 2012 -0500"
      },
      "message": "NFSv4: ACCESS validation doesn\u0027t require a full attribute refresh\n\nWe only really need to check the change attribute, so let\u0027s just use the\nserver-\u003ecache_consistency_bitmask.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "961a828df64979d2a9faeeeee043391670a193b9",
      "tree": "4b7ddaf1a19c589e3c8ec96b6c732faa507f2899",
      "parents": [
        "2aeb98f498ce37742b743080fdc6c8cf64053599"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:57:37 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:08 2012 -0500"
      },
      "message": "SUNRPC: Fix potential races in xprt_lock_write_next()\n\nWe have to ensure that the wake up from the waitqueue and the assignment\nof xprt-\u003esnd_task are atomic. We can do this by assigning the snd_task\nwhile under the waitqueue spinlock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "536e43d12b9517bbbf6114cd1a12be27857a4d7a",
      "tree": "a40424a430fd651fe7b35232717f2201c608059a",
      "parents": [
        "48c22eb21071a3524f8b6e587371be35b5e86969"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:26 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:07 2012 -0500"
      },
      "message": "NFS: Optimise away unnecessary setattrs for open(O_TRUNC);\n\nCurrently, we will correctly optimise away a truncate that doesn\u0027t\nchange the file size. However, in the case of open(O_TRUNC), we\nalso want to optimise away the time changes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48c22eb21071a3524f8b6e587371be35b5e86969",
      "tree": "68f2bb02f61b59c87f961cf7345aeb73e2662d4b",
      "parents": [
        "7ba127ab9f5f83991df4142d5bc4fc319cd77a54"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:25 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:07 2012 -0500"
      },
      "message": "NFS: Move struct nfs_unique_id into struct nfs_seqid_counter\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9d12b216aa87f68c96f6dd8eb5d2d0ccc9989b1c",
      "tree": "74dbe1f8b150b3a66f5cb3589e5efd51ad9dfff5",
      "parents": [
        "d2d7ce28a2f8ec6ca2a49145e643d2e3c7d21ba3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:25 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:06 2012 -0500"
      },
      "message": "NFSv41: Add a new helper nfs4_init_sequence()\n\nClean up\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d2d7ce28a2f8ec6ca2a49145e643d2e3c7d21ba3",
      "tree": "4c73f071c2282185402a4da7d20b30749530c89f",
      "parents": [
        "9157c31dd610a127bc6f01bc1953cf8b80382040"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:25 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:28 2012 -0500"
      },
      "message": "NFSv4: Replace lock_owner-\u003eld_id with an ida based allocator\n\nAgain, We\u0027re unlikely to ever need more than 2^31 simultaneous lock\nowners, so let\u0027s replace the custom allocator.\n\nNow that there are no more users, we can also get rid of the custom\nallocator code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9157c31dd610a127bc6f01bc1953cf8b80382040",
      "tree": "0552a17b2f047da4240a62d06b9fe58b162bad35",
      "parents": [
        "d1e284d50a1506aab8ad7895f31b5f93b5647fc9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:28 2012 -0500"
      },
      "message": "NFSv4: Replace state_owner-\u003eso_owner_id with an ida based allocator\n\nWe\u0027re unlikely to ever need more than 2^31 simultaneous open owners,\nso let\u0027s replace the custom allocator with the generic ida allocator.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d1e284d50a1506aab8ad7895f31b5f93b5647fc9",
      "tree": "128f19f0646c77d4de820e39f0a724ce37ae1d57",
      "parents": [
        "1313e6034a73a55d6293dbdc62b8853dd067771a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:28 2012 -0500"
      },
      "message": "NFSv4: Clean up nfs4_get_state_owner\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "de040beccd52bb5fcac90031505384d037b1111c",
      "tree": "c31adca422373e3c121ab7751d1dce90696c997f",
      "parents": [
        "363e0df057ea8da539645fe4c3c227e3d44054cc"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Tue Jan 10 22:42:47 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:31:51 2012 -0500"
      },
      "message": "NFS4: fix compile warnings in nfs4proc.c\n\ncompile in nfs-for-3.3 branch shows following warnings. Fix it here.\n\nfs/nfs/nfs4proc.c: In function ‘__nfs4_get_acl_uncached’:\nfs/nfs/nfs4proc.c:3589: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’\nfs/nfs/nfs4proc.c:3589: warning: format ‘%ld’ expects type ‘long int’, but argument 6 has type ‘size_t’\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57eccf1c2acae2fcb748730881ba75643fc31c81",
      "tree": "be47ac42ef0b2e3e7157ce196ad2ed1224739c6c",
      "parents": [
        "5c395ae7033099fc657114ea997858aa622f08b2",
        "074b1d12fe2500d7d453902f9266e6674b30d84c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:40 2012 -0800"
      },
      "message": "Merge branch \u0027nfs-for-3.3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Change the default setting of the nfs4_disable_idmapping parameter\n  NFSv4: Save the owner/group name string when doing open\n  NFS: Remove pNFS bloat from the generic write path\n  pnfs-obj: Must return layout on IO error\n  pnfs-obj: pNFS errors are communicated on iodata-\u003epnfs_error\n  NFS: Cache state owners after files are closed\n  NFS: Clean up nfs4_find_state_owners_locked()\n  NFSv4: include bitmap in nfsv4 get acl data\n  nfs: fix a minor do_div portability issue\n  NFSv4.1: cleanup comment and debug printk\n  NFSv4.1: change nfs4_free_slot parameters for dynamic slots\n  NFSv4.1: cleanup init and reset of session slot tables\n  NFSv4.1: fix backchannel slotid off-by-one bug\n  nfs: fix regression in handling of context\u003d option in NFSv4\n  NFS - fix recent breakage to NFS error handling.\n  NFS: Retry mounting NFSROOT\n  SUNRPC: Clean up the RPCSEC_GSS service ticket requests\n"
    }
  ],
  "next": "6926afd1925a54a13684ebe05987868890665e2b"
}
