)]}'
{
  "log": [
    {
      "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": "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": "5abc03cd919535c61b813f2319cb38326a41e810",
      "tree": "22a180bdca008b9f7a1951c01f4732d4433e6ddd",
      "parents": [
        "36be50515fe2aef61533b516fa2576a2c7fe7664"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon May 14 22:45:28 2012 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:44:01 2012 -0700"
      },
      "message": "NFS: kmalloc() doesn\u0027t return an ERR_PTR()\n\nObviously we should check for NULL here instead of IS_ERR().\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: stable@vger.kernel.org [3.4]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "71dfc5fa5160bb73752f0731539404569a77faca",
      "tree": "d35919ad0d645b91404ca0d1717e5ffa00e89ae5",
      "parents": [
        "e245d4250d0326cfcf7c816a2081b6ab2ea810be"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Sat Apr 28 19:32:21 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 28 13:22:19 2012 -0400"
      },
      "message": "NFS: get module in idmap PipeFS notifier callback\n\nThis is bug fix.\nNotifier callback is called from SUNRPC module. So before dereferencing NFS\nmodule we have to make sure, that it\u0027s alive.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    },
    {
      "commit": "11588f493a2441f09ceb2088d07cc012b53cbf75",
      "tree": "f1f0f598ee239edd9e423bc745d1be77641ce36c",
      "parents": [
        "4b7c8dd205d6df1629ccde9f6dcf6a85d34c37ff"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 12 11:33:00 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 12:51:42 2012 -0400"
      },
      "message": "NFS: Check return value from rpc_queue_upcall()\n\nThis function could fail to queue the upcall if rpc.idmapd is not running,\ncausing a warning message to be printed.  Instead, I want to check the\nreturn value and revoke the key if the upcall can\u0027t be run.\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": "57e62324e469e092ecc6c94a7a86fe4bd6ac5172",
      "tree": "162a5ecd487bc842bc07cc8d4c14d4d1a337813d",
      "parents": [
        "59e6b9c11341e3b8ac5925427c903d4eae435bd8"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Feb 24 14:14:51 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:16 2012 -0500"
      },
      "message": "NFS: Store the legacy idmapper result in the keyring\n\nThis patch removes the old hashmap-based caching and instead uses a\n\"request key actor\" to place an upcall to the legacy idmapper rather\nthan going through /sbin/request-key.  This will only be used as a\nfallback if /etc/request-key.conf isn\u0027t configured to use nfsidmap.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9dbca8d732e20b8d31a3094a8669c014e7ee262",
      "tree": "bb77ebab17bc03f7e534df359474685bc87ff09d",
      "parents": [
        "da3b462296e421e8f54b54b7d2706488661c36e2"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:37 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:36:35 2012 -0500"
      },
      "message": "NFS: release per-net clients lock before calling PipeFS dentries creation\n\nv3:\n1) Lookup for client is performed from the beginning of the list on each PipeFS\nevent handling operation.\n\nLockdep is sad otherwise, because inode mutex is taken on PipeFS dentry\ncreation, which can be called on mount notification, where this per-net client\nlock is taken on clients list walk.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "685f50f9188ac1e8244d0340a9d6ea36b6136cec",
      "tree": "ddb20fcea10937841e1c2af8b2da961ca0848354",
      "parents": [
        "e3da87066f950076fe274b58f0d0adc7d9f9d412"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 13:39:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "NFSv4: Further reduce the footprint of the idmapper\n\nDon\u0027t allocate the legacy idmapper tables until we actually need\nthem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "d073e9b541e1ac3f52d72c3a153855d9a9ee3278",
      "tree": "4719e9b10b9df0416523577d5008045198ad8633",
      "parents": [
        "7ced286e0ade171af89d32c22b1590e1ca480542"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 07 14:59:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:50 2012 -0500"
      },
      "message": "NFSv4: Reduce the footprint of the idmapper\n\nInstead of pre-allocating the storage for all the strings, we can\nsignificantly reduce the size of that table by doing the allocation\nwhen we do the downcall.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "17347d03c008e2f504c33bb4905cdad0abc01319",
      "tree": "7b164ab1cdf1ca32833512f9fee03c84b75d4a23",
      "parents": [
        "33faaa380e9ec4b93503cae8c9969fb599f0f283"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 26 15:11:41 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:05 2012 -0500"
      },
      "message": "NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "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": "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": "3cd0f37a2cc9e4d6188df10041a2441eaa41d991",
      "tree": "e7e64e30500c5e2fef0df009d22ea90b11ea2fe5",
      "parents": [
        "e6499c6f4b5f56a16f8b8ef60529c1da28b13aea"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Jan 26 16:54:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:01 2012 -0500"
      },
      "message": "NFS: Keep idmapper include files in one place\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6499c6f4b5f56a16f8b8ef60529c1da28b13aea",
      "tree": "9212b8d42b0cb24e68c46509e3d924f2b9d30f41",
      "parents": [
        "2d3fe01c36a9b881fae89c5bdf4085a4d7d53ae1"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Jan 26 16:54:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:01 2012 -0500"
      },
      "message": "NFS: Fall back on old idmapper if request_key() fails\n\nThis patch removes the CONFIG_NFS_USE_NEW_IDMAPPER compile option.\nFirst, the idmapper will attempt to map the id using /sbin/request-key\nand nfsidmap.  If this fails (if /etc/request-key.conf is not configured\nproperly) then the idmapper will call the legacy code to perform the\nmapping.  I left a comment stating where the legacy code begins to make\nit easier for somebody to remove in the future.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a030889a01d1bea921e1a7501010b7b891d2abd2",
      "tree": "4e76ec42bbdd41682e6cea5541f305c2f1275e99",
      "parents": [
        "f9fd2d9c1f3b512c9794abbbd76c77a6e6de57aa"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Jan 26 13:32:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:00 2012 -0500"
      },
      "message": "NFS: start printks w/ NFS: even if __func__ shown\n\nThis patch addresses printks that have some context to show that they are\nfrom fs/nfs/, but for the sake of consistency now start with NFS:\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f9fd2d9c1f3b512c9794abbbd76c77a6e6de57aa",
      "tree": "c6496c3820eeb799c7326abb531308363f5be724",
      "parents": [
        "87e3c0553fcbea79bf9f17fc5694484ecf3ae5e8"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Jan 26 13:32:22 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:47:59 2012 -0500"
      },
      "message": "NFS: printks in fs/nfs/ should start with NFS:\n\nMessages like \"Got error -10052 from the server on DESTROY_SESSION. Session\nhas been destroyed regardless\" can be confusing to users who aren\u0027t very\nfamiliar with NFS.\n\nNOTE: This patch ignores any printks() that start by printing __func__ - that\nwill be in a separate patch.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "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": "4929d1d33fdbe8385cdd49ccd23563e9ff247ff8",
      "tree": "6fde948b75129c0152f0cc07ed7e07efa1c9b11c",
      "parents": [
        "7bb782c6ac75898604eb547ed37b05c49b1edf21"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 16:13:11 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: handle NFS idmap pipe PipeFS dentries by network namespace aware routines\n\nThis patch makes NFS idmap pipes dentries allocated and destroyed in network\nnamespace context by PipeFS network namespace aware routines.\nNetwork namespace context is obtained from nfs_client structure.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "30507f58ce11e7664512059c708347d7a7d75271",
      "tree": "91af30e05a4423f4a86ed3852880bdaf45854244",
      "parents": [
        "70fe25b6e1a535f09792d1ed7012036c7bd506b2"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:42 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:26 2012 -0500"
      },
      "message": "SUNRPC: remove RPC PipeFS mount point reference from RPC client\n\nThis is a cleanup patch. We don\u0027t need this reference anymore.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c239d83b9921b8a8005a3bcd23000cfe18acf5c2",
      "tree": "c94e20d8f286e63a2e75b15d413c3a8c5da45b8d",
      "parents": [
        "9beae4677de76cfa4ce8899dc8cd1a1cf8cd8332"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:44:06 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: split SUNPRC PipeFS dentry and private pipe data creation\n\nThis patch is a final step towards to removing PipeFS inode references from\nkernel code other than PipeFS itself. It makes all kernel SUNRPC PipeFS users\ndepends on pipe private data, which state depend on their specific operations,\netc.\nThis patch completes SUNRPC PipeFS preparations and allows to create pipe\nprivate data and PipeFS dentries independently.\nNext step will be making SUNPRC PipeFS dentries allocated by SUNRPC PipeFS\nnetwork namespace aware routines.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d706ed1f50d3f7fae61a177183562179abe8e4bb",
      "tree": "8f66aaf4276a616ac6006c3fb96b13d6b543143d",
      "parents": [
        "d0fe13ba9178d3bb78bbd8577bdedc00f76b7a66"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:43:49 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNPRC: cleanup RPC PipeFS pipes upcall interface\n\nRPC pipe upcall doesn\u0027t requires only private pipe data. Thus RPC inode\nreferences in this code can be removed.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "700920eb5ba4de5417b446c9a8bb008df2b973e0",
      "tree": "8e2caa32a5cdcd47347ff84bc3e95915d000f537",
      "parents": [
        "53999bf34d55981328f8ba9def558d3e104d6e36"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jan 18 15:31:45 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jan 19 14:38:51 2012 +1100"
      },
      "message": "KEYS: Allow special keyrings to be cleared\n\nThe kernel contains some special internal keyrings, for instance the DNS\nresolver keyring :\n\n2a93faf1 I-----     1 perm 1f030000     0     0 keyring   .dns_resolver: empty\n\nIt would occasionally be useful to allow the contents of such keyrings to be\nflushed by root (cache invalidation).\n\nAllow a flag to be set on a keyring to mark that someone possessing the\nsysadmin capability can clear the keyring, even without normal write access to\nthe keyring.\n\nSet this flag on the special keyrings created by the DNS resolver, the NFS\nidentity mapper and the CIFS identity mapper.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6926afd1925a54a13684ebe05987868890665e2b",
      "tree": "14dd0c00c757277d6f28b732c08206376e6dbf31",
      "parents": [
        "e2fecb215b321db0e4a5b2597349a63c07bec42f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 07 13:22:46 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 07 13:22:46 2012 -0500"
      },
      "message": "NFSv4: Save the owner/group name string when doing open\n\n...so that we can do the uid/gid mapping outside the asynchronous RPC\ncontext.\nThis fixes a bug in the current NFSv4 atomic open code where the client\nisn\u0027t able to determine what the true uid/gid fields of the file are,\n(because the asynchronous nature of the OPEN call denies it the ability\nto do an upcall) and so fills them with default values, marking the\ninode as needing revalidation.\nUnfortunately, in some cases, the VFS will do some additional sanity\nchecks on the file, and may override the server\u0027s decision to allow\nthe open because it sees the wrong owner/group fields.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9",
      "tree": "ed543930670a47c3cb911d5580941584509b73f2",
      "parents": [
        "fdc17abbc4b6094b34ee8ff5d91eaba8637594a2"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:10 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:12 2011 -0700"
      },
      "message": "SUNRPC/NFS: make rpc pipe upcall generic\n\nThe same function is used by idmap, gss and blocklayout code. Make it\ngeneric.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e44ba033c5654dbfda53461c9b1f7dd9bd1d198f",
      "tree": "92654523983a855e466a332e104c0e51550a642d",
      "parents": [
        "1816315b10862277a961a70ec394b6607983041d"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jun 20 16:08:07 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Jun 20 16:08:19 2011 +0200"
      },
      "message": "treewide: remove duplicate includes\n\nMany stupid corrections of duplicated includes based on the output of\nscripts/checkincludes.pl.\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\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": "e4fd72a17d2703cfd626c55893ac4ca7e7d81ce9",
      "tree": "6e605693b5dbd9369b6dfc1ccd83cebcacfe9dc1",
      "parents": [
        "f0b851689a5da2354f19bcbbac30cd2cab45c4a1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 22 15:44:31 2011 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:26 2011 -0500"
      },
      "message": "NFSv4: cleanup idmapper functions to take an nfs_server argument\n\n...instead of the nfs_client.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0b851689a5da2354f19bcbbac30cd2cab45c4a1",
      "tree": "3084bdb2c1ceb99888952371c2b19b66064889df",
      "parents": [
        "5cf36cfdc8caa2724738ad0842c5c3dd02f309dc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 22 15:44:31 2011 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:26 2011 -0500"
      },
      "message": "NFSv4: Send unmapped uid/gids to the server if the idmapper fails\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5cf36cfdc8caa2724738ad0842c5c3dd02f309dc",
      "tree": "2a863892f48d4f437c9cf2f3cad5951bf6962bc4",
      "parents": [
        "75247affd7930cc3dcf57f850f0d7898379ef3b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 22 15:44:31 2011 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:26 2011 -0500"
      },
      "message": "NFSv4: If the server sends us a numeric uid/gid then accept it\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5f3e97c9ee6290befb5a2e78baf95ff951a8a34a",
      "tree": "97b70a72e67fb2c1885fa5c5527f7cea5437189e",
      "parents": [
        "beb0f0a9fba1fa98b378329a9a5b0a73f25097ae"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Dec 21 23:49:34 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 04 13:10:39 2011 -0500"
      },
      "message": "nfs: fix mispelling of idmap CONFIG symbol\n\nTrivial, but confusing when you\u0027re trying to grep through this\ncode....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8f0d97b41523fb85a2d230f6794121e5834f0cf9",
      "tree": "8ed8b6320e8c8fa288f94f1b31f3a6e7ed0385bb",
      "parents": [
        "015f0212d51d85bd281a831639a769b4a1a3307a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Oct 28 08:05:57 2010 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 28 11:18:00 2010 -0400"
      },
      "message": "nfs: testing the wrong variable\n\nThe intent was to test \"*desc\" for allocation failures, but it tests\n\"desc\" which is always a valid pointer here.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "955a857e062642cd3ebe1dc7bb38c0f85d8f8f17",
      "tree": "f95fc349c245c4a0a3f6f8fcc5bf02f36a756134",
      "parents": [
        "aa510da5bfe1dfe263215fd0e05dac96e738a782"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Sep 29 15:41:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 07 18:48:49 2010 -0400"
      },
      "message": "NFS: new idmapper\n\nThis patch creates a new idmapper system that uses the request-key function to\nplace a call into userspace to map user and group ids to names.  The old\nidmapper was single threaded, which prevented more than one request from running\nat a single time.  This means that a user would have to wait for an upcall to\nfinish before accessing a cached result.\n\nThe upcall result is stored on a keyring of type id_resolver.  See the file\nDocumentation/filesystems/nfs/idmapper.txt for instructions.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n[Trond: fix up the return value of nfs_idmap_lookup_name and clean up code]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d217caca5d704e48aa5e59aba0b3ad4c7af4fd2",
      "tree": "d8d5fcac59d736f1b8c9769e7d3f5aec6d1b5428",
      "parents": [
        "7d59d1e86531a53d7648726ab8a6a670ecbd8f06"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:24 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:24 2009 -0400"
      },
      "message": "SUNRPC: Replace rpc_client-\u003ecl_dentry and cl_mnt, with a cl_path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b693ba4a338da15db1db4b5ebaa36e4ab9781c82",
      "tree": "6c16b9ef282af0e958fa216310d4552303b525d5",
      "parents": [
        "7b2aa037e878c939676675969983284a02958ae3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:15 2009 -0400"
      },
      "message": "SUNRPC: Constify rpc_pipe_ops...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90dc7d2796edf94a9eaa838321a9734c8513e717",
      "tree": "818c8899555efa3f5598f1ee9aa1fd5a5264c6c4",
      "parents": [
        "1227a74e2e0217a4ca155d1677bdbf5f69e32bed"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 20 13:03:05 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 20 16:15:44 2008 -0500"
      },
      "message": "nfs: fix sparse warnings\n\nfs/nfs/nfs4state.c:788:34: warning: Using plain integer as NULL pointer\nfs/nfs/delegation.c:52:34: warning: Using plain integer as NULL pointer\nfs/nfs/idmap.c:312:12: warning: Using plain integer as NULL pointer\nfs/nfs/callback_xdr.c:257:6: warning: Using plain integer as NULL pointer\nfs/nfs/callback_xdr.c:270:6: warning: Using plain integer as NULL pointer\nfs/nfs/callback_xdr.c:281:6: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d24aae41b4d4141d4f3cffdbf4c31d85637ba691",
      "tree": "837cf221908b34da1a6d5733c68578721f5b0610",
      "parents": [
        "a661b77fc12a172edea4b709e37f8cd58a6bd500"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:49 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:01 2008 -0500"
      },
      "message": "NFS: Use size_t for storing name lengths\n\nClean up: always use the same type when handling buffer lengths.  As a\nbonus, this prevents a mixed sign comparison in idmap_lookup_name.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a661b77fc12a172edea4b709e37f8cd58a6bd500",
      "tree": "ded0b18213329ec39682ad63530e849fafed22c0",
      "parents": [
        "369af0f1166f7a637751110395496cee156b4297"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:42 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:01 2008 -0500"
      },
      "message": "NFS: Fix use of copy_to_user() in idmap_pipe_upcall\n\nThe idmap_pipe_upcall() function expects the copy_to_user() function to\nreturn a negative error value if the call fails, but copy_to_user()\nreturns an unsigned long number of bytes that couldn\u0027t be copied.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "369af0f1166f7a637751110395496cee156b4297",
      "tree": "b42d4285a3e920a77c10ae0de954640efaeeebad",
      "parents": [
        "7df089952fca41cb336733e1167c0a25e5a025d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:35 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:00 2008 -0500"
      },
      "message": "NFS: Clean up fs/nfs/idmap.c\n\nClean up white space damage and use standard kernel coding conventions for\nreturn statements.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fee7f23feaf0845fdfd47d20cddc75652552fbb8",
      "tree": "d5ce2fd3e86f6cf0fa61af8d4a5ecff8f149b796",
      "parents": [
        "ddce40df6e14dd474bbd9daa006dcc290dea6326"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Thu Apr 26 00:29:03 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:01 2007 -0400"
      },
      "message": "NFS: use __set_current_state()\n\nuse __set_current_state(TASK_*) instead of current-\u003estate \u003d TASK_*, in fs/nfs\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01cce933d8b524d9312f5098c70fa1b6ac190572",
      "tree": "7601e02e874a6eb44faca3cdf06664c7377ac687",
      "parents": [
        "2485822d51f8b338d289abe00eb7ce5249794a08"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] nfs: change uses of f_{dentry,vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the nfs\nclient code.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "158998b6fe36f6acef087f574c96d44713499cc9",
      "tree": "afc0f330e51135cdcf05bd8c268bf514165a4e4a",
      "parents": [
        "5dd3177ae5012c1e2ad7a9ffdbd0e0d0de2f60e4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 01:03:17 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:54 2006 -0400"
      },
      "message": "SUNRPC: Make rpc_mkpipe() take the parent dentry as an argument\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "54ceac4515986030c2502960be620198dd8fe25b",
      "tree": "b4ae4305c5652c0fe883ef5ea3243da91dbd2b34",
      "parents": [
        "cf6d7b5de8535a9f0088c5cc28ee2dae87371b4a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:13 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Share NFS superblocks per-protocol per-server per-FSID\n\nThe attached patch makes NFS share superblocks between mounts from the same\nserver and FSID over the same protocol.\n\nIt does this by creating each superblock with a false root and returning the\nreal root dentry in the vfsmount presented by get_sb(). The root dentry set\nstarts off as an anonymous dentry if we don\u0027t already have the dentry for its\ninode, otherwise it simply returns the dentry we already have.\n\nWe may thus end up with several trees of dentries in the superblock, and if at\nsome later point one of anonymous tree roots is discovered by normal filesystem\nactivity to be located in another tree within the superblock, the anonymous\nroot is named and materialises attached to the second tree at the appropriate\npoint.\n\nWhy do it this way? Why not pass an extra argument to the mount() syscall to\nindicate the subpath and then pathwalk from the server root to the desired\ndirectory? You can\u0027t guarantee this will work for two reasons:\n\n (1) The root and intervening nodes may not be accessible to the client.\n\n     With NFS2 and NFS3, for instance, mountd is called on the server to get\n     the filehandle for the tip of a path. mountd won\u0027t give us handles for\n     anything we don\u0027t have permission to access, and so we can\u0027t set up NFS\n     inodes for such nodes, and so can\u0027t easily set up dentries (we\u0027d have to\n     have ghost inodes or something).\n\n     With this patch we don\u0027t actually create dentries until we get handles\n     from the server that we can use to set up their inodes, and we don\u0027t\n     actually bind them into the tree until we know for sure where they go.\n\n (2) Inaccessible symbolic links.\n\n     If we\u0027re asked to mount two exports from the server, eg:\n\n\tmount warthog:/warthog/aaa/xxx /mmm\n\tmount warthog:/warthog/bbb/yyy /nnn\n\n     We may not be able to access anything nearer the root than xxx and yyy,\n     but we may find out later that /mmm/www/yyy, say, is actually the same\n     directory as the one mounted on /nnn. What we might then find out, for\n     example, is that /warthog/bbb was actually a symbolic link to\n     /warthog/aaa/xxx/www, but we can\u0027t actually determine that by talking to\n     the server until /warthog is made available by NFS.\n\n     This would lead to having constructed an errneous dentry tree which we\n     can\u0027t easily fix. We can end up with a dentry marked as a directory when\n     it should actually be a symlink, or we could end up with an apparently\n     hardlinked directory.\n\n     With this patch we need not make assumptions about the type of a dentry\n     for which we can\u0027t retrieve information, nor need we assume we know its\n     place in the grand scheme of things until we actually see that place.\n\nThis patch reduces the possibility of aliasing in the inode and page caches for\ninodes that may be accessed by more than one NFS export. It also reduces the\nnumber of superblocks required for NFS where there are many NFS exports being\nused from a server (home directory server + autofs for example).\n\nThis in turn makes it simpler to do local caching of network filesystems, as it\ncan then be guaranteed that there won\u0027t be links from multiple inodes in\nseparate superblocks to the same cache file.\n\nObviously, cache aliasing between different levels of NFS protocol could still\nbe a problem, but at least that gives us another key to use when indexing the\ncache.\n\nThis patch makes the following changes:\n\n (1) The server record construction/destruction has been abstracted out into\n     its own set of functions to make things easier to get right.  These have\n     been moved into fs/nfs/client.c.\n\n     All the code in fs/nfs/client.c has to do with the management of\n     connections to servers, and doesn\u0027t touch superblocks in any way; the\n     remaining code in fs/nfs/super.c has to do with VFS superblock management.\n\n (2) The sequence of events undertaken by NFS mount is now reordered:\n\n     (a) A volume representation (struct nfs_server) is allocated.\n\n     (b) A server representation (struct nfs_client) is acquired.  This may be\n     \t allocated or shared, and is keyed on server address, port and NFS\n     \t version.\n\n     (c) If allocated, the client representation is initialised.  The state\n     \t member variable of nfs_client is used to prevent a race during\n     \t initialisation from two mounts.\n\n     (d) For NFS4 a simple pathwalk is performed, walking from FH to FH to find\n     \t the root filehandle for the mount (fs/nfs/getroot.c).  For NFS2/3 we\n     \t are given the root FH in advance.\n\n     (e) The volume FSID is probed for on the root FH.\n\n     (f) The volume representation is initialised from the FSINFO record\n     \t retrieved on the root FH.\n\n     (g) sget() is called to acquire a superblock.  This may be allocated or\n     \t shared, keyed on client pointer and FSID.\n\n     (h) If allocated, the superblock is initialised.\n\n     (i) If the superblock is shared, then the new nfs_server record is\n     \t discarded.\n\n     (j) The root dentry for this mount is looked up from the root FH.\n\n     (k) The root dentry for this mount is assigned to the vfsmount.\n\n (3) nfs_readdir_lookup() creates dentries for each of the entries readdir()\n     returns; this function now attaches disconnected trees from alternate\n     roots that happen to be discovered attached to a directory being read (in\n     the same way nfs_lookup() is made to do for lookup ops).\n\n     The new d_materialise_unique() function is now used to do this, thus\n     permitting the whole thing to be done under one set of locks, and thus\n     avoiding any race between mount and lookup operations on the same\n     directory.\n\n (4) The client management code uses a new debug facility: NFSDBG_CLIENT which\n     is set by echoing 1024 to /proc/net/sunrpc/nfs_debug.\n\n (5) Clone mounts are now called xdev mounts.\n\n (6) Use the dentry passed to the statfs() op as the handle for retrieving fs\n     statistics rather than the root dentry of the superblock (which is now a\n     dummy).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7162792b5c0e0f6e91b8997f8e6bbc76ec5420a",
      "tree": "214c0aec3cee41cf872e0c4940fa778f6c0f94e9",
      "parents": [
        "7539bbab8062aadc1db95a22b377146843cfa88f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:09 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:32 2006 -0400"
      },
      "message": "NFS: Return an error when starting the idmapping pipe\n\nReturn an error when starting the idmapping pipe so that we can detect it\nfailing.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "adfa6f980bd46974e6b32b22dd0c45e3f52063f4",
      "tree": "7dbc86985faa0fce0e73103979262c1593ea3a3b",
      "parents": [
        "5ae1fbce142b67bf59e15fb1af96e88a96abde7b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:08 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:31 2006 -0400"
      },
      "message": "NFS: Rename struct nfs4_client to struct nfs_client\n\nRename struct nfs4_client to struct nfs_client so that it can become the basis\nfor a general client record for NFS2 and NFS3 in addition to NFS4.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d4e2747a0412583526a162fbbd6edeeafcceb08",
      "tree": "756180b37a02b504998c646ff027652f80e10bab",
      "parents": [
        "770bfad846ab6628444428467b11fa6773ae9ea1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:07 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:30 2006 -0400"
      },
      "message": "NFS: Fix up split of fs/nfs/inode.c\n\nFix ups for the splitting of the superblock stuff out of fs/nfs/inode.c,\nincluding:\n\n (*) Move the callback tcpport module param into callback.c.\n\n (*) Move the idmap cache timeout module param into idmap.c.\n\n (*) Changes to internal.h:\n\n     (*) namespace-nfs4.c was renamed to nfs4namespace.c.\n\n     (*) nfs_stat_to_errno() is in nfs2xdr.c, not nfs4xdr.c.\n\n     (*) nfs4xdr.c is contingent on CONFIG_NFS_V4.\n\n     (*) nfs4_path() is only uses if CONFIG_NFS_V4 is set.\n\nPlus also:\n\n (*) The sec_flavours[] table should really be const.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8f8e7a50f450fcb86a5b2ffb94543c57a14f8260",
      "tree": "fc48bee347dad1c6100468c2169d34152e2daac1",
      "parents": [
        "68adb0af51ebccb72ffb14d49cb8121b1afc4259"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 14 13:11:15 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 15:50:51 2006 -0400"
      },
      "message": "SUNRPC: Fix dentry refcounting issues with users of rpc_pipefs\n\nrpc_unlink() and rpc_rmdir() will dput the dentry reference for you.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from a05a57effa71a1f67ccbfc52335c10c8b85f3f6a commit)\n"
    },
    {
      "commit": "5d67476fff2df6ff12f60b540fd0e74cf2a668f9",
      "tree": "d1428c5562ce6b24919da18c44746d363e9864e1",
      "parents": [
        "a634904a7de0d3a0bc606f608007a34e8c05bfee"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 31 14:11:48 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 15:50:07 2006 -0400"
      },
      "message": "SUNRPC: make rpc_unlink() take a dentry argument instead of a path\n\nSigne-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from 88bf6d811b01a4be7fd507d18bf5f1c527989089 commit)\n"
    },
    {
      "commit": "8b4bdcf8995dd92b23d2ec22b32aee8fbbb50e1c",
      "tree": "8ebe9ec2ed5cb58592097123cf6b34af997316c7",
      "parents": [
        "8b512d9a88875affe584bb3d2a7a235f84343b9e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "message": "NFS: Store the file system \"fsid\" value in the NFS super block.\n\nThis should enable us to detect if we are crossing a mountpoint in the\ncase where the server is exporting \"nohide\" mounts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c9d5128a10a4974f72674ff3463da4db439e8b04",
      "tree": "304b277f5388e8285f56535db654051d0f4a2fc0",
      "parents": [
        "bd6475454c774bd9dbe6078d94bbf72b1d3b65f4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 20 13:44:11 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:11 2006 -0500"
      },
      "message": "NFS: sem2mutex idmap.c\n\nsemaphore to mutex conversion.\n\nthe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nbuild and boot tested.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd6475454c774bd9dbe6078d94bbf72b1d3b65f4",
      "tree": "641c38589e2aa02a22db229be7d77c9c342a81cb",
      "parents": [
        "a162a6b804b48c605d1fd35e1861a5d32d00ad3f"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Mon Mar 20 13:44:10 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:10 2006 -0500"
      },
      "message": "NFS: kzalloc conversion in fs/nfs\n\nthis converts fs/nfs to kzalloc() usage.\ncompile tested with make allyesconfig\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "12de3b35ea549c5819f287508d7afab0bf3ac44d",
      "tree": "c1b7f96236c4b19bcd911705017bf31bcbc2b605",
      "parents": [
        "24c5d9d7ea5a64fb5f157d17aa2c67a3300f8a08"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:09 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:09 2006 -0500"
      },
      "message": "SUNRPC: Ensure that rpc_mkpipe returns a refcounted dentry\n\nIf not, we cannot guarantee that idmap-\u003eidmap_dentry, gss_auth-\u003edentry and\nclnt-\u003ecl_dentry are valid dentries.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "58df095b732529ade8f4051b41d7c29731afecd6",
      "tree": "917819b96bac91e5daea7a31eb6eba66268952d9",
      "parents": [
        "0065db328533c390fbfb0fe0c46bcf9a278fb99e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:57 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:58 2006 -0500"
      },
      "message": "NFSv4: Allow entries in the idmap cache to expire\n\n If someone changes the uid/gid mapping in userland, then we do eventually\n want those changes to be propagated to the kernel. Currently the kernel\n assumes that it may cache entries forever.\n\n Add an expiration time + garbage collector for idmap entries.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ce79717ce32a9f88c1ddce4b9658556cb59d37a",
      "tree": "7f0c5e4bdbc2ee15b8e902b951d1be200b35411f",
      "parents": [
        "9085bbcb76421a90bea28f4d3d03fa9977319c49"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:21 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:06 2005 -0400"
      },
      "message": "[PATCH] NFS: Header file cleanup...\n\n - Move NFSv4 state definitions into a private header file.\n - Clean up gunk in nfs_fs.h\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
