)]}'
{
  "log": [
    {
      "commit": "7bdf7415a6b8ec31f86b3ad3eaa241257ecb7c4c",
      "tree": "36cabe5902b163a66f94d7971ddba72d9aeaf0ff",
      "parents": [
        "3617e5031b3acec04efaa36566a8111ac8f07325"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Thu May 03 11:47:08 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 03 12:35:33 2012 -0400"
      },
      "message": "auth_gss: the list of pseudoflavors not being parsed correctly\n\ngss_mech_list_pseudoflavors() parses a list of registered mechanisms.\nOn that list contains a list of pseudo flavors which was not being\nparsed correctly, causing only the first pseudo flavor to be found.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cbbb34498f8b2b26cbdc79532c8a2ee5cd1e756a",
      "tree": "faa27244aed8ab803846f85944775b0976a1975d",
      "parents": [
        "71dfc5fa5160bb73752f0731539404569a77faca"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 11:52:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 11:58:51 2012 -0400"
      },
      "message": "SUNRPC: RPC client must use the current utsname hostname string\n\nNow that the rpc client is namespace aware, it needs to use the\nutsname of the process that created it instead of using the\ninit_utsname. Both rpc_new_client and rpc_clone_client need to\nbe fixed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "ea8cfa06795bb30d2ea61f503ef129284492c06a",
      "tree": "48fb210bfaedbf1c488bc0b096f1591ce2c98495",
      "parents": [
        "37629b572cc4e80fc24b4139a24df1a89415d534"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Apr 27 13:00:17 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:00 2012 -0400"
      },
      "message": "SUNRPC: traverse clients tree on PipeFS event\n\nv2: recursion was replaced by loop\n\nIf client is a clone, then it\u0027s parent can not be in the list.\nBut parent\u0027s Pipefs dentries have to be created and destroyed.\n\nNote: event skip helper for clients introduced\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "37629b572cc4e80fc24b4139a24df1a89415d534",
      "tree": "49d77495315e93ad187467837779f88073c37f15",
      "parents": [
        "7aab449e5a2ebfa9c5116e87e16536bc4195e4de"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Apr 20 18:19:56 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:00 2012 -0400"
      },
      "message": "SUNRPC: set per-net PipeFS superblock before notification\n\nThere can be a case, when on MOUNT event RPC client (after it\u0027s dentries were\ncreated) is not longer hold by anyone except notification callback.\nI.e. on release this client will be destoroyed. And it\u0027s dentries have to be\ndestroyed as well. Which in turn requires per-net PipeFS superblock to be set.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7aab449e5a2ebfa9c5116e87e16536bc4195e4de",
      "tree": "c948a96ddd87c2ed708875c961c9e3577737ae08",
      "parents": [
        "a4dff1bc492ee4a2184d384ae8b5bcab5859e150"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Apr 20 18:19:18 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:09:59 2012 -0400"
      },
      "message": "SUNRPC: skip clients with program without PipeFS entries\n\n1) This is sane.\n2) Otherwise there will be soft lockup:\n\ndo {\n\trpc_get_client_for_event (clnt-\u003ecl_dentry \u003d\u003d NULL \u003d\u003d\u003e choose)\n\t__rpc_pipefs_event (clnt-\u003ecl_program-\u003epipe_dir_name \u003d\u003d NULL \u003d\u003d\u003e return)\n} while (1)\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a4dff1bc492ee4a2184d384ae8b5bcab5859e150",
      "tree": "b6bdb438cfa7c041d6e0a7b42f8c10c213961215",
      "parents": [
        "5794d21ef4639f0e33440927bb903f9598c21e92"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Apr 20 18:11:02 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:09:59 2012 -0400"
      },
      "message": "SUNRPC: skip dead but not buried clients on PipeFS events\n\nThese clients can\u0027t be safely dereferenced if their counter in 0.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "adae0fe0ea87e8fb1a72dde304937c60759b495f",
      "tree": "27cab6b39b71e4264779a3123b62d49e6afb0a17",
      "parents": [
        "6c216ec636f75d834461be15f83ec41a6759bd2b"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Apr 05 21:04:37 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 18 11:05:48 2012 -0400"
      },
      "message": "SUNRPC: register PipeFS file system after pernet sybsystem\n\nPipeFS superblock creation routine relays on SUNRPC pernet data presense, which\nis created on register_pernet_subsys() call in SUNRPC module init function.\nRegistering of PipeFS filesystem prior to registering of per-net subsystem\nleads to races (mount of PipeFS can dereference uninitialized data).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "71db34fc4330f7c784397acb9f1e6ee7f7b32eb2",
      "tree": "77dd08f6f778a799dcd0c48eb72d0742349df235",
      "parents": [
        "50483c3268918ee51a56d1baa39b9149d2d0d521",
        "797a9d797f8483bb67f265c761b76dcd5a077a23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from Bruce Fields:\n\nHighlights:\n - Benny Halevy and Tigran Mkrtchyan implemented some more 4.1 features,\n   moving us closer to a complete 4.1 implementation.\n - Bernd Schubert fixed a long-standing problem with readdir cookies on\n   ext2/3/4.\n - Jeff Layton performed a long-overdue overhaul of the server reboot\n   recovery code which will allow us to deprecate the current code (a\n   rather unusual user of the vfs), and give us some needed flexibility\n   for further improvements.\n - Like the client, we now support numeric uid\u0027s and gid\u0027s in the\n   auth_sys case, allowing easier upgrades from NFSv2/v3 to v4.x.\n\nPlus miscellaneous bugfixes and cleanup.\n\nThanks to everyone!\n\nThere are also some delegation fixes waiting on vfs review that I\nsuppose will have to wait for 3.5.  With that done I think we\u0027ll finally\nturn off the \"EXPERIMENTAL\" dependency for v4 (though that\u0027s mostly\nsymbolic as it\u0027s been on by default in distro\u0027s for a while).\n\nAnd the list of 4.1 todo\u0027s should be achievable for 3.5 as well:\n\n   http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues\n\nthough we may still want a bit more experience with it before turning it\non by default.\n\n* \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux: (55 commits)\n  nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n  nfsd4: use auth_unix unconditionally on backchannel\n  nfsd: fix NULL pointer dereference in cld_pipe_downcall\n  nfsd4: memory corruption in numeric_name_to_id()\n  sunrpc: skip portmap calls on sessions backchannel\n  nfsd4: allow numeric idmapping\n  nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n  nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n  nfsd: add the infrastructure to handle the cld upcall\n  nfsd: add a header describing upcall to nfsdcld\n  nfsd: add a per-net-namespace struct for nfsd\n  sunrpc: create nfsd dir in rpc_pipefs\n  nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n  nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n  NFSD: Fix nfs4_verifier memory alignment\n  NFSD: Fix warnings when NFSD_DEBUG is not defined\n  nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)\n  nfsd: rename \u0027int access\u0027 to \u0027int may_flags\u0027 in nfsd_open()\n  ext4: return 32/64-bit dir name hash according to usage type\n  fs: add new FMODE flags: FMODE_32bithash and FMODE_64bithash\n  ...\n"
    },
    {
      "commit": "58df9b387c5f240566ac15b7fa5136f5a35bb19a",
      "tree": "cd3b216936037e67d71958cc3ee8060e1f628f4f",
      "parents": [
        "8563f8786ee389c7861938d1d25336706f6de187",
        "14977489ffdb80d4caf5a184ba41b23b02fbacd9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 19:02:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 19:02:35 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes for Linux 3.4 from Trond Myklebust\n\nHighlights include:\n- Fix infinite loops in the mount code\n- Fix a userspace buffer overflow in __nfs4_get_acl_uncached\n- Fix a memory leak due to a double reference count in rpcb_getport_async()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\n* tag \u0027nfs-for-3.4-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n  NFSv4.1: Fix layoutcommit error handling\n  NFSv4: Fix two infinite loops in the mount code\n  SUNRPC: Use the already looked-up xprt in rpcb_getport_async()\n  NFS4.1: remove duplicate variable declaration in filelayout_clear_request_commit\n  Fix length of buffer copied in __nfs4_get_acl_uncached\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": "864cf9bf99f62d2095c8e6cc3a87af80b263984e",
      "tree": "212665144bc8140dc177c41954d0eb691b602d83",
      "parents": [
        "d44fc387997c0750125cfb0c2c803a3171b649f4"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Mar 27 13:46:32 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 16:33:35 2012 -0400"
      },
      "message": "SUNRPC: Use the already looked-up xprt in rpcb_getport_async()\n\nrbcb_getport_async() was looking up the rpc_xprt (reference++) and then\nlater looking it up again (reference++) to pass through the\nrpcbind_args.  The xprt would only be dereferenced once, when we were\ndone with the rpcbind_args (reference--).  This leaves an extra\nreference to the transport that would never go away.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "92769108f5382a0bdb4c35eb80c183fb7797cfae",
      "tree": "8a3b8d9a2e7e23536fbcd374592341e968d2a1af",
      "parents": [
        "e9541ce8efc22c233a045f091c2b969923709038"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Mar 23 15:25:03 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "sunrpc: skip portmap calls on sessions backchannel\n\nThere\u0027s obviously no point to doing portmap calls over the sessions\nbackchannel.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b3537c35c21f0e6750aa8bd786949b55509c6d0d",
      "tree": "305421cad89e41a4feb22aa7e302124249a25ce7",
      "parents": [
        "2a4317c55438d8589a015d42912454ede12031f0"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:04 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "sunrpc: create nfsd dir in rpc_pipefs\n\nAdd a new top-level dir in rpc_pipefs to hold the pipe for the clientid\nupcall.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1df00640c9111c881633d9b219f18e66c52599ec",
      "tree": "e36d3924d84f47ec93f6650ff1fd5b8ea7d10d24",
      "parents": [
        "ab4684d1560f8d77f6ce82bd3f1f82937070d397",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 21 16:42:14 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:48:54 2012 -0400"
      },
      "message": "Merge nfs containerization work from Trond\u0027s tree\n\nThe nfs containerization work is a prerequisite for Jeff Layton\u0027s reboot\nrecovery rework.\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": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "9b78145c0f280d4f01c460d6251eab2584181fa9",
      "tree": "09f0f8b13541db68f23e73be122129a9ee4e4dcb",
      "parents": [
        "4a6862b3649d705bf41a36e3c7943d0322a9ee27"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Mon Feb 20 13:07:57 2012 -0600"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:47 2012 -0400"
      },
      "message": "xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n\nThe xprtrdma FRMR mapping logic assumes that a segment is \u003c\u003d PAGE_SIZE.\nThis is not true for NFS4.\n\nSigned-off-by: Tom Tucker \u003ctom@ogc.us\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4a6862b3649d705bf41a36e3c7943d0322a9ee27",
      "tree": "d4e53e6f1c1b53716a373bb316e408653d28a8ef",
      "parents": [
        "18d98f6c04991dd3c12acf6f39cea40e9510640a"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Mon Feb 20 13:07:42 2012 -0600"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:47 2012 -0400"
      },
      "message": "xprtrdma: The transport should not bug-check when a dup reply is received\n\nThe client side RDMA transport will bug check if it receives a duplicate\nreply, instead we should simply drop the duplicate reply.\n\nSigned-off-by: Tom Tucker \u003ctom@ogc.us\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ffa94db6042e6fd014ae0bed8832ac707ef2afe9",
      "tree": "c2e98dc23546be53b311bf4eb010e824709e4d76",
      "parents": [
        "9304a8120a6ac06d08874d2aec76f52d3376dfe4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 09:22:00 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:44 2012 -0400"
      },
      "message": "SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n\nStephen Rothwell reports:\nnet/sunrpc/rpcb_clnt.c: In function \u0027rpcb_enc_mapping\u0027:\nnet/sunrpc/rpcb_clnt.c:820:19: warning: unused variable \u0027task\u0027 [-Wunused-variable]\nnet/sunrpc/rpcb_clnt.c: In function \u0027rpcb_dec_getport\u0027:\nnet/sunrpc/rpcb_clnt.c:837:19: warning: unused variable \u0027task\u0027 [-Wunused-variable]\nnet/sunrpc/rpcb_clnt.c: In function \u0027rpcb_dec_set\u0027:\nnet/sunrpc/rpcb_clnt.c:860:19: warning: unused variable \u0027task\u0027 [-Wunused-variable]\nnet/sunrpc/rpcb_clnt.c: In function \u0027rpcb_enc_getaddr\u0027:\nnet/sunrpc/rpcb_clnt.c:892:19: warning: unused variable \u0027task\u0027 [-Wunused-variable]\nnet/sunrpc/rpcb_clnt.c: In function \u0027rpcb_dec_getaddr\u0027:\nnet/sunrpc/rpcb_clnt.c:914:19: warning: unused variable \u0027task\u0027 [-Wunused-variable]\nfs/lockd/svclock.c:49:20: warning: \u0027nlmdbg_cookie2a\u0027 declared \u0027static\u0027 but never defined [-Wunused-function]\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e27d359e9b7e446190362cd5c8fe281d02194896",
      "tree": "5dece1801337b32e9d4ecc03e487a95856b413fa",
      "parents": [
        "3b3be88d67cc17d0f0ab6edaf131516793fc947e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 18 14:07:42 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 13:08:26 2012 -0400"
      },
      "message": "SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n\nThis allows us to turn on/off the dprintk() debugging interfaces for\nthose distributions that don\u0027t ship the \u0027rpcdebug\u0027 utility.\nIt also allows us to add Kbuild dependencies. Specifically, we already\nknow that dprintk() in general relies on CONFIG_SYSCTL. Now it turns out\nthat the NFS dprintks depend on CONFIG_CRC32 after we added support\nfor the filehandle hash.\n\nReported-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b85417860172ff693dc115d7999805fc240cec1c",
      "tree": "e7f1c8ac18958e7bcb9182caa8639104384e44f9",
      "parents": [
        "6114eab535ab49239e0a6ce08eb9243664aef993"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:40 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "sunrpc: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "540a0f7584169651f485e8ab67461fcb06934e38",
      "tree": "5a5dede243b80f1dca55f651ff2a78eaccff5c50",
      "parents": [
        "e49a29bd0eacce9d4956c4daf777a330115b369d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 19 13:39:35 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 19 14:15:02 2012 -0400"
      },
      "message": "SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n\nThe problem is that for the case of priority queues, we\nhave to assume that __rpc_remove_wait_queue_priority will move new\nelements from the tk_wait.links lists into the queue-\u003etasks[] list.\nWe therefore cannot use list_for_each_entry_safe() on queue-\u003etasks[],\nsince that will skip these new tasks that __rpc_remove_wait_queue_priority\nis adding.\n\nWithout this fix, rpc_wake_up and rpc_wake_up_status will both fail\nto wake up all functions on priority wait queues, which can result\nin some nasty hangs.\n\nReported-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "0097143c12e279f5d454e0f636a02afff102cc6a",
      "tree": "4c8c6bc4d3901f1d210d5d3d900368be1705f217",
      "parents": [
        "11588f493a2441f09ceb2088d07cc012b53cbf75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 13:29:05 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 13:37:16 2012 -0400"
      },
      "message": "SUNRPC: Don\u0027t use variable length automatic arrays in kernel code\n\nReplace the variable length array in the RPCSEC_GSS crypto code with\na fixed length one. The size should be bounded by the variable\nGSS_KRB5_MAX_BLOCKSIZE, so use that.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "09acfea5d8de419ebe84be43b08f7b79c965215f",
      "tree": "16f7ef15b00d8601917de6812b9ac951c9458ef6",
      "parents": [
        "17280175c587469b34757263c7cfc608f0ea2334"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 15:22:54 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 19:30:02 2012 -0400"
      },
      "message": "SUNRPC: Fix a few sparse warnings\n\nnet/sunrpc/svcsock.c:412:22: warning: incorrect type in assignment\n(different address spaces)\n - svc_partial_recvfrom now takes a struct kvec, so the variable\n   save_iovbase needs to be an ordinary (void *)\n\nMake a bunch of variables in net/sunrpc/xprtsock.c static\n\nFix a couple of \"warning: symbol \u0027foo\u0027 was not declared. Should it be\nstatic?\" reports.\n\nFix a couple of conflicting function declarations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e738fdce22f9a7edf20281fd2d768ef9785922e",
      "tree": "634895e561ad33ac4be20adaf610f420e0de5ace",
      "parents": [
        "4e0038b6b246e4145fc4a53dca61a556d17bc52c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:14 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:53 2012 -0500"
      },
      "message": "SUNRPC: Add API to acquire source address\n\nNFSv4.0 clients must send endpoint information for their callback\nservice to NFSv4.0 servers during their first contact with a server.\nTraditionally on Linux, user space provides the callback endpoint IP\naddress via the \"clientaddr\u003d\" mount option.\n\nDuring an NFSv4 migration event, it is possible that an FSID may be\nmigrated to a destination server that is accessible via a different\nsource IP address than the source server was.  The client must update\ncallback endpoint information on the destination server so that it can\nmaintain leases and allow delegation.\n\nWithout a new \"clientaddr\u003d\" option from user space, however, the\nkernel itself must construct an appropriate IP address for the\ncallback update.  Provide an API in the RPC client for upper layer\nRPC consumers to acquire a source address for a remote.\n\nThe mechanism used by the mount.nfs command is copied: set up a\nconnected UDP socket to the designated remote, then scrape the source\naddress off the socket.  We are careful to select the correct network\nnamespace when setting up the temporary UDP socket.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4e0038b6b246e4145fc4a53dca61a556d17bc52c",
      "tree": "67055f0c5dca7a4a24b062b1320675ad468d7b69",
      "parents": [
        "2446ab6070861aba2dd9229463ffbc40016a9f33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:01:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:41 2012 -0500"
      },
      "message": "SUNRPC: Move clnt-\u003ecl_server into struct rpc_xprt\n\nWhen the cl_xprt field is updated, the cl_server field will also have\nto change.  Since the contents of cl_server follow the remote endpoint\nof cl_xprt, just move that field to the rpc_xprt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: simplify check_gss_callback_principal(), whitespace changes ]\n[ cel: forward ported to 3.4 ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2446ab6070861aba2dd9229463ffbc40016a9f33",
      "tree": "2e366c3236788936b9f4f58c0787ae01c265f4a4",
      "parents": [
        "a3ca5651cb5eebe2e56e510bbf5cd60abc301c9f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:00:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:38 2012 -0500"
      },
      "message": "SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field\n\nA migration event will replace the rpc_xprt used by an rpc_clnt.  To\nensure this can be done safely, all references to cl_xprt must now use\na form of rcu_dereference().\n\nSpecial care is taken with rpc_peeraddr2str(), which returns a pointer\nto memory whose lifetime is the same as the rpc_xprt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: fix lockdep splats and layering violations ]\n[ cel: forward ported to 3.4 ]\n[ cel: remove rpc_max_reqs(), add rpc_net_ns() ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "591ad7feaec5417681b4112f8df52fc43bb7c92e",
      "tree": "0555df9d98236f6a63ca109632a277c4458842e3",
      "parents": [
        "2c9030eef9dbd0d737a7f55646da70d217fd6255"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:54 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:37:48 2012 -0500"
      },
      "message": "SUNRPC: move waitq from RPC pipe to RPC inode\n\nCurrently, wait queue, used for polling of RPC pipe changes from user-space,\nis a part of RPC pipe. But the pipe data itself can be released on NFS umount\nprior to dentry-inode pair, connected to it (is case of this pair is open by\nsome process).\nThis is not a problem for almost all pipe users, because all PipeFS file\noperations checks pipe reference prior to using it.\nExcept evenfd. This thing registers itself with \"poll\" file operation and thus\nhas a reference to pipe wait queue. This leads to oopses on destroying eventfd\nafter NFS umount (like rpc_idmapd do) since not pipe data left to the point\nalready.\nThe solution is to wait queue from pipe data to internal RPC inode data. This\nlooks more logical, because this wiat queue used only for user-space processes,\nwhich already holds inode reference.\n\nNote: upcalls have to get pipe-\u003edentry prior to dereferecing wait queue to make\nsure, that mount point won\u0027t disappear from underneath us.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c9030eef9dbd0d737a7f55646da70d217fd6255",
      "tree": "69f1eafced52fef9d3939d8e1246d5063d14649a",
      "parents": [
        "e9dbca8d732e20b8d31a3094a8669c014e7ee262"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:45 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:37:09 2012 -0500"
      },
      "message": "SUNRPC: check RPC inode\u0027s pipe reference before dereferencing\n\nThere are 2 tightly bound objects: pipe data (created for kernel needs, has\nreference to dentry, which depends on PipeFS mount/umount) and PipeFS\ndentry/inode pair (created on mount for user-space needs). They both\nindependently may have or have not a valid reference to each other.\nThis means, that we have to make sure, that pipe-\u003edentry reference is valid on\nupcalls, and dentry-\u003epipe reference is valid on downcalls. The latter check is\nabsent - my fault.\nIOW, PipeFS dentry can be opened by some process (rpc.idmapd for example), but\nit\u0027s pipe data can belong to NFS mount, which was unmounted already and thus\npipe data was destroyed.\nTo fix this, pipe reference have to be set to NULL on rpc_unlink() and checked\non PipeFS file operations instead of pipe-\u003edentry check.\n\nNote: PipeFS \"poll\" file operation will be updated in next patch, because it\u0027s\nlogic is more complicated.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "da3b462296e421e8f54b54b7d2706488661c36e2",
      "tree": "9e1330dc3ffafa9ae758949f03b592b12a46ed84",
      "parents": [
        "7df529af5fb4b4064f8cd62629e259ac79c0b4ca"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:29 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:36:16 2012 -0500"
      },
      "message": "SUNRPC: release per-net clients lock before calling PipeFS dentries creation\n\nv3:\n1) Lookup for client is performed from the beginning of the list on each PipeFS\nevent handling operation.\n\nLockdep is sad otherwise, because inode mutex is taken on PipeFS dentry\ncreation, which can be called on mount notification, where this per-net client\nlock is taken on clients list walk.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cec56c8ff5e28f58ff13041dca7853738ae577a1",
      "tree": "fb21c7337e046cb2361faca4931907e28fadcb5d",
      "parents": [
        "2c8bd7e0d1b66b2f8f267fd6ab62a30569c792c0"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Wed Feb 15 11:30:00 2012 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Feb 17 18:38:50 2012 -0500"
      },
      "message": "svcrdma: Cleanup sparse warnings in the svcrdma module\n\nThe svcrdma transport was un-marshalling requests in-place. This resulted\nin sparse warnings due to __beXX data containing both NBO and HBO data.\n\nThe code has been restructured to do byte-swapping as the header is\nparsed instead of when the header is validated immediately after receipt.\n\nAlso moved extern declarations for the workqueue and memory pools to the\nprivate header file.\n\nSigned-off-by: Tom Tucker \u003ctom@ogc.us\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0a702195234eb77c4097148285cccf7f095de9cf",
      "tree": "40fead6b131fb3c24e3cd85e39fbba8057196457",
      "parents": [
        "b6bf6e7d6f6fae1ddcae9e02dfe676bdc8fe892c"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 13:15:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 13:39:47 2012 -0500"
      },
      "message": "NFS: include filelayout DS rpc stats in mountstats\n\nInclude RPC statistics from all data servers in /proc/self/mountstats for pNFS\nfilelayout mounts.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15a4520621824a3c2eb2de2d1f3984bc1663d3c8",
      "tree": "0ff258cf98774c72793ece98f2605f3fe132e352",
      "parents": [
        "1d96e80faff57b9eefa283b35716a384bbb3d5b3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Feb 14 16:19:18 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 14:55:27 2012 -0500"
      },
      "message": "SUNRPC: add sending,pending queue and max slot to xprt stats\n\nWith static RPC slots, the xprt backlog queue stats were useful in showing\nwhen the transport (TCP) was starved by lack of RPC slots. The new dynamic\nRPC slot code, commit d9ba131d8f58c0d2ff5029e7002ab43f913b36f9, always\nprovides an RPC slot and so only uses the xprt backlog queue when the\ntcp_max_slot_table_entries value has been hit or when an allocation error\noccurs. All requests are now placed on the xprt sending or pending queue which\nneed to be monitored for debugging.\n\nThe max_slot stat shows the maximum number of dynamic RPC slots reached which is\nuseful when debugging performance issues.\n\nAdd the new fields at the end of the mountstats xprt stanza so that mountstats\noutputs the previous correct values and ignores the new fields. Bump\nNFS_IOSTATS_VERS.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1d96e80faff57b9eefa283b35716a384bbb3d5b3",
      "tree": "dbf7bcfa38be395d348c511a7d137d56d596e8cc",
      "parents": [
        "b4b9a0c1c89464dabafef974960f509ce33ae1c0"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Feb 16 17:42:12 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 14:00:48 2012 -0500"
      },
      "message": "SUNRPC: init per-net rpcbind spinlock\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f09c24216cd789653eb8efbf8be88409eb8d581",
      "tree": "8ad3049b8303e4537f03ce3c11abdad468cd0803",
      "parents": [
        "685f50f9188ac1e8244d0340a9d6ea36b6136cec"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 22:01:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "SUNRPC: Ensure that we can trace waitqueues when !defined(CONFIG_SYSCTL)\n\nThe tracepoint code relies on the queue-\u003ename being defined in order to\nbe able to display the name of the waitqueue on which an RPC task is\nsleeping.\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "bb2224df5ffe4f864f5b696199b17db1ce77bc0a",
      "tree": "1aa476668966b94ea5f5e399ea15f3aede936f47",
      "parents": [
        "a9c5d73a8d8cb37601f8c39b35b9b4128e1a5254"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:05 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:47 2012 -0500"
      },
      "message": "Lockd: per-net up and down routines introduced\n\nThis patch introduces per-net Lockd initialization and destruction routines.\nThe logic is the same as in global Lockd up and down routines. Probably the\nsolution is not the best one. But at least it looks clear.\nSo per-net \"up\" routine are called only in case of lockd is running already. If\nper-net resources are not allocated yet, then service is being registered with\nlocal portmapper and lockd sockets created.\nPer-net \"down\" routine is called on every lockd_down() call in case of global\nusers counter is not zero.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "074d0f67cfe0af4927ce49560f403096b490c47f",
      "tree": "89e578ca4f35a1bddb6cc7c8547ed65744d7bb35",
      "parents": [
        "7b147f1ff267d12e0d189ca3d4156ed5a76b8d99"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:25 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:46 2012 -0500"
      },
      "message": "SUNRPC: service shutdown function in network namespace context introduced\n\nThis function is enough for releasing resources, allocated for network\nnamespace context, in case of sharing service between them.\nIOW, each service \"user\" (LockD, NFSd, etc), which wants to share service\nbetween network namespaces, have to release related resources by the function,\nintroduced in this patch, instead of performing service shutdown (of course in\ncase the service is shared already to the moment of release).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7b147f1ff267d12e0d189ca3d4156ed5a76b8d99",
      "tree": "651496e6e08521de934b2ad0953e2b81d3f5da2f",
      "parents": [
        "3a22bf506c9df47e93e8dc8a68d86cd8ae384d98"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:17 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:45 2012 -0500"
      },
      "message": "SUNRPC: service destruction in network namespace context\n\nv2: Added comment to BUG_ON\u0027s in svc_destroy() to make code looks clearer.\n\nThis patch introduces network namespace filter for service destruction\nfunction.\nNothing special here - just do exactly the same operations, but only for\ntranports in passed networks namespace context.\nBTW, BUG_ON() checks for empty service transports lists were returned into\nsvc_destroy() function. This is because of swithing generic svc_close_all() to\nnetworks namespace dependable svc_close_net().\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a22bf506c9df47e93e8dc8a68d86cd8ae384d98",
      "tree": "4dbbd631e3083969d265c8f2a0782c395882e09f",
      "parents": [
        "6f5133652eaab6fbd88bdb1b1fd2236fd82583cb"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:08 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:45 2012 -0500"
      },
      "message": "SUNRPC: clear svc transports lists helper introduced\n\nThis patch moves service transports deletion from service sockets lists to\nseparated function.\nThis is a precursor patch, which would be usefull with service shutdown in\nnetwork namespace context, introduced later in the series.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f5133652eaab6fbd88bdb1b1fd2236fd82583cb",
      "tree": "c1cd295993d8d8f4808bed47bada155d9189a2ed",
      "parents": [
        "ef159e9177cc5a09e6174796dde0b2d243ddf28b"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 14:09:00 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:44 2012 -0500"
      },
      "message": "SUNRPC: clear svc pools lists helper introduced\n\nThis patch moves removing of service transport from it\u0027s pools ready lists to\nseparated function. Also this clear is now done with list_for_each_entry_safe()\nhelper.\nThis is a precursor patch, which would be usefull with service shutdown in\nnetwork namespace context, introduced later in the series.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "87e3c0553fcbea79bf9f17fc5694484ecf3ae5e8",
      "tree": "7d0dcc070b4fdb9cbb7defa212feb4ba82519a26",
      "parents": [
        "b01dd1d8fae6178cbec374b90da2e4a3b8dce9ba"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Feb 01 10:46:20 2012 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:47:59 2012 -0500"
      },
      "message": "SUNRPC: remove an unneeded NULL check in xprt_connect()\n\nWe check \"task-\u003etk_rqstp\" and then we dereference it without checking on\nthe next line.  The only caller is call_connect() and that has a check\nwhich prevents it from calling xprt_connect() with a NULL.\n\n                if (task-\u003etk_status \u003c 0)\n                        return;\n\nIf \"task-\u003etk_rqstp\" were NULL then \"tk_status\" would be -EAGAIN.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5753cba17611af108995672c4e2d978014e17a56",
      "tree": "5b0588c60045b155e9dc79e01490b248e19b6c2c",
      "parents": [
        "85c0d24f026ca6935897694be4eb0b5c514b907d"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Mon Feb 06 10:08:08 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 10:37:53 2012 -0500"
      },
      "message": "SUNRPC: Adding status trace points\n\nThis patch adds three trace points to the status routines\nin the sunrpc state machine.\n\nThe goal of these trace points is to give an Admin\nthe ability to check on binding status or connection\nstatus to see if there is a potential problem.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f912ceb7ed1df1ed98ad2c28995dd66529a690a",
      "tree": "57ffee2d8b7af05fead0259fe59925312104a643",
      "parents": [
        "3476964dba98641716173445aade77d40cc6f27a"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 20 16:55:39 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Feb 03 14:26:43 2012 -0500"
      },
      "message": "SUNPRC: remove marking service temporary sockets with XPT_CHNGBUF\n\nThis is a cleanup patch.\nService temporary sockets can be TCP or RDMA only. But XPT_CHNGBUF service\nsocket flag is checked only for UDP sockets on receive.\nThus (if I don\u0027t miss something non-obvious) this bit raising for temporary\nsockets can be removed.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3476964dba98641716173445aade77d40cc6f27a",
      "tree": "e63392ae1073db8c91e96cab7c0127960c629925",
      "parents": [
        "6d8d17499810479eabd10731179c04b2ca22152f"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Jan 20 10:48:18 2012 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Feb 03 14:26:42 2012 -0500"
      },
      "message": "nfsd: remove some unneeded checks\n\nWe check for zero length strings in the caller now, so these aren\u0027t\nneeded.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6d8d17499810479eabd10731179c04b2ca22152f",
      "tree": "b0c0324a0735ee98fc967ff034fc60e8035cdac8",
      "parents": [
        "62aa2b537c6f5957afd98e29f96897419ed5ebab"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Jan 18 12:56:02 2012 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Feb 03 14:26:42 2012 -0500"
      },
      "message": "nfsd: don\u0027t allow zero length strings in cache_parse()\n\nThere is no point in passing a zero length string here and quite a\nfew of that cache_parse() implementations will Oops if count is\nzero.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d3b773e4fd80524ac27802fcf11cfd9ed1d5491f",
      "tree": "eb0577d113cdd4b84b0f8e82616ccc6a8988a77b",
      "parents": [
        "d36b7cf7c626749efc75f49fb0468e8c3c0c1bbd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 23 13:22:45 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:22 2012 -0500"
      },
      "message": "SUNRPC: fixup for namespace changes\n\nFixes this build error when CONFIG_NET_NS is not set:\n\nnet/sunrpc/svcsock.c: In function \u0027svc_setup_socket\u0027:\nnet/sunrpc/svcsock.c:1412:40: error: \u0027struct sock_common\u0027 has no member named \u0027skc_net\u0027\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82b0a4c3c171b180629696e8d1d5f52516f711e6",
      "tree": "60aab7bc3a767e3c017a228597eaaeedeffe4c00",
      "parents": [
        "a613fa168afc19179a7547fbba45644c5b6912bf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 20 14:52:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:21 2012 -0500"
      },
      "message": "SUNRPC: Add trace events to the sunrpc subsystem\n\nAdd declarations to allow tracing of RPC call creation, running, sleeping,\nand destruction.\n\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": "080b794ce5ad318ce34c52abaedf1bc6788a5abb",
      "tree": "f44c01823db805ae30e866d458dc5c6f7002750a",
      "parents": [
        "6eac7d3f45a2519283d38bf670cb6968230124f8"
      ],
      "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 rpc_program-\u003ename\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6eac7d3f45a2519283d38bf670cb6968230124f8",
      "tree": "af5542a51d63d971d2fe1af95e27617dc4947104",
      "parents": [
        "4cb54ca2069903121e4c03ec427147c47bed5755"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 20 13:53:37 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:19 2012 -0500"
      },
      "message": "SUNRPC: constify rpc_clnt fields cl_server and cl_protname\n\n...and get rid of the superfluous cl_inline_name.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4cb54ca2069903121e4c03ec427147c47bed5755",
      "tree": "2d156d3d9f37a385a27f444f315c0498f0e9475f",
      "parents": [
        "babea479b75a9ea3d84ace6d880513e18397a8bb"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 20 16:50:53 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:19 2012 -0500"
      },
      "message": "SUNRPC: search for service transports in network namespace context\n\nService transports are parametrized by network namespace. And thus lookup of\ntransport instance have to take network namespace into account.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "246590f56c9f281d60b7dd7efa0818307e65600d",
      "tree": "aa48cef874939af0de0e78bf51d983e3ed8d50f6",
      "parents": [
        "cc9f4be5ffb86b4b483eeb15eb08aebc60a1b9a9"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Dec 06 16:42:49 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:18 2012 -0500"
      },
      "message": "SUNRPC: register service stats /proc entries in passed network namespace context\n\nThis patch makes it possible to create NFSd program entry (\"/proc/net/rpc/nfsd\")\nin passed network namespace context instead of hard-coded \"init_net\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec7652aaf261b7dcb368344369df1e99886c7cd2",
      "tree": "0d21ca45022adb1221690cb5e368bc17d3f58531",
      "parents": [
        "170942726b16a1dfcc605f0b510b9663b66fa7a3"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Dec 06 16:42:40 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:17 2012 -0500"
      },
      "message": "SUNRPC: register RPC stats /proc entries in passed network namespace context\n\nThis patch makes it possible to create NFS program entry (\"/proc/net/rpc/nfs\")\nin passed network namespace context instead of hard-coded \"init_net\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c5f846747526e2b83c5f1b8e69016be0e2e87c0",
      "tree": "730240d3ab15aaaee9e45cbb351f637e4ad122f4",
      "parents": [
        "d05cc10406893dec65b8e89746e7d4c333935415"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 19 21:42:53 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:16 2012 -0500"
      },
      "message": "SUNRPC: generic cache register routines removed\n\nAll cache users now uses network-namespace-aware routines, so generic ones\nare obsolete.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d05cc10406893dec65b8e89746e7d4c333935415",
      "tree": "e9ec5767d68fb461447bf577da840a00b451cc64",
      "parents": [
        "a1db410d0bbadc49943f0fcddb21702ceb429396"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 19 21:42:45 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:16 2012 -0500"
      },
      "message": "SUNRPC: ip map cache per network namespace cleanup\n\nThis patch converts ip_map_cache per network namespace implemenetation to the\nsame view, as other caches done in the series.\nBesides generalization, code becomes shorter with this patch.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a1db410d0bbadc49943f0fcddb21702ceb429396",
      "tree": "09f1a94d7c4ef70d6122f936b1fa309996f170ee",
      "parents": [
        "73393232d6a425b6bb4cee590e3e66fc52532a15"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 19 21:42:37 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:15 2012 -0500"
      },
      "message": "SUNRPC: create GSS auth cache per network namespace\n\nThis patch makes GSS auth cache details allocated and registered per network\nnamespace context.\nThus with this patch rsi_cache and rsc_cache contents for network namespace \"X\"\nare controlled from proc file system mount for the same network namespace \"X\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "73393232d6a425b6bb4cee590e3e66fc52532a15",
      "tree": "e0df6bd41e665a307856b29c216473969fe88575",
      "parents": [
        "0a402d5a653ee2b613aaba3092a87b1e964622ce"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 19 21:42:29 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:15 2012 -0500"
      },
      "message": "SUNRPC: create unix gid cache per network namespace\n\nv2:\n1) fixed silly usage of template cache as a real one (this code left from\nstatic global cache for all)\n\nThis patch makes unix_gid_cache cache detail allocated and registered per\nnetwork namespace context.\nThus with this patch unix_gid_cache contents for network namespace \"X\" are\ncontrolled from proc file system mount for the same network namespace \"X\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0a402d5a653ee2b613aaba3092a87b1e964622ce",
      "tree": "160a5942e42d7a537859e318837bf475bc8123e0",
      "parents": [
        "5ecebb7c7fd737cf387a552994df319c063973db"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 19 21:42:21 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:14 2012 -0500"
      },
      "message": "SUNRPC: cache creation and destruction routines introduced\n\nThis patch prepares infrastructure for network namespace aware cache detail\nallocation.\nOne note about adding network namespace link to cache structure. It\u0027s going to\nbe used later in NFS DNS cache parsing routine (nfs_dns_parse for rpc_pton()\ncall).\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5ecebb7c7fd737cf387a552994df319c063973db",
      "tree": "5442ab61f417961b8908f1d2e82f837204830b80",
      "parents": [
        "bee42f688c915b510a4aabae4f7a99457137d6f3"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 14:03:04 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:14 2012 -0500"
      },
      "message": "SUNRPC: unregister service on creation in current network namespace\n\nOn service shutdown we can be sure, that no more users of it left except\ncurrent. Thus it looks like using current network namespace context is safe in\nthis case.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bee42f688c915b510a4aabae4f7a99457137d6f3",
      "tree": "a3de1330fcdbd3885fdfa48c5701372d5fef6324",
      "parents": [
        "5247fab5c82779174d50590e0200bf532248a8a1"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 14:02:56 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:14 2012 -0500"
      },
      "message": "SUNRPC: register service on creation in current network namespace\n\nService, using rpcbind (Lockd, NFSd) are starting from userspace call and thus\nwe can use current network namespace.\nThere could be a problem with NFSd service, because it\u0027s creation can be called\nthrough NFSd fs from different network namespace. But this is a part of \"NFSd\nper net ns\" task and will be fixed in future.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5247fab5c82779174d50590e0200bf532248a8a1",
      "tree": "e9933b229e07e2a74020ce5af74ddfe83cc95db7",
      "parents": [
        "b030fb0bb113316cc6f56779388b8572ab0699da"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 14:02:48 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:13 2012 -0500"
      },
      "message": "SUNRPC: pass network namespace to service registering routines\n\nLockd and NFSd services will handle requests from and to many network\nnsamespaces. And thus have to be registered and unregistered per network\nnamespace.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b030fb0bb113316cc6f56779388b8572ab0699da",
      "tree": "5e6e05faddc8d6637f1c2280c2da5e8d2b2f4a9c",
      "parents": [
        "f2ac4dc911fdbc9b98a6a48b40efc45aa9161775"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 14:02:40 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:13 2012 -0500"
      },
      "message": "SUNRPC: use proper network namespace in rpcbind RPCBPROC_GETADDR procedure\n\nPass request socket network namespace to rpc_uaddr2sockaddr() instead of\nhardcoded \"init_net\",  when decoding address in RPCBPROC_GETADDR procedure.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f2ac4dc911fdbc9b98a6a48b40efc45aa9161775",
      "tree": "0edcf3975fc749ef1e079b197d1711accbb386e3",
      "parents": [
        "90100b1766c914c820baa78b5be6845fae1159b8"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 13:09:27 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:12 2012 -0500"
      },
      "message": "SUNRPC: parametrize rpc_uaddr2sockaddr() by network context\n\nParametrize rpc_uaddr2sockaddr() by network context and thus force it\u0027s callers to pass\nin network context instead of using hard-coded \"init_net\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90100b1766c914c820baa78b5be6845fae1159b8",
      "tree": "8bfc406c44d8238aff6be33773bccf2083d3f66e",
      "parents": [
        "8b147f74738d9ab7e76085e5535e0fe8dc8b29f4"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 13:09:19 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:12 2012 -0500"
      },
      "message": "SUNRPC: parametrize rpc_pton() by network context\n\nParametrize rpc_pton() by network context and thus force it\u0027s callers to pass\nin network context instead of using hard-coded \"init_net\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b147f74738d9ab7e76085e5535e0fe8dc8b29f4",
      "tree": "ef970b0447d676b5d2a13117bb20750134749eb7",
      "parents": [
        "3065f1e29aa2716c8903cfeff368df4b5314040a"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 13:09:11 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:11 2012 -0500"
      },
      "message": "SUNRPC: parametrize rpc_pton6() by network context\n\nParametrize rpc_pton6() by network context and thus force it\u0027s caller\nto pass in network context instead of using hard-coded \"init_net\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3065f1e29aa2716c8903cfeff368df4b5314040a",
      "tree": "7b7f00f3f6b28e802aad9c2827fa014e152108fb",
      "parents": [
        "f7a30c18e8d673c996095420a026a28433cb4096"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 13:09:03 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:11 2012 -0500"
      },
      "message": "SUNRPC: parametrize rpc_parse_scope_id() by network context\n\nParametrize rpc_parse_scope_id() by network context and thus force it\u0027s caller\nto pass in network context instead of using hard-coded \"init_net\".\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f7a30c18e8d673c996095420a026a28433cb4096",
      "tree": "a5f84a1fed803c837be1570b0faa073219fdc399",
      "parents": [
        "977ac3157328239a0f4074b13a3d9eb5c832cd6c"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 12:52:51 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:11 2012 -0500"
      },
      "message": "SUNRPC: parametrize local rpcbind clients creation with net ns\n\nThese client are per network namespace and thus can be created for different\nnetwork namespaces.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "977ac3157328239a0f4074b13a3d9eb5c832cd6c",
      "tree": "6b309227b39229a0afd1158c768f3a796e755791",
      "parents": [
        "c2550e07a61a4528673fb85aaaee16048b7cf6cc"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 12:52:43 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:10 2012 -0500"
      },
      "message": "SUNRPC: register rpcbind programs in passed network namespase context\n\nRegistering rpcbind program requires rpcbind clients, which are per network\nnamespace context.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c2550e07a61a4528673fb85aaaee16048b7cf6cc",
      "tree": "5e58dcbaa7b47d25edbad21b921573fe88f59a7b",
      "parents": [
        "1a114a66466ba914a41df438e806fc10e7d9fb3b"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 12:52:35 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:10 2012 -0500"
      },
      "message": "SUNRPC: create rpcbind client in passed network namespace context\n\nRpcbind clients are per network namespace.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1a114a66466ba914a41df438e806fc10e7d9fb3b",
      "tree": "1223d978fbe72ac542c10041b408df1ae6693bf1",
      "parents": [
        "2ea75a10add779b722650aa10836247e7d609fd7"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 12:52:26 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:09 2012 -0500"
      },
      "message": "SUNRPC: optimize net_ns dereferencing in rpcbind registering calls\n\nStatic rpcbind registering functions can be parametrized by network namespace\npointer, calculated only once, instead of using init_net pointer (or taking it\nfrom current when virtualization will be comleted) in many places.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2ea75a10add779b722650aa10836247e7d609fd7",
      "tree": "ad5a78886546f8c16523424f928c1b2e7c0960e9",
      "parents": [
        "dff02d499c067bdde589b764321b35fe763569f6"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 12:52:18 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:09 2012 -0500"
      },
      "message": "SUNRPC: optimize net_ns dereferencing in rpcbind creation calls\n\nStatic rpcbind creation functions can be parametrized by network namespace\npointer, calculated only once, instead of using init_net pointer (or taking it\nfrom current when virtualization will be comleted) in many places.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dff02d499c067bdde589b764321b35fe763569f6",
      "tree": "a0a9c1259f7dad55c5ad2be8ae6d33a8417d64fb",
      "parents": [
        "961a828df64979d2a9faeeeee043391670a193b9"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jan 13 12:52:10 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:09 2012 -0500"
      },
      "message": "SUNRPC: move rpcbind internals to sunrpc part of network namespace context\n\nThis patch makes rpcbind logic works in network namespace context. IOW each\nnetwork namespace will have it\u0027s own unique rpcbind internals (clients and\nfriends) required for registering svc services per network namespace.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "961a828df64979d2a9faeeeee043391670a193b9",
      "tree": "4b7ddaf1a19c589e3c8ec96b6c732faa507f2899",
      "parents": [
        "2aeb98f498ce37742b743080fdc6c8cf64053599"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:57:37 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:08 2012 -0500"
      },
      "message": "SUNRPC: Fix potential races in xprt_lock_write_next()\n\nWe have to ensure that the wake up from the waitqueue and the assignment\nof xprt-\u003esnd_task are atomic. We can do this by assigning the snd_task\nwhile under the waitqueue spinlock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "12bc372b96b35a2dc9245ec61369028932b82ea8",
      "tree": "63bd7adfee1d632cf32a703bd714cde46ef82fda",
      "parents": [
        "2561d618ffb615f92fe17f0cf6b03f8e5cddb2cb"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 17:04:48 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "SUNRPC: kernel PipeFS mount point creation routines removed\n\nThis patch removes static rpc_mnt variable and its creation and destruction\nroutines, because they are not used anymore.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.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": "ad6b134008f4e765dd19976552b929273ae523bd",
      "tree": "5f5fbafe5739155cfce6bb0b1e07a9418a72666f",
      "parents": [
        "39cb67b9a04300df41e201d9e6392691cdad080f"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 16:12:38 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:26 2012 -0500"
      },
      "message": "SUNRPC: fix pipe-\u003eops cleanup on pipe dentry unlink\n\nThis patch looks late due to GSS AUTH patches sent already. But it fixes a flaw\nin RPC PipeFS pipes handling.\nI\u0027ve added this patch in the series, because this series related to pipes. But\nit should be a part of previous series named \"SUNPRC: cleanup PipeFS for\nnetwork-namespace-aware users\".\n\nPipe dentry can be created and destroyed many times during pipe life cycle.\nThis actually means, that we can\u0027t set pipe-\u003eops to NULL in rpc_close_pipes()\nand use this variable as a flag, indicating, that pipe\u0027s dentry is unlinking.\nTo follow this restriction, this patch replaces \"pipe-\u003eops \u003d NULL\" assignment\nand checks for NULL with \"pipe-\u003edentry \u003d NULL\" assignment and checks for\nNULL respectively.\nThis patch also removes check for non-NULL pipe-\u003eops (or pipe-\u003edentry) in\nrpc_close_pipes() because it always non-NULL now.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "820f9442e711a81749e70c40f149fc54c4ce0ca8",
      "tree": "d3e3f9b6e32cc8f19189d9760ce60ee502b81ee8",
      "parents": [
        "30507f58ce11e7664512059c708347d7a7d75271"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Nov 25 17:12:40 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:26 2012 -0500"
      },
      "message": "SUNRPC: split cache creation and PipeFS registration\n\nThis precursor patch splits SUNRPC cache creation and PipeFS registartion.\nIt\u0027s required for latter split of NFS DNS resolver cache creation per network\nnamespace context and PipeFS registration/unregistration on MOUNT/UMOUNT\nevents.\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": "70fe25b6e1a535f09792d1ed7012036c7bd506b2",
      "tree": "b02cd0caaea99c5676d93f8556a7ce82efaa1cf0",
      "parents": [
        "f5131257f771ad0e84cf0314a2a86b66318755a9"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:34 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: remove RPC pipefs mount point manipulations from RPC clients code\n\nv2:\n1) Updated due to changes in the first patch of the series.\n\nNow, with RPC pipefs mount notifications handling in RPC clients, we can remove\nmount point creation and destruction. RPC clients dentries will be created on\nPipeFS mount event and removed on umount event.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f5131257f771ad0e84cf0314a2a86b66318755a9",
      "tree": "bb91fb8a51ca5d0ad6483cc62d1d6c2956be6fb1",
      "parents": [
        "80df9d202255071c8ec610a6a3fdca5cac69f7bd"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:26 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: remove RPC client pipefs dentries after unregister\n\nWithout this patch we have races:\n\nrpc_fill_super\t\t\t\trpc_free_client\nrpc_pipefs_event(MOUNT)\t\t\trpc_remove_pipedir\nspin_lock(\u0026rpc_client_lock);\nrpc_setup_pipedir_sb\nspin_unlock(\u0026rpc_client_lock);\n\t\t\t\t\tspin_lock(\u0026rpc_client_lock);\n\t\t\t\t\t(remove from list)\n\t\t\t\t\tspin_unlock(\u0026rpc_client_lock);\n\t\t\t\t\tMEAMORY LEAKED\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "80df9d202255071c8ec610a6a3fdca5cac69f7bd",
      "tree": "140bf4a80e2ffe5d5e5601330b9a3e27e1aecf14",
      "parents": [
        "70abc49b4f4a4ef04a6bd9852edbd047b480bed7"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:17 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: subscribe RPC clients to pipefs notifications\n\nThis patch subscribes RPC clients to RPC pipefs notifications. RPC clients\nnotifier block is registering with pipefs initialization during SUNRPC module\ninit.\nThis notifier callback is responsible for RPC client PipeFS directory and GSS\npipes creation. For pipes creation and destruction two additional callbacks\nwere added to struct rpc_authops.\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": "70abc49b4f4a4ef04a6bd9852edbd047b480bed7",
      "tree": "7c9a266ff8838d7945106920a5f0251861a850a5",
      "parents": [
        "ccdc28f81c91f7ef2dc6c28d27f50264b19e4dd5"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Jan 12 22:07:51 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: make SUNPRC clients list per network namespace context\n\nThis patch moves static SUNRPC clients list and it\u0027s lock to sunrpc_net\nstructure.\nCurrently this list is used only for debug purposes. But later it will be used\nalso for selecting clients by networks namespace on PipeFS mount/umount events.\nPer-network namespace lists will make this faster and simplier.\n\nNote: client list is taken from \"init_net\" network namespace context in\nrpc_show_tasks(). This will be changed some day later with making SUNRPC\nsysctl\u0027s per 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": "ccdc28f81c91f7ef2dc6c28d27f50264b19e4dd5",
      "tree": "a891b1955b3e071dbea7e9ce5b0d6d8e6a8d5ae0",
      "parents": [
        "0157d021d23a087eecfa830502f81cfe843f0d16"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:09 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: handle GSS AUTH pipes by network namespace aware routines\n\nThis patch makes RPC GSS PipeFs pipes allocated in it\u0027s RPC client owner\nnetwork namespace context.\nPipes creation and destruction now done in separated functions, which takes\ncare about PipeFS superblock locking.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0157d021d23a087eecfa830502f81cfe843f0d16",
      "tree": "e1e1e7e75146c7d234f552a0ffc6b0124827fe6f",
      "parents": [
        "c239d83b9921b8a8005a3bcd23000cfe18acf5c2"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Jan 11 19:18:01 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: handle RPC client pipefs dentries by network namespace aware routines\n\nv2:\n1) \"Over-put\" of PipeFS mount point fixed. Fix is ugly, but allows to bisect\nthe patch set. And it will be removed later in the series.\n\nThis patch makes RPC clients PipeFs dentries allocations in it\u0027s owner network\nnamespace context.\nRPC client pipefs dentries creation logic has been changed:\n1) Pipefs dentries creation by sb was moved to separated function, which will\nbe used for handling PipeFS mount notification.\n2) Initial value of RPC client PipeFS dir dentry is set no NULL now.\n\nRPC client pipefs dentries cleanup logic has been changed:\n1) Cleanup is done now in separated rpc_remove_pipedir() function, which takes\ncare about pipefs superblock locking.\n\nAlso this patch removes slashes from cb_program.pipe_dir_name and from\nNFS_PIPE_DIRNAME to make rpc_d_lookup_sb() work. This doesn\u0027t affect\nvfs_path_lookup() results in nfs4blocklayout_init() since this slash is cutted\noff anyway in link_path_walk().\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": "9beae4677de76cfa4ce8899dc8cd1a1cf8cd8332",
      "tree": "5745aa9f5b40fcdb05aca68c186e4a329f3d911e",
      "parents": [
        "d706ed1f50d3f7fae61a177183562179abe8e4bb"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:43:57 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: cleanup GSS pipes usage\n\nCurrently gss auth holds RPC inode pointer which is now redundant since it\nrequires only pipes operations which takes private pipe data as an argument.\nThus this code can be cleaned and all references to RPC inode can be replaced\nwith privtae pipe data references.\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": "d0fe13ba9178d3bb78bbd8577bdedc00f76b7a66",
      "tree": "365e3cae07542d2cf252fa638d00ae010eaadd61",
      "parents": [
        "ba9e097593f371ebd102580a0c5b1b2cf55636a0"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:43:41 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: cleanup PipeFS redundant RPC inode usage\n\nThis patch removes redundant RPC inode references from PipeFS. These places are\nactually where pipes operations are performed.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba9e097593f371ebd102580a0c5b1b2cf55636a0",
      "tree": "737cda4281e4d77738149e8cd481d7414ccaf160",
      "parents": [
        "766347bec3490111e1c4482af7c7394868c2aed1"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:43:32 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: split SUNPRC PipeFS pipe data and inode creation\n\nGenerally, pipe data is used only for pipes, and thus allocating space for it\non every RPC inode allocation is redundant. This patch splits private SUNRPC\nPipeFS pipe data and inode, makes pipe data allocated only for pipe inodes.\nThis patch is also is a next step towards to to removing PipeFS inode\nreferences from kernel code other than PipeFS itself.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "766347bec3490111e1c4482af7c7394868c2aed1",
      "tree": "afc06a17ceb7e7f1f0e119ec21e0102063b6992a",
      "parents": [
        "efc46bf2b2893132e07628ad8c06e915f3281fdc"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:43:23 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: replace inode lock with pipe lock for RPC PipeFS operations\n\nCurrenly, inode i_lock is used to provide concurrent access to SUNPRC PipeFS\npipes. It looks redundant, since now other use of inode is present in most of\nthese places and thus can be easely replaced, which will allow to remove most\nof inode references from PipeFS code. This is a first step towards to removing\nPipeFS inode references from kernel code other than PipeFS itself.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "efc46bf2b2893132e07628ad8c06e915f3281fdc",
      "tree": "f2742f6b4250800e46d1db891d79b5098f454500",
      "parents": [
        "c21a588f35b1c50304e505fad542b3aab0814266"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:39:47 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: added debug messages to RPC pipefs\n\nThis patch adds debug messages for notification events.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c21a588f35b1c50304e505fad542b3aab0814266",
      "tree": "2dda83e8d5f62eb9892c425941265aeeb278e952",
      "parents": [
        "90c4e82999c517e0cd00d0782c68d186cb18b784"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:39:39 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: pipefs per-net operations helper introduced\n\nDuring per-net pipes creation and destruction we have to make sure, that pipefs\nsb exists for the whole creation/destruction cycle. This is done by using\nspecial mutex which controls pipefs sb reference on network namespace context.\nHelper consists of two parts: first of them (rpc_get_dentry_net) searches for\ndentry with specified name and returns with mutex taken on success. When pipe\ncreation or destructions is completed, caller should release this mutex by\nrpc_put_dentry_net call.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90c4e82999c517e0cd00d0782c68d186cb18b784",
      "tree": "61e1984458df512d72c76721d9f4fe15821a6cea",
      "parents": [
        "432eb1a5fb380477ae759041bac2bb305977e436"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:39:30 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: put pipefs superblock link on network namespace\n\nWe have modules (like, pNFS blocklayout module) which creates pipes on\nrpc_pipefs. Thus we need per-net operations for them. To make it possible we\nrequire appropriate super block. So we have to put sb link on network namespace\ncontext. Note, that it\u0027s not strongly required to create pipes in per-net\noperations. IOW, if pipefs wasn\u0027t mounted yet, that no sb link reference will\npresent on network namespace and in this case we need just need to pass through\npipe creation. Pipe dentry will be created during pipefs mount notification.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "432eb1a5fb380477ae759041bac2bb305977e436",
      "tree": "cf00739e461828c4757f74b324bab71952284649",
      "parents": [
        "2d00131acc641b2cb6f0bdefb8c7bdd8fdf7410b"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:39:22 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: pipefs dentry lookup helper introduced\n\nIn all places, where pipefs dentries are created, only directory inode is\nactually required to create new dentry. And all this directories has root\npipefs dentry as their parent. So we actually don\u0027t need this pipefs mount\npoint at all if some pipefs lookup method will be provided.\nIOW, all we really need is just superblock and simple lookup method to find\nroot\u0027s child dentry with appropriate name. And this patch introduces this\nmethod.\nNote, that no locking implemented in rpc_d_lookup_sb(). So it can be used only\nin case of assurance, that pipefs superblock still exist. IOW, we can use this\nmethod only in pipefs mount-umount notification subscribers callbacks.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d00131acc641b2cb6f0bdefb8c7bdd8fdf7410b",
      "tree": "e8351c57f8d12431e7e02f7ff44960dde11800b7",
      "parents": [
        "021c68dec8c04c44cb82eb5bbee77028fafe22e8"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:39:13 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:24 2012 -0500"
      },
      "message": "SUNRPC: send notification events on pipefs sb creation and destruction\n\nThey will be used to notify subscribers about pipefs superblock creation and\ndestruction.\nSubcribers will have to create their dentries on passed superblock on mount\nevent and destroy otherwise.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "021c68dec8c04c44cb82eb5bbee77028fafe22e8",
      "tree": "f0444695a2e9579dea0e27e93575d4db40ababc8",
      "parents": [
        "38b0da7522c086f1dcdeda39a2d1849c6a31f518"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:39:04 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:23 2012 -0500"
      },
      "message": "SUNRPC: hold current network namespace while pipefs superblock is active\n\nWe want to be sure that network namespace is still alive while we have pipefs\nmounted.\nThis will be required later, when RPC pipefs will be mounting only from\nuser-space context.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "38b0da7522c086f1dcdeda39a2d1849c6a31f518",
      "tree": "50a00ba4410645aa495a27dd274eb45f740494ef",
      "parents": [
        "5bff0386305461021bbef2d958fa0f0151f56a6f"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:38:56 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:23 2012 -0500"
      },
      "message": "SUNRPC: create RPC pipefs superblock per network namespace context\n\nThis is the initial step of RPC pipefs virtualization. It changes nothing to\ncurrent pipefs behaviour except that mount of pipefs in other than init_net\nnetwork namespace context will provide only root tree. No other dentries will\nbe visible.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5bff0386305461021bbef2d958fa0f0151f56a6f",
      "tree": "59f7f61dd4bc44bd9742571baf3c0d88395ddcec",
      "parents": [
        "62aa2b537c6f5957afd98e29f96897419ed5ebab"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Nov 08 15:09:19 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:23 2012 -0500"
      },
      "message": "SUNRPC: remove non-exclusive pipe creation from RPC pipefs\n\nThis patch-set was created in context of clone of git branch:\ngit://git.linux-nfs.org/projects/trondmy/nfs-2.6.git.\n\nv2:\n1) Rebased of current repo state (i.e. all commits were pulled before apply)\n\nI feel it is ready for inclusion if no objections will appear.\n\nSUNRPC pipefs non-exclusive pipe creation code looks obsolete. IOW, as I see\nit, all pipes are creating with unique full path and only once.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "875ad3f8e7dff6bc1d053e5bfe73d8e8d2e6ae67"
}
