)]}'
{
  "log": [
    {
      "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": "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": "4697bd5e9419348ef9fa9b55cefe4355ad9d3d01",
      "tree": "20bf5da80d10ec4df42ae0c3067af39a36f11c28",
      "parents": [
        "7b38c3682c5cab4f98751d5fe57b78a59020653d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 23 13:24:36 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 23 15:21:13 2012 -0400"
      },
      "message": "NFSv4: Fix a race in the net namespace mount notification\n\nSince the struct nfs_client gets added to the global nfs_client_list\nbefore it is initialised, it is possible that rpc_pipefs_event can\nend up trying to create idmapper entries on such a thing.\n\nThe solution is to have the mount notification wait for the\ninitialisation of each nfs_client to complete, and then to\nskip any entries for which the it failed.\n\nReported-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.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": "4bf590e08f6db3395c181618a4c14f1c39b7c4af",
      "tree": "a55286e214564ef1bea4cb270258b75e849268c1",
      "parents": [
        "8cab4c390b43fe34c07bd33799c1bc24be648122"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:46:07 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:47 2012 -0400"
      },
      "message": "NFS: Add nfs_client behavior flags\n\n\"noresvport\" and \"discrtry\" can be passed to nfs_create_rpc_client()\nby setting flags in the passed-in nfs_client.  This change makes it\neasy to add new flags.\n\nNote that these settings are now \"sticky\" over the lifetime of a\nstruct nfs_client, and may even be copied when an nfs_client is\ncloned.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8cab4c390b43fe34c07bd33799c1bc24be648122",
      "tree": "a819ca042219e2764b9042e410ed6f7b4354c59b",
      "parents": [
        "f411703adc762a92b72f8a93c6464050d66cb87b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:45:59 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:47 2012 -0400"
      },
      "message": "NFS: Refactor nfs_get_client(): initialize nfs_client\n\nClean up: Continue to rationalize the locking in nfs_get_client() by\nmoving the logic that handles the case where a matching server IP\naddress is not found.\n\nWhen we support server trunking detection, client initialization may\nreturn a different nfs_client struct than was passed to it.  Change\nthe synopsis of the init_client methods to return an nfs_client.\n\nThe client initialization logic in nfs_get_client() is not much more\nthan a wrapper around -\u003einit_client.  It\u0027s simpler to keep the little\nbits of error handling in the version-specific init_client methods.\n\nNo behavior change is expected.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f411703adc762a92b72f8a93c6464050d66cb87b",
      "tree": "3f9ae0df442e8b5f2c83070225986f4940e7d4dd",
      "parents": [
        "f092075dd33ea04000590e8ffea65c2e7d03d764"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:45:50 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:46 2012 -0400"
      },
      "message": "NFS: Refactor nfs_get_client(): add nfs_found_client()\n\nClean up: Code that takes and releases nfs_client_lock remains in\nnfs_get_client().  Logic that handles a pre-existing nfs_client is\nmoved to a separate function.\n\nNo behavior change is expected.\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": "73ea666c2bb536f2862cefdb3e014ed62b262ba5",
      "tree": "b1992b20a6d907660606b2fc998d75b2f56b894a",
      "parents": [
        "591555465ec513c42416392d392fd56866cb220c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:44:50 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:44 2012 -0400"
      },
      "message": "NFS: Use proper naming conventions for the nfs_client.net field\n\nClean up:  When naming fields and data types, follow established\nconventions to facilitate accurate grep/cscope searches.\n\nIntroduced by commit e50a7a1a \"NFS: make NFS client allocated per\nnetwork namespace context,\" Tue Jan 10, 2012.\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": "98fc685ae2aa24eae98526e9196b3229d519083a",
      "tree": "b6700253e6b724f51694ae9b69c60700f4658ab6",
      "parents": [
        "9f0ec176b3071e0472582c07ae1e68055b28184d"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 27 17:53:45 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 19 17:54:20 2012 -0400"
      },
      "message": "NFSv4.1 data server timeo and retrans module parameters\n\nSet the recovery parameters for data servers.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2ba68002a74fb167b68844077d36e5ccfc87f323",
      "tree": "9a84b5849145275bda0ba74aa24b4354299bdf0e",
      "parents": [
        "5e7e5a0da28216fb9d0a49e93ee27668ef4f04f7"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu May 10 16:47:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:42:22 2012 -0700"
      },
      "message": "NFS: Make v2 configurable\n\nWith this patch NFS v2 can be disabled during Kconfig.  I default the\noption to \"y\" to match the current behavior.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a1556e8662cc425c433b463fcdae138908ca467",
      "tree": "c4c16f7e33612c3ce3b504e9eedbf336d0c4bf20",
      "parents": [
        "6a4506c0b56889aaa15bcf50b3c75f46a8d0a3bd"
      ],
      "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": "NFSv2/v3: Simulate the change attribute\n\nUse the ctime to simulate a change attribute for NFSv2 and NFSv3.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7e6eb683d260d9325f0d1bd911518d5ed3cb4f0c",
      "tree": "51b22645b2e55cff65acf9feb0d9f43f44ed70d3",
      "parents": [
        "f05d147f7e3cf0d86b3a4bd5603029a7cb109633"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Apr 27 13:27:42 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:03 2012 -0400"
      },
      "message": "NFS: Honor the authflavor set in the clone mount data\n\nThe authflavor is set in an nfs_clone_mount structure and passed to the\nxdev_mount() functions where it was promptly ignored.  Instead, use it\nto initialize an rpc_clnt for the cloned server.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.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": "4b7c8dd205d6df1629ccde9f6dcf6a85d34c37ff",
      "tree": "33088a369217ec62afa9068233d33e0913c1b0ee",
      "parents": [
        "09acfea5d8de419ebe84be43b08f7b79c965215f"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 12 11:28:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 12:51:40 2012 -0400"
      },
      "message": "NFS: Only define some function when v4.1 is enabled\n\nNow that the nfs4_cb_match_client() function is static, gcc notices that\nit is only used when CONFIG_NFS_V4_1 is enabled.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\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": "31b8e2aec099f22d40277c424d8c24b2a4c95fce",
      "tree": "47092ef0ac344736a78afadd71e4808e4fe63dcc",
      "parents": [
        "2e738fdce22f9a7edf20281fd2d768ef9785922e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:04 2012 -0500"
      },
      "message": "NFS: Make clientaddr\u003d optional\n\nFor NFSv4 mounts, the clientaddr\u003d mount option has always been\nrequired.  Now we have rpc_localaddr() in the kernel, which was\nmodeled after the same logic in the mount.nfs command that constructs\nthe clientaddr\u003d mount option.  If user space doesn\u0027t provide a\nclientaddr\u003d mount option, the kernel can now construct its own.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "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": "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": "7df529af5fb4b4064f8cd62629e259ac79c0b4ca",
      "tree": "ca2995f28fb5c487926d88d6a9f2fb710667dca9",
      "parents": [
        "abd96698613eb27415e7028b6100be930920adc6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 26 17:34:22 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 26 17:34:22 2012 -0500"
      },
      "message": "NFSv4.1: Don\u0027t call nfs4_deviceid_purge_client() unless we\u0027re NFSv4.1\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "abd96698613eb27415e7028b6100be930920adc6",
      "tree": "8049bdcf2d4d9d699f26570424189261680f8a91",
      "parents": [
        "9937347a1ee6a67e450cc9e90750ce0b10abfe75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:46:49 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:46:49 2012 +0100"
      },
      "message": "NFS: Ensure struct nfs_client holds a reference to the net namespace\n\nOtherwise we have no guarantee that the net namespace won\u0027t just\ndisappear from underneath us once the task that created it\nis destroyed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "b6d1e83b4ea6cb369bdd490871f00651decdb509",
      "tree": "ee69267a410d7373d935aa81e15335107a1f3436",
      "parents": [
        "4c03ae4a897b52e0e8fc38749606549eaa20d5b7"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Feb 07 19:53:19 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:49 2012 -0500"
      },
      "message": "NFS: fix nfs4_find_client_sessionid() arguments list\n\nIt\u0027s not compilable in case of CONFIG_NFS_V4_1 is not set.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c03ae4a897b52e0e8fc38749606549eaa20d5b7",
      "tree": "91d16026684c82e841f78cbc88e61d518eb701c4",
      "parents": [
        "3b64739fb928c34b13db6b5adcb0d3efb19e78be"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 07 00:05:11 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:49 2012 -0500"
      },
      "message": "NFS: Initialise the nfs_net-\u003enfs_client_lock\n\nEnsure that we initialise the nfs_net-\u003enfs_client_lock spinlock.\nAlso ensure that nfs_server_remove_lists() doesn\u0027t try to\ndereference server-\u003enfs_client before that is initialised.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "66697bfd6aec0a9ca9331c1aa544ac20324a7561",
      "tree": "f4e16eba25d9b757e256f96d0a1eca58b65a68cb",
      "parents": [
        "bb2224df5ffe4f864f5b696199b17db1ce77bc0a"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:13 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:48 2012 -0500"
      },
      "message": "LockD: make nlm hosts network namespace aware\n\nThis object depends on RPC client, and thus on network namespace.\nSo let\u0027s make it\u0027s allocation and lookup in network namespace context.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4040153087478993cbf0809f444400a3c808074c",
      "tree": "2dc7af85b0cf930f1656553bd38410b8c16601a6",
      "parents": [
        "191c542442fdf53cc3c496c00be13367fd9cd42d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:42 2012 +1100"
      },
      "message": "security: trim security.h\n\nTrim security.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c7add9a9720ff5be4715f7a0bb0d9578b2e8534e",
      "tree": "9b87930052ffe27acbdb94ac294ea0f073847189",
      "parents": [
        "bc224f539dcce7805d4bfb68a92f0fe8bb102c22"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:11:49 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:04 2012 -0500"
      },
      "message": "NFS: search for client session id in proper network namespace\n\nNetwork namespace is taken from request transport and passed as a part of\ncb_process_state structure.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc03085834a4530b2514708a643cd3fe38f35b21",
      "tree": "fa90ddfeb798295d42783a8a336b4cd905f7fed1",
      "parents": [
        "28cd1b3f262dba56b5e335ba668e342d530f6129"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:31 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:03 2012 -0500"
      },
      "message": "NFS: make nfs_client_lock per net ns\n\nThis patch makes nfs_clients_lock allocated per network namespace. All items it\nprotects are already network namespace aware.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "28cd1b3f262dba56b5e335ba668e342d530f6129",
      "tree": "7ae24e43fe054042800118edb266287125ba34f8",
      "parents": [
        "c25d32b26361ce0814fef2281f164866c18c8692"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:22 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:03 2012 -0500"
      },
      "message": "NFS: make cb_ident_idr per net ns\n\nThis patch makes ID\u0027s infrastructure network namespace aware. This was done\nmainly because of nfs_client_lock, which is desired to be per network\nnamespace, but protects NFS clients ID\u0027s.\n\nNOTE: NFS client\u0027s net pointer have to be set prior to ID initialization,\nproper assignment was moved.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c25d32b26361ce0814fef2281f164866c18c8692",
      "tree": "8429f6b0bc9deeab4a74792eb43e62d65dd57082",
      "parents": [
        "6b13168b36b6a7f603d962c232f1f2f325705832"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:14 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:02 2012 -0500"
      },
      "message": "NFS: make nfs_volume_list per net ns\n\nThis patch splits global list of NFS servers into per-net-ns array of lists.\nThis looks more strict and clearer.\nBTW, this patch also makes \"/proc/fs/nfsfs/volumes\" content depends on /proc\nmount owner pid namespace. See below for details.\n\nNOTE: few words about how was /proc/fs/nfsfs/ entries content show per network\nnamespace done. This is a little bit tricky and not the best is could be. But\nit\u0027s cheap (proper fix for /proc conteinerization is a hard nut to crack).\nThe idea is simple: take proper network namespace from pid namespace\nchild reaper nsproxy of /proc/ mount creator.\nThis actually means, that if there are 2 containers with different net\nnamespace sharing pid namespace, then read of /proc/fs/nfsfs/ entries will\nalways return content, taken from net namespace of pid namespace creator task\n(and thus second namespace set wil be unvisible).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b13168b36b6a7f603d962c232f1f2f325705832",
      "tree": "e524fb58428a8c128dcad8cf00cbd2692be9c6ad",
      "parents": [
        "a602bea3e7ccc5ce3da61d2c18245c4058983926"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Jan 23 17:26:05 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:02 2012 -0500"
      },
      "message": "NFS: make nfs_client_list per net ns\n\nThis patch splits global list of NFS clients into per-net-ns array of lists.\nThis looks more strict and clearer.\nBTW, this patch also makes \"/proc/fs/nfsfs/servers\" entry content depends on\n/proc mount owner pid namespace. See below for details.\n\nNOTE: few words about how was /proc/fs/nfsfs/ entries content show per network\nnamespace done. This is a little bit tricky and not the best is could be. But\nit\u0027s cheap (proper fix for /proc conteinerization is a hard nut to crack).\nThe idea is simple: take proper network namespace from pid namespace\nchild reaper nsproxy of /proc/ mount creator.\nThis actually means, that if there are 2 containers with different net\nnamespace sharing pid namespace, then read of /proc/fs/nfsfs/ entries will\nalways return content, taken from net namespace of pid namespace creator task\n(and thus second namespace set wil be unvisible).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a613fa168afc19179a7547fbba45644c5b6912bf",
      "tree": "02db1b9ca905ff49d9811175607757e3a885325f",
      "parents": [
        "080b794ce5ad318ce34c52abaedf1bc6788a5abb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 20 13:53:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:20 2012 -0500"
      },
      "message": "SUNRPC: constify the rpc_program\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "babea479b75a9ea3d84ace6d880513e18397a8bb",
      "tree": "303f277ccd46efca7b7532285692cad45866a816",
      "parents": [
        "246590f56c9f281d60b7dd7efa0818307e65600d"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 20 17:19:56 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:19 2012 -0500"
      },
      "message": "NFS: remove unused nfs4_find_client_no_ident function\n\nLooks like this function survived after some cleanup patch without a reason.\nNow it\u0027s not called or referenced and I believe, that it can be simply removed.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\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": "eee17325f1dfbe004f1475743bab9e3d050d00f5",
      "tree": "ca48905e04e88658cff7d1a745a12ac3c04cfd77",
      "parents": [
        "4929d1d33fdbe8385cdd49ccd23563e9ff247ff8"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 16:13:19 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: idmap PipeFS notifier introduced\n\nv2:\n1) Added \"nfs_idmap_init\" and \"nfs_idmap_quit\" definitions for kernels built\nwithout CONFIG_NFS_V4 option set.\n\nThis patch subscribes NFS clients to RPC pipefs notifications. Idmap notifier\nis registering on NFS module load. This notifier callback is responsible for\ncreation/destruction of PipeFS idmap pipe dentry for NFS4 clients.\n\nSince ipdmap pipe is created in rpc client pipefs directory, we have make sure,\nthat this directory has been created already. IOW RPC client notifier callback\nhas been called already. To achive this, PipeFS notifier priorities has been\nintroduced (RPC clients notifier priority is greater than NFS idmap one).\nBut this approach gives another problem: unlink for RPC client directory will\nbe called before NFS idmap pipe unlink on UMOUNT event and will fail, because\ndirectory is not empty.\nThe solution, introduced in this patch, is to try to remove client directory\nonce again after idmap pipe was unlinked. This looks like ugly hack, so\nprobably it should be replaced in some more elegant way.\n\nNote that no locking required in notifier callback because PipeFS superblock\npointer is passed as an argument from it\u0027s creation or destruction routine and\nthus we can be sure about it\u0027s validity.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d59b8d599d594bc314026c6856424fe49df5513",
      "tree": "6ace028f324807f18c07653d5efbe782533e4ed9",
      "parents": [
        "e50a7a1a42335243c94eeea4a8d23413cb02370d"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 16:12:54 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: pass NFS client owner network namespace to RPC client creation routine\n\nThis patch replaces static \"init_net\" with nfs_client-\u003enet pointer in RPC\nclient creation calls.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e50a7a1a42335243c94eeea4a8d23413cb02370d",
      "tree": "070a312c2adfce384b64083b8ae204b4d47ffba9",
      "parents": [
        "ad6b134008f4e765dd19976552b929273ae523bd"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 16:12:46 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:26 2012 -0500"
      },
      "message": "NFS: make NFS client allocated per network namespace context\n\nThis patch adds new net variable to nfs_client structure. This variable is set\non NFS client creation and cheched during matching NFS client search.\nInitially current-\u003ensproxy-\u003enet_ns is used as network namespace owner for new\nNFS client to create. This network namespace pointer is set during mount\noptions parsing and thus can be passed from user-spave utils in future if will\nbe necessary.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90ab5ee94171b3e28de6bb42ee30b527014e0be7",
      "tree": "fcf89889f6e881f2b231d3d20287c08174ce4b54",
      "parents": [
        "476bc0015bf09dad39d36a8b19f76f0c181d1ec9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "message": "module_param: make bool parameters really bool (drivers \u0026 misc)\n\nmodule_param(bool) used to counter-intuitively take an int.  In\nfddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy\ntrick.\n\nIt\u0027s time to remove the int/unsigned int option.  For this version\nit\u0027ll simply give a warning, but it\u0027ll break next kernel version.\n\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "074b1d12fe2500d7d453902f9266e6674b30d84c",
      "tree": "e451a00bc071af886451a3e0ab02619d2b8fab66",
      "parents": [
        "6926afd1925a54a13684ebe05987868890665e2b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 09 13:46:26 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 09 14:22:27 2012 -0500"
      },
      "message": "NFSv4: Change the default setting of the nfs4_disable_idmapping parameter\n\nNow that the use of numeric uids/gids is officially sanctioned in\nRFC3530bis, it is time to change the default here to \u0027enabled\u0027.\n\nBy doing so, we ensure that NFSv4 copies the behaviour of NFSv3 when we\u0027re\nusing the default AUTH_SYS authentication (i.e. when the client uses the\nnumeric uids/gids as authentication tokens), so that when new files are\ncreated, they will appear to have the correct user/group.\nIt also fixes a number of backward compatibility issues when migrating\nfrom NFSv3 to NFSv4 on a platform where the server uses different uid/gid\nmappings than the client.\n\nNote also that this setting has been successfully tested against servers\nthat do not support numeric uids/gids at several Connectathon/Bakeathon\nevents at this point, and the fall back to using string names/groups has\nbeen shown to work well in all those test cases.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0aaaf5c424c7ffd6b0c4253251356558b16ef3a2",
      "tree": "8ef0eebc41a8e247d52280fd79d36934a71fcb00",
      "parents": [
        "414adf14cd3b52e411f79d941a15d0fd4af427fc"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 06 16:13:48 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 05 11:59:18 2012 -0500"
      },
      "message": "NFS: Cache state owners after files are closed\n\nServers have a finite amount of memory to store NFSv4 open and lock\nowners.  Moreover, servers may have a difficult time determining when\nthey can reap their state owner table, thanks to gray areas in the\nNFSv4 protocol specification.  Thus clients should be careful to reuse\nstate owners when possible.\n\nCurrently Linux is not too careful.  When a user has closed all her\nfiles on one mount point, the state owner\u0027s reference count goes to\nzero, and it is released.  The next OPEN allocates a new one.  A\nworkload that serially opens and closes files can run through a large\nnumber of open owners this way.\n\nWhen a state owner\u0027s reference count goes to zero, slap it onto a free\nlist for that nfs_server, with an expiry time.  Garbage collect before\nlooking for a state owner.  This makes state owners for active users\navailable for re-use.\n\nNow that there can be unused state owners remaining at umount time,\npurge the state owner free list when a server is destroyed.  Also be\nsure not to reclaim unused state owners during state recovery.\n\nThis change has benefits for the client as well.  For some workloads,\nthis approach drops the number of OPEN_CONFIRM calls from the same as\nthe number of OPEN calls, down to just one.  This reduces wire traffic\nand thus open(2) latency.  Before this patch, untarring a kernel\nsource tarball shows the OPEN_CONFIRM call counter steadily increasing\nthrough the test.  With the patch, the OPEN_CONFIRM count remains at 1\nthroughout the entire untar.\n\nAs long as the expiry time is kept short, I don\u0027t think garbage\ncollection should be terribly expensive, although it does bounce the\nclp-\u003ecl_lock around a bit.\n\n[ At some point we should rationalize the use of the nfs_server\n-\u003edestroy method. ]\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[Trond: Fixed a garbage collection race and a few efficiency issues]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "68c97153fb7f2877f98aa6c29546381d9cad2fed",
      "tree": "6c233c15758788758c819248a9d821d0083f4ca6",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 13:22:46 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 05 10:42:38 2012 -0500"
      },
      "message": "SUNRPC: Clean up the RPCSEC_GSS service ticket requests\n\nInstead of hacking specific service names into gss_encode_v1_msg, we should\njust allow the caller to specify the service name explicitly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "940aab490215424a269f93d2eba2794fc8b3e269",
      "tree": "6dec5a3d9476fd3c409d7a73040e0eafb1eba756",
      "parents": [
        "b6ee8cd2642f6d822dd1a4ba62298b65ff99b72e"
      ],
      "author": {
        "name": "Malahal Naineni",
        "email": "malahal@us.ibm.com",
        "time": "Tue Sep 20 17:27:14 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 18:44:04 2011 -0500"
      },
      "message": "Check validity of cl_rpcclient in nfs_server_list_show\n\nAs soon as the nfs_client gets created, its cl_rpcclient is set to\nERR_PTR(-EINVAL). The rpc client structure is allocated later. Check\nif the client is ready before using the cl_rpcclient pointer.\n\nSigned-off-by: Malahal Naineni \u003cmalahal@us.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9dd3abbbc708da5e3c53424a5b2c66ab580f97e",
      "tree": "f24b18e9651fd93aaf871c3de99a8903a6c36826",
      "parents": [
        "3236c3e1adc0c7ec83eaff1de2d06746b7c5bb28"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Oct 12 15:09:34 2011 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:10 2011 -0700"
      },
      "message": "nfs: fix bug about IPv6 address scope checking\n\nThe result from ipv6_addr_scope() always not be a single SCOPE,\nso we can\u0027t use equal to compare the result with IPV6_ADDR_SCOPE_LINKLOCAL\nat nfs_sockaddr_match_ipaddr6.\n\nThis patch fixs the problem, and lets checking address before scope_id.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe0a9b740881d181e3c96c1f6f6043e252692ffe",
      "tree": "11dff7e25a2a9d922fba32d331530d671769c550",
      "parents": [
        "9e69296999362c4e4b2821b64389b47e86e4821b"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Sat Jul 30 20:52:42 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: add device operations\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[upcall bugfixes]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dae100c2b1b9463996aab9162f2258145c43f7df",
      "tree": "302638375d4e6a0400964ae160216080760d984a",
      "parents": [
        "738fd0f360359aecc7fcd7604bbe9e854d81fb1f"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:37 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:15 2011 -0400"
      },
      "message": "pnfs: ask for layout_blksize and save it in nfs_server\n\nBlock layout needs it to determine IO size.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Tao Guo \u003cglorioustao@gmail.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "738fd0f360359aecc7fcd7604bbe9e854d81fb1f",
      "tree": "c2d7ba1680ee37383f1fd537cdafba6fef5dfd8e",
      "parents": [
        "7f11d8d38d64739e190581e015a2a2730ff54e2a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sat Jul 30 20:52:36 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:15 2011 -0400"
      },
      "message": "pnfs: add set-clear layoutdriver interface\n\nTo allow layout driver to issue getdevicelist at mount time, and clean up\nat umount time.\n\n[fixup non NFS_V4_1 set_pnfs_layoutdriver definition]\n[pnfs: pass mntfh down the init_pnfs path]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "94b134ac8e9965309e70684b504c53bca36338b4",
      "tree": "d997c6b6697c5b80b4f15886d6d99cc9ee43b56f",
      "parents": [
        "0d961aa934b799ca7369db582e52952cc50c656d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 13 19:26:49 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 15 09:12:24 2011 -0400"
      },
      "message": "NFS: Convert nfs4_set_ds_client to EXPORT_SYMBOL_GPL\n\nThis is not part of an external ABI...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6382a44138e7aa40bf52170e7afc014443a24806",
      "tree": "9126d01d1fe2442fea057c3f45e4e3e532c85424",
      "parents": [
        "35dbbc99e93e57680837c17f96efe370f0535064"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Wed Jun 01 16:44:44 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 12 13:40:27 2011 -0400"
      },
      "message": "NFS: move pnfs layouts to nfs_server structure\n\nLayouts should be tracked per nfs_server (aka superblock)\ninstead of per struct nfs_client, which may have multiple FSIDs associated\nwith it.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78fe0f41d9937ee62817912ac8d627e06243c269",
      "tree": "7ae4ac3f9675ecbddb5ec0c4615313ae899c10da",
      "parents": [
        "7e574f0d3911c5cc60d4d2b57fee975c462d6cd0"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue May 31 19:05:47 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 12 13:40:27 2011 -0400"
      },
      "message": "NFS: use scope from exchange_id to skip reclaim\n\ncan be skipped if the \"eir_server_scope\" from the exchange_id proc differs from\nprevious calls.\n\nAlso, in the future server_scope will be useful for determining whether client\ntrunking is available\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1775bc342c6eacd6304493cbb2e0cda1a0182246",
      "tree": "b0a884a41f565a41957524146ff6ee51b2b7db7b",
      "parents": [
        "a1eaecbc4c8307e27772d6584ef85a2e93250661"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri May 20 13:47:33 2011 +0200"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:50:42 2011 +0300"
      },
      "message": "NFSv4.1: purge deviceid cache on nfs_free_client\n\nUse the pnfs_layoutdriver_type both as a qualifier for the deviceid,\ndistinguishing deviceid from different layout types on the server,\nand for freeing the layout-driver allocated structure containing the\nnfs4_deviceid_node.\n\n[BUG in _deviceid_purge_client]\n[layout_driver MUST set free_deviceid_node if using dev-cache]\n[let ver \u003c 4.1 compile]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[removed EXPORT_SYMBOL_GPL(nfs4_deviceid_purge_client)]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "b064eca2cf6440bf9d5843b24cc4010624031694",
      "tree": "f1024db40bf0afb7b764d6ee825d24cd715d1cc5",
      "parents": [
        "3ddeb7c5c61d0d6bfd837487d3454ffdb788bb91"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 22 15:44:32 2011 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:27 2011 -0500"
      },
      "message": "NFSv4: Send unmapped uid/gids to the server when using auth_sys\n\nThe new behaviour is enabled using the new module parameter\n\u0027nfs4_disable_idmapping\u0027.\n\nNote that if the server rejects an unmapped uid or gid, then\nthe client will automatically switch back to using the idmapper.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d83217c13531fd59730d77b5c2284e90e56c0a50",
      "tree": "e347037afc91fdb81e0e2fcf7225d30462fb90af",
      "parents": [
        "64419a9b20938d9070fdd8c58c2fa23c911915f8"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Mar 01 01:34:17 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:42 2011 -0500"
      },
      "message": "NFSv4.1: data server connection\n\nIntroduce a data server set_client and init session following the\nnfs4_set_client and  nfs4_init_session convention.\n\nOnce a new nfs_client is on the nfs_client_list, the nfs_client cl_cons_state\nserializes access to creating an nfs_client struct with matching properties.\n\nUse the new nfs_get_client() that initializes new clients.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "94de8b27d0dcb2608d56a7e5c2941b87e6da7ce3",
      "tree": "bd4b98e229bfbb9d6276e663b2eaca4c70b5bba1",
      "parents": [
        "d6fb79d433d0a34c36bdf74eaf90857193a6261f"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Mar 01 01:34:12 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:41 2011 -0500"
      },
      "message": "NFSv4.1: add MDS mount DS only check\n\nThe DS only role cannot be used to mount.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d6fb79d433d0a34c36bdf74eaf90857193a6261f",
      "tree": "bf7686b2bd65d598ef1a4e5ceaebb0432302a726",
      "parents": [
        "d3b4c9d76738df49a7db7682c2518a0ef9f7391d"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Mar 01 01:34:11 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:41 2011 -0500"
      },
      "message": "NFSv4.1: new flag for lease time check\n\nData servers cannot send nfs4_proc_get_lease_time. but still need to setup\nstate renewal. Add the NFS_CS_CHECK_LEASE_TIME bit to indicate if the lease\ntime can be checked.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d3b4c9d76738df49a7db7682c2518a0ef9f7391d",
      "tree": "69ab2ccad799bee8a00ad901b57739be44747fcd",
      "parents": [
        "89d1ea65798953b251e399b17f32d31033889ae0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Mar 01 01:34:10 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:41 2011 -0500"
      },
      "message": "NFSv4.1: new flag for state renewal check\n\nData servers not sharing a session with the mount MDS always have an empty\ncl_superblocks list.\nReplace the cl_superblocks empty list check to see if it is time to shut down\nrenewd with the NFS_CS_STOP_RENEW bit which is not set by such a data server.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "45a52a02072b2a7e265f024cfdb00127e08dd9f2",
      "tree": "33c98f48d5b652297f45406f47d9545cca37c7c5",
      "parents": [
        "bf9c1387ca80deac792c9ecf1c64dfcc5d1cc768"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Mar 01 01:34:08 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:41 2011 -0500"
      },
      "message": "NFS move nfs_client initialization into nfs_get_client\n\nNow nfs_get_client returns an nfs_client ready to be used no matter if it was\nfound or created.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "778be232a207e79088ba70d832ac25dfea6fbf1a",
      "tree": "307249459e5ef45c4b3651c7fc5c454cdb3e0c92",
      "parents": [
        "80c30e8de4f81851b1f712bcc596e11d53bc76f1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Jan 25 15:38:01 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 25 15:26:51 2011 -0500"
      },
      "message": "NFS do not find client in NFSv4 pg_authenticate\n\nThe information required to find the nfs_client cooresponding to the incoming\nback channel request is contained in the NFS layer. Perform minimal checking\nin the RPC layer pg_authenticate method, and push more detailed checking into\nthe NFS layer where the nfs_client can be found.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d3978bb325510f0a26ebd92f211b36c5f98b2306",
      "tree": "5d376fef966d242cb61df1bcfaefeec1e71663d4",
      "parents": [
        "dda4b225623f316335052828c24a16e2da313f8f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 24 01:33:04 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:57:46 2011 -0500"
      },
      "message": "NFS: Move cl_delegations to the nfs_server struct\n\nDelegations are per-inode, not per-nfs_client.  When a server file\nsystem is migrated, delegations on the client must be moved from the\nsource to the destination nfs_server.  Make it easier to manage a\nmount point\u0027s delegation list across a migration event by moving the\nlist to the nfs_server struct.\n\nClean up: I added documenting comments to public functions I changed\nin this patch.  For consistency I added comments to all the other\npublic functions in fs/nfs/delegation.c.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fca5238ef3232cd0cf4bf0457e751b3bb20912a9",
      "tree": "5b61da0d71e3e89b835d46a49e0f4945b5002cea",
      "parents": [
        "f7e8917a67980924651a9e244510e63ef05c7755"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 24 01:32:32 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:47:56 2011 -0500"
      },
      "message": "NFS: Allow walking nfs_client.cl_superblocks list outside client.c\n\nWe\u0027re about to move some fields from struct nfs_client to struct\nnfs_server.  There is a many-to-one relationship between nfs_servers\nand nfs_clients.  After these fields are moved to the nfs_server\nstruct, to visit all of the data in these fields that is owned by one\nnfs_client, code will need to visit each nfs_server on the\ncl_superblocks list for that nfs_client.\n\nTo serialize changes to the cl_superblocks list during these little\nexpeditions, protect the list with RCU.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f7e8917a67980924651a9e244510e63ef05c7755",
      "tree": "fb00db5ef8b3b26793fae7a1186f1cd16205ab9d",
      "parents": [
        "36840370845629e6cb4324d1dd4aff6778670503"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:32 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:32 2011 -0500"
      },
      "message": "pnfs: layout roc code\n\nA layout can request return-on-close.  How this interacts with the\nforgetful model of never sending LAYOUTRETURNS is a bit ambiguous.\nWe forget any layouts marked roc, and wait for them to be completely\nforgotten before continuing with the close.  In addition, to compensate\nfor races with any inflight LAYOUTGETs, and the fact that we do not get\nany layout stateid back from the server, we set the barrier to the worst\ncase scenario of current_seqid + number of outstanding LAYOUTGETS.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c36fca52f5e4594ffd0ff175b328966b0d393184",
      "tree": "6d771744cc49f0edc0d2b6b2f9fe919163002346",
      "parents": [
        "2c2618c6f29c41a0a966f14f05c8bf45fcabb750"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:32 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:24 2011 -0500"
      },
      "message": "NFS refactor nfs_find_client and reference client across callback processing\n\nFixes a bug where the nfs_client could be freed during callback processing.\nRefactor nfs_find_client to use minorversion specific means to locate the\ncorrect nfs_client structure.\n\nIn the NFS layer, V4.0 clients are found using the callback_ident field in the\nCB_COMPOUND header.  V4.1 clients are found using the sessionID in the\nCB_SEQUENCE operation which is also compared against the sessionID associated\nwith the back channel thread after a successful CREATE_SESSION.\n\nEach of these methods finds the one an only nfs_client associated\nwith the incoming callback request - so nfs_find_client_next is not needed.\n\nIn the RPC layer, the pg_authenticate call needs to find the nfs_client. For\nthe v4.0 callback service, the callback identifier has not been decoded so a\nsearch by address, version, and minorversion is used.  The sessionid for the\nsessions based callback service has (usually) not been set for the\npg_authenticate on a CB_NULL call which can be sent prior to the return\nof a CREATE_SESSION call, so the sessionid associated with the back channel\nthread is not used to find the client in pg_authenticate for CB_NULL calls.\n\nPass the referenced nfs_client to each CB_COMPOUND operation being proceesed\nvia the new cb_process_state structure. The reference is held across\ncb_compound processing.\n\nUse the new cb_process_state struct to move the NFS4ERR_RETRY_UNCACHED_REP\nprocessing from process_op into nfs4_callback_sequence where it belongs.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f4eecd5da3422e82e88e36c33cbd2595eebcacb1",
      "tree": "8e49bbe401ed4233e1652843489a4360a94dc69b",
      "parents": [
        "ea00528126a701845d7c445e725b271940381e3d"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:30 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:24 2011 -0500"
      },
      "message": "NFS implement v4.0 callback_ident\n\nUse the small id to pointer translator service to provide a unique callback\nidentifier per SETCLIENTID call used to identify the v4.0 callback service\nassociated with the clientid.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ea00528126a701845d7c445e725b271940381e3d",
      "tree": "cb1cb70562b74422b1cc05ee97302b1231446352",
      "parents": [
        "01c9a0bc60507af7f28cb9138a81836de4528199"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:29 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:24 2011 -0500"
      },
      "message": "NFS do not clear minor version at nfs_client free\n\nResetting the client minor version operations causes nfs4_destroy_callback\nto fail to shutdown the NFSv4.1 callback service.\n\nThere is no reason to reset the client minorversion operations when the\nnfs_client struct is being freed.\n\nRemove the minorverion reset and rename the function.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4390110fef9e5c64e10c6ca19d586932242c9a8a",
      "tree": "f2f26fe291c8b4e424b97ac57370b33e0c006568",
      "parents": [
        "a4dd8dce14014665862ce7911b38cb2c69e366dd",
        "42d7ba3d6d56a6cbc773284896108b1e2ebcee81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux: (99 commits)\n  svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n  svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n  svcrpc: assume svc_delete_xprt() called only once\n  svcrpc: never clear XPT_BUSY on dead xprt\n  nfsd4: fix connection allocation in sequence()\n  nfsd4: only require krb5 principal for NFSv4.0 callbacks\n  nfsd4: move minorversion to client\n  nfsd4: delay session removal till free_client\n  nfsd4: separate callback change and callback probe\n  nfsd4: callback program number is per-session\n  nfsd4: track backchannel connections\n  nfsd4: confirm only on succesful create_session\n  nfsd4: make backchannel sequence number per-session\n  nfsd4: use client pointer to backchannel session\n  nfsd4: move callback setup into session init code\n  nfsd4: don\u0027t cache seq_misordered replies\n  SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n  SUNRPC: Use conventional switch statement when reclassifying sockets\n  sunrpc/xprtrdma: clean up workqueue usage\n  sunrpc: Turn list_for_each-s into the ..._entry-s\n  ...\n\nFix up trivial conflicts (two different deprecation notices added in\nseparate branches) in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "a4dd8dce14014665862ce7911b38cb2c69e366dd",
      "tree": "00e79b2845d5d49abcd83cf253db83a52d482265",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232",
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  net/sunrpc: Use static const char arrays\n  nfs4: fix channel attribute sanity-checks\n  NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n  NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n  NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n  NFS: client needs to maintain list of inodes with active layouts\n  NFS: create and destroy inode\u0027s layout cache\n  NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n  NFSv4.1: pnfs: full mount/umount infrastructure\n  NFS: set layout driver\n  NFS: ask for layouttypes during v4 fsinfo call\n  NFS: change stateid to be a union\n  NFSv4.1: pnfsd, pnfs: protocol level pnfs constants\n  SUNRPC: define xdr_decode_opaque_fixed\n  NFSD: remove duplicate NFS4_STATEID_SIZE\n"
    },
    {
      "commit": "74eb94b218d087798a52c0b4f1379b635287a4b8",
      "tree": "4e467c3014c2b1169f6f71d88cf5d1598f3ce28e",
      "parents": [
        "7b6181e06841f5ad15c4ff708b967b4db65a64de",
        "9a84d38031c258a17bb39beed1e500eadee67407"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)\n  SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred\n  nfs: fix unchecked value\n  Ask for time_delta during fsinfo probe\n  Revalidate caches on lock\n  SUNRPC: After calling xprt_release(), we must restart from call_reserve\n  NFSv4: Fix up the \u0027dircount\u0027 hint in encode_readdir\n  NFSv4: Clean up nfs4_decode_dirent\n  NFSv4: nfs4_decode_dirent must clear entry-\u003efattr-\u003evalid\n  NFSv4: Fix a regression in decode_getfattr\n  NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer\n  NFS: Ensure we check all allocation return values in new readdir code\n  NFS: Readdir plus in v4\n  NFS: introduce generic decode_getattr function\n  NFS: check xdr_decode for errors\n  NFS: nfs_readdir_filler catch all errors\n  NFS: readdir with vmapped pages\n  NFS: remove page size checking code\n  NFS: decode_dirent should use an xdr_stream\n  SUNRPC: Add a helper function xdr_inline_peek\n  NFS: remove readdir plus limit\n  ...\n"
    },
    {
      "commit": "16b374ca439fb406e46e071f75428f5b033056f8",
      "tree": "72a66e452936561151b8b62069763cb4f0434b39",
      "parents": [
        "b1f69b754ee312ec75f2c7ead0e6851cd9598cc2"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:04 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:11 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n\nImplement the driver\u0027s io_ops-\u003ealloc_lseg and free_lseg functions,\nwhich integrate into the deviceid cache and calls out to\nnfs4_proc_getdeviceinfo when necessary.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "974cec8ca0352eb5d281535b714cf194a606e98f",
      "tree": "0e71706c3091fc785bab0be8edc5de36816685ff",
      "parents": [
        "e5e940170b2136ad4d5483ef293ae284b9cc8d53"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:02 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: client needs to maintain list of inodes with active layouts\n\nIn particular, server reboot will invalidate all layouts.\n\nNote that in order to have an active layout, we must get a successful response\nfrom the server.  To avoid adding that machinery, this patch just includes a\nstub that fakes up a successful return.  Since the layout is never referenced\nfor io, this is not a problem.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "85e174ba6b786ad336eb2df105b4f66d0932e70a",
      "tree": "eec6b01d897e85c47471f4166201676001c9fd21",
      "parents": [
        "504913fbc84c00bba7224d73e4aab525c1731f7d"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Oct 20 00:17:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: set layout driver\n\nPut in the infrastructure that uses information returned from the\nserver at mount to select a layout driver module.\n\nIn this patch, a stub is used that always returns \"no driver found\".\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b96724e507fecc3e6440e86426fe4f44359ed66",
      "tree": "5b38131405301f4dd536a11f44ff0d5e6785d266",
      "parents": [
        "118df3d17f11733b294ea2cd988d56ee376ef9fd"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Tue Oct 12 16:30:05 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 17:59:56 2010 -0400"
      },
      "message": "Revalidate caches on lock\n\nInstead of blindly zapping the caches, attempt to revalidate them if\nthe server has indicated that it uses high resolution timestamps.\n\nNFSv4 should be able to always revalidate the cache since the\nprotocol requires the update of the change attribute on modification of\nthe data.  In reality, there are servers (the Linux NFS server\nfor example) that do not obey this requirement and use ctime as the\nbasis for change attribute.  Long term, the server needs to be fixed.\nAt this time, and to be on the safe side, continue zapping caches if\nthe server indicates that it does not have a high resolution timestamp.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82f2e5472e2304e531c2fa85e457f4a71070044e",
      "tree": "45e170b0ec64bcc07e51ae36919ca6cba1163703",
      "parents": [
        "ae42c70a60fe330d9c2af7c4b92ce78484308e37"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Oct 21 16:33:18 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:37 2010 -0400"
      },
      "message": "NFS: Readdir plus in v4\n\nBy requsting more attributes during a readdir, we can mimic the readdir plus\noperation that was in NFSv3.\n\nTo test, I ran the command `ls -lU --color\u003dnone` on directories with various\nnumbers of files.  Without readdir plus, I see this:\n\nn files |    100    |   1,000   |  10,000   |  100,000  | 1,000,000\n--------+-----------+-----------+-----------+-----------+----------\nreal    | 0m00.153s | 0m00.589s | 0m05.601s | 0m56.691s | 9m59.128s\nuser    | 0m00.007s | 0m00.007s | 0m00.077s | 0m00.703s | 0m06.800s\nsys     | 0m00.010s | 0m00.070s | 0m00.633s | 0m06.423s | 1m10.005s\naccess  | 3         | 1         | 1         | 4         | 31\ngetattr | 2         | 1         | 1         | 1         | 1\nlookup  | 104       | 1,003     | 10,003    | 100,003   | 1,000,003\nreaddir | 2         | 16        | 158       | 1,575     | 15,749\ntotal   | 111       | 1,021     | 10,163    | 101,583   | 1,015,784\n\nWith readdir plus enabled, I see this:\n\nn files |    100    |   1,000   |  10,000   |  100,000  | 1,000,000\n--------+-----------+-----------+-----------+-----------+----------\nreal    | 0m00.115s | 0m00.206s | 0m01.079s | 0m12.521s | 2m07.528s\nuser    | 0m00.003s | 0m00.003s | 0m00.040s | 0m00.290s | 0m03.296s\nsys     | 0m00.007s | 0m00.020s | 0m00.120s | 0m01.357s | 0m17.556s\naccess  | 3         | 1         | 1         | 1         | 7\ngetattr | 2         | 1         | 1         | 1         | 1\nlookup  | 4         | 3         | 3         | 3         | 3\nreaddir | 6         | 62        | 630       | 6,300     | 62,993\ntotal   | 15        | 67        | 635       | 6,305     | 63,004\n\nReaddir plus disabled has about a 16x increase in the number of rpc calls and\nis 4 - 5 times slower on large directories.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "56e4ebf877b6043c289bda32a5a7385b80c17dee",
      "tree": "160ae8d5b5ee3871d02a9f5283187430c9ec5ffe",
      "parents": [
        "afa8ccc978c24d8ab22e3b3b8cbd1054c84c070b"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Oct 20 15:44:37 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:35 2010 -0400"
      },
      "message": "NFS: readdir with vmapped pages\n\nWe can use vmapped pages to read more information from the network at once.\nThis will reduce the number of calls needed to complete a readdir.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n[trondmy: Added #include for linux/vmalloc.h\u003e in fs/nfs/dir.c]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c653ce3f0aee9bb2b221ebf3579385c06f81efcd",
      "tree": "d0f5a8018e2cf959b6bc1549ce75602ed179dca9",
      "parents": [
        "62832c039eab9d03cd28a66427ce8276988f28b0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:04:45 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:56 2010 -0400"
      },
      "message": "sunrpc: Add net to rpc_create_args\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2",
      "tree": "7cfabe0191855550292b0a0c9b317315dffb2a50",
      "parents": [
        "63185942c5f138c62de16b4cbc7eee494a58fea8"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Thu Sep 23 08:55:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 23 08:55:58 2010 -0400"
      },
      "message": "nfs: introduce mount option \u0027-olocal_lock\u0027 to make locks local\n\nNFS clients since 2.6.12 support flock locks by emulating fcntl byte-range\nlocks. Due to this, some windows applications which seem to use both flock\n(share mode lock mapped as flock by Samba) and fcntl locks sequentially on\nthe same file, can\u0027t lock as they falsely assume the file is already locked.\nThe problem was reported on a setup with windows clients accessing excel files\non a Samba exported share which is originally a NFS mount from a NetApp filer.\n\nOlder NFS clients (\u003c 2.6.12) did not see this problem as flock locks were\nconsidered local. To support legacy flock behavior, this patch adds a mount\noption \"-olocal_lock\u003d\" which can take the following values:\n\n   \u0027none\u0027  \t\t- Neither flock locks nor POSIX locks are local\n   \u0027flock\u0027 \t\t- flock locks are local\n   \u0027posix\u0027 \t\t- fcntl/POSIX locks are local\n   \u0027all\u0027\t\t- Both flock locks and POSIX locks are local\n\nTesting:\n\n   - This patch was tested by using -olocal_lock option with different values\n     and the NLM calls were noted from the network packet captured.\n\n     \u0027none\u0027  - NLM calls were seen during both flock() and fcntl(), flock lock\n   \t       was granted, fcntl was denied\n     \u0027flock\u0027 - no NLM calls for flock(), NLM call was seen for fcntl(),\n   \t       granted\n     \u0027posix\u0027 - NLM call was seen for flock() - granted, no NLM call for fcntl()\n     \u0027all\u0027   - no NLM calls were seen during both flock() and fcntl()\n\n   - No bugs were seen during NFSv4 locking/unlocking in general and NFSv4\n     reboot recovery.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b20d37ca9561711c6a3c4b859c2855f49565e061",
      "tree": "fa8aba0a2a7e7b2c246e9c35e04526aafdb623d3",
      "parents": [
        "db5fe26541b6b48460104a0d949a27cdc7786957"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:26 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:26 2010 -0400"
      },
      "message": "NFS: Fix a typo in nfs_sockaddr_match_ipaddr6\n\nReported-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "fe74ba3a8db003410e48863a5cafa6ac90674540",
      "tree": "8a3014b14a3c48d997ac08a378128e8b4202b00d",
      "parents": [
        "d77d76ffb638bd013782138cca6d8f4918c5afd6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 16 09:52:27 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:24:03 2010 -0400"
      },
      "message": "NFSv41: Cleanup for nfs4_alloc_session.\n\nThere is no reason to change the nfs_client state every time we allocate a\nnew session. Move that line into nfs4_init_client_minor_version.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "97dc135947181a6670949a480da56c3ebf8d3715",
      "tree": "2e5a766941516f8bbcec3b816901a76a45fc78c5",
      "parents": [
        "a2118c33aad6c447ad5e0a60cfaea3939b52ce0a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 16 09:52:26 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:24:02 2010 -0400"
      },
      "message": "NFSv41: Clean up the NFSv4.1 minor version specific operations\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44950b67a6239b377a9e6fd52c498b310bcdd713",
      "tree": "9984e218b109965d5ac4b55a047838a385301010",
      "parents": [
        "b76ce56192bcf618013fb9aecd83488cffd645cc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 17 11:45:12 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:53 2010 -0400"
      },
      "message": "NFSv4.1: Ensure that we initialise the session when following a referral\n\nPut the code that is common to both the referral and ordinary mount cases\ninto a common helper routine.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbca779a8d240d82ef1439247033fd491f81547c",
      "tree": "10e4a7469326c63127f6d5f419dd8048fb743cff",
      "parents": [
        "a4d7f16806e98cee752006d3a8c10067a7c2aa6b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:22:46 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:22 2010 -0400"
      },
      "message": "NFS: Reduce the stack footprint of nfs_create_server\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "815409d22df870ea0b0d86f2a3bf33c35bcef55c",
      "tree": "99fa8d5ac56d3f14fa1313739d3f9b65176f4e8f",
      "parents": [
        "2d36bfde8565b315e624302d12da5a7c9d195522"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:22:46 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:21 2010 -0400"
      },
      "message": "NFSv4: Eliminate nfs4_path_walk()\n\nAll we really want is the ability to retrieve the root file handle. We no\nlonger need the ability to walk down the path, since that is now done in\nnfs_follow_remote_path().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "356e76b855bdbfd8d1c5e75bcf0c6bf0dfe83496",
      "tree": "426179d91ee28629e781496ae90ececad1405422",
      "parents": [
        "1f063d2cdf332a8a5722006b1345d15d16007c6e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Apr 22 15:35:56 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:56 2010 -0400"
      },
      "message": "NFS: rsize and wsize settings ignored on v4 mounts\n\nNFSv4 mounts ignore the rsize and wsize mount options, and always use\nthe default transfer size for both.  This seems to be because all\nNFSv4 mounts are now cloned, and the cloning logic doesn\u0027t copy the\nrsize and wsize settings from the parent nfs_server.\n\nI tested Fedora\u0027s 2.6.32.11-99 and it seems to have this problem as\nwell, so I\u0027m guessing that .33, .32, and perhaps older kernels have\nthis issue as well.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0df5dd4aae211edeeeb84f7f84f6d093406d7c22",
      "tree": "6e58bc436b873cf582f20cf0dbd21461c0a56837",
      "parents": [
        "2c61be0a9478258f77b66208a0c4b1f5f8161c3c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 11 16:48:44 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 12 07:55:15 2010 -0400"
      },
      "message": "NFSv4: fix delegated locking\n\nArnaud Giersch reports that NFSv4 locking is broken when we hold a\ndelegation since commit 8e469ebd6dc32cbaf620e134d79f740bf0ebab79 (NFSv4:\nDon\u0027t allow posix locking against servers that don\u0027t support it).\n\nAccording to Arnaud, the lock succeeds the first time he opens the file\n(since we cannot do a delegated open) but then fails after we start using\ndelegated opens.\n\nThe following patch fixes it by ensuring that locking behaviour is\ngoverned by a per-filesystem capability flag that is initially set, but\ngets cleared if the server ever returns an OPEN without the\nNFS4_OPEN_RESULT_LOCKTYPE_POSIX flag being set.\n\nReported-by: Arnaud Giersch \u003carnaud.giersch@iut-bm.univ-fcomte.fr\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "888ef2e3f8b7b8daeb031bfb4ad1fd4fa817e193",
      "tree": "d50044d998e636232f1110324d6485a92c20daf2",
      "parents": [
        "f895c53f8ace3c3e49ebf9def90e63fc6d46d2bf"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Fri Feb 05 03:45:03 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 02 12:16:12 2010 -0500"
      },
      "message": "nfs: kill renewd before clearing client minor version\n\nrenewd should be synchronously killed before we destroy the session in\nnfs4_clear_minor_version\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n[Trond.Myklebust@netapp.com: clean up to remove \u0027unused function\nwarning when !CONFIG_NFS_V4]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2449ea2e191123729b2dc37a06fcb9d6ea7e2736",
      "tree": "f5b71099baefb6c550511b3d5f3da26b8c384454",
      "parents": [
        "7b183d0d432ab3525ae29511a5348ead3e790620"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Sat Dec 05 13:36:55 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 05 13:36:55 2009 -0500"
      },
      "message": "nfs41: V2 adjust max_rqst_sz, max_resp_sz w.r.t to rsize, wsize\n\nThe v4.1 client should take into account the desired rsize, wsize when\nnegotiating the max size in CREATE_SESSION. Accordingly, it should use\nrsize, wsize that are smaller than the session negotiated values.\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f4373bf9e67e4a653c8854acd7b02dac9714c98a",
      "tree": "d0371ed7638c0939550a2a43aef5b384d2e96b48",
      "parents": [
        "bcd2ea17da6a329a7276cde7286d802f009af332"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Tue Oct 06 15:42:18 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:42:18 2009 -0400"
      },
      "message": "nfs: Avoid overrun when copying client IP address string\n\nAs seen in \u003chttp://bugs.debian.org/549002\u003e, nfs4_init_client() can\noverrun the source string when copying the client IP address from\nnfs_parsed_mount_data::client_address to nfs_client::cl_ipaddr.  Since\nthese are both treated as null-terminated strings elsewhere, the copy\nshould be done with strlcpy() not memcpy().\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2df54806389205d76bc3d1ce8a10cc14889ddec9",
      "tree": "7c1c170e39d50dd105792e25522e249ea371758e",
      "parents": [
        "4111d4fde6aa04a2e42c43d0e74593e6144b0f0f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 23 14:36:39 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:39 2009 -0400"
      },
      "message": "NFS: Propagate \u0027fsc\u0027 mount option through automounts\n\nPropagate the NFS \u0027fsc\u0027 mount option through NFS automounts of various types.\n\nThis is now required as commit:\n\n\tcommit c02d7adf8c5429727a98bad1d039bccad4c61c50\n\tAuthor: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\tDate:   Mon Jun 22 15:09:14 2009 -0400\n\n\tNFSv4: Replace nfs4_path_walk() with VFS path lookup in a private namespace\n\nuses VFS-driven automounting to reach all submounts barring the root, thus\npreventing fscaching from being enabled on any submount other than the root.\n\nThis patch gets around that by propagating the NFS_OPTION_FSCACHE flag across\nautomounts.  If a uniquifier is supplied to a mount then this is propagated to\nall automounts of that mount too.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n[Trond: Fixed up the definition of nfs_fscache_get_super_cookie for the\n        case of #undef CONFIG_NFS_FSCACHE]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a6e5deb8a8caa810fef2c525f5dbea2cfe04a47",
      "tree": "92e7e049e87955770eb3cddc495e1e0119402b85",
      "parents": [
        "7043078630bbc9eb908a56e08077c5abe7f2d311"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "message": "NFS: Get rid of the NFS_MOUNT_VER3 and NFS_MOUNT_TCP flags\n\nKeep it in the case of the legacy binary mount interface, but purge it from\nthe nfs_server structure.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48d0764998ad4ab7570afab8bb3bee0fbfa55b2a",
      "tree": "7ad93edfbba609f7f7a730d66d47950630e203d3",
      "parents": [
        "87c6a9b253520b66e7f5e8f67a37a701eaa51cee"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 21 09:59:39 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 21 15:40:33 2009 +0200"
      },
      "message": "nfs: initialize the backing_dev_info when creating the server\n\nNFS may free the server structure without ever having used the\nbdi, so we either need to flag the bdi as being uninitialized or\ninitialize it up front. This does the latter.\n\nThis fixes a crash with mounting more than one NFS file system,\nshould people ever need that kind of obscure NFS functionality.\n\nTested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ab3bbaa8b257845e248e9a01d12a69ca245f4197",
      "tree": "f3054be9bd612194826ed6969d01346d329c3306",
      "parents": [
        "332a3392188e0ad966543c87b8da2b9d246f301d",
        "2ecda72b49a0849ce41e7fa1fa974a245b9119f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e576e05a73bc1a00cdf56630942dbada1bf280a1",
      "tree": "d32f477a91b01bcdbccc272be2ebaaef287421bb",
      "parents": [
        "38c73044f5f4da2ef4339319b170e5e19f8dec87"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "message": "nfs: remove superfluous BUG_ON()s\nSubject: [PATCH] nfs: remove superfluous BUG_ON()s\n\nRemove duplicated BUG_ON()s from nfs[4]_create_server()\n(we make the same checks earlier in both functions).\n\nThis takes care of the following entries from Dan\u0027s list:\n\nfs/nfs/client.c +1078 nfs_create_server(47) warning: variable derefenced before check \u0027server-\u003enfs_client\u0027\nfs/nfs/client.c +1079 nfs_create_server(48) warning: variable derefenced before check \u0027server-\u003enfs_client-\u003erpc_ops\u0027\nfs/nfs/client.c +1363 nfs4_create_server(43) warning: variable derefenced before check \u0027server-\u003enfs_client\u0027\nfs/nfs/client.c +1364 nfs4_create_server(44) warning: variable derefenced before check \u0027server-\u003enfs_\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: corbet@lwn.net\nCc: eteo@redhat.com\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62ab460cf5e450e1d207a98a9c6cf2e4a6a78fd1",
      "tree": "595ca70261f46b93bda1998285e5f5c7da684cbc",
      "parents": [
        "a78cb57a106fceeba26da2907db9d8886700e1dc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Add \u0027server capability\u0027 flags for NFSv4 recommended attributes\n\nIf the NFSv4 server doesn\u0027t support a POSIX attribute, the generic NFS code\nneeds to know that, so that it don\u0027t keep trying to poll for it.\n\nHowever, by the same count, if the NFSv4 server does support that\nattribute, then we should ensure that the inode metadata is appropriately\nlabelled as being untrusted. For instance, if we don\u0027t know the correct\nvalue of the file\u0027s uid, we should certainly not be caching ACLs or ACCESS\nresults.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fccba8045537f7e840d0e7565e1989d465e488a3",
      "tree": "89d80da7e017240e5a1d20c79501459c886fd007",
      "parents": [
        "b64aec8d1e1d8482a7b6cca60c8105c756bf1fe4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "message": "NFSv4: Fix an NFSv4 mount regression\n\nCommit 008f55d0e019943323c20a03493a2ba5672a4cc8 (nfs41: recover lease in\n_nfs4_lookup_root) forces the state manager to always run on mount. This is\na bug in the case of NFSv4.0, which doesn\u0027t require us to send a\nsetclientid until we want to grab file state.\n\nIn any case, this is completely the wrong place to be doing state\nmanagement. Moving that code into nfs4_init_session...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81"
}
