)]}'
{
  "log": [
    {
      "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": "14977489ffdb80d4caf5a184ba41b23b02fbacd9",
      "tree": "8d0b755ca35743e6a00dc7da04a7b7c21dd6d650",
      "parents": [
        "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:31:25 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa",
      "tree": "217a19f29b5214d8b0e36dbe190c34140a01000f",
      "parents": [
        "05e9cfb408b24debb3a85fd98edbfd09dd148881"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:22:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4.1: Fix layoutcommit error handling\n\nFirstly, task-\u003etk_status will always return negative error values,\nso the current tests for \u0027NFS4ERR_DELEG_REVOKED\u0027 etc. are all being\nignored.\nSecondly, clean up the code so that we only need to test\ntask-\u003etk_status once!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "05e9cfb408b24debb3a85fd98edbfd09dd148881",
      "tree": "47c4039701bf081a8b6e9209b65c1284f2183dd7",
      "parents": [
        "864cf9bf99f62d2095c8e6cc3a87af80b263984e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:13:02 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Fix two infinite loops in the mount code\n\nWe can currently loop forever in nfs4_lookup_root() and in\nnfs41_proc_secinfo_no_name(), if the first iteration returns a\nNFS4ERR_DELAY or something else that causes exception.retry to get\nset.\n\nReported-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "d44fc387997c0750125cfb0c2c803a3171b649f4",
      "tree": "075a1b09e58e684d348bf8a8b2998cea19c64f01",
      "parents": [
        "20e0fa98b751facf9a1101edaefbc19c82616a68"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Mar 22 01:39:34 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 24 14:33:26 2012 -0400"
      },
      "message": "NFS4.1: remove duplicate variable declaration in filelayout_clear_request_commit\n\ninode is declared twice for no good reason\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20e0fa98b751facf9a1101edaefbc19c82616a68",
      "tree": "b3a902d953bb60b36886d66d626a68800b020b0a",
      "parents": [
        "250f6715a4112d6686670c5a62ceb9305da94616"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Thu Mar 22 16:46:28 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 24 14:33:26 2012 -0400"
      },
      "message": "Fix length of buffer copied in __nfs4_get_acl_uncached\n\n_copy_from_pages() used to copy data from the temporary buffer to the\nuser passed buffer is passed the wrong size parameter when copying\ndata. res.acl_len contains both the bitmap and acl lenghts while\nacl_len contains the acl length after adjusting for the bitmap size.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    },
    {
      "commit": "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": "3556485f1595e3964ba539e39ea682acbb835cee",
      "tree": "7f5ee254f425b1427ac0059b5f347a307f8538a1",
      "parents": [
        "b8716614a7cc2fc15ea2a518edd04755fb08d922",
        "09f61cdbb32a9d812c618d3922db533542736bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates for 3.4 from James Morris:\n \"The main addition here is the new Yama security module from Kees Cook,\n  which was discussed at the Linux Security Summit last year.  Its\n  purpose is to collect miscellaneous DAC security enhancements in one\n  place.  This also marks a departure in policy for LSM modules, which\n  were previously limited to being standalone access control systems.\n  Chromium OS is using Yama, and I believe there are plans for Ubuntu,\n  at least.\n\n  This patchset also includes maintenance updates for AppArmor, TOMOYO\n  and others.\"\n\nFix trivial conflict in \u003cnet/sock.h\u003e due to the jumo_label-\u003estatic_key\nrename.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)\n  AppArmor: Fix location of const qualifier on generated string tables\n  TOMOYO: Return error if fails to delete a domain\n  AppArmor: add const qualifiers to string arrays\n  AppArmor: Add ability to load extended policy\n  TOMOYO: Return appropriate value to poll().\n  AppArmor: Move path failure information into aa_get_name and rename\n  AppArmor: Update dfa matching routines.\n  AppArmor: Minor cleanup of d_namespace_path to consolidate error handling\n  AppArmor: Retrieve the dentry_path for error reporting when path lookup fails\n  AppArmor: Add const qualifiers to generated string tables\n  AppArmor: Fix oops in policy unpack auditing\n  AppArmor: Fix error returned when a path lookup is disconnected\n  KEYS: testing wrong bit for KEY_FLAG_REVOKED\n  TOMOYO: Fix mount flags checking order.\n  security: fix ima kconfig warning\n  AppArmor: Fix the error case for chroot relative path name lookup\n  AppArmor: fix mapping of META_READ to audit and quiet flags\n  AppArmor: Fix underflow in xindex calculation\n  AppArmor: Fix dropping of allowed operations that are force audited\n  AppArmor: Add mising end of structure test to caps unpacking\n  ...\n"
    },
    {
      "commit": "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492",
      "tree": "f6ca94e7356996f9e29d6baa0fea67d3a499f9f0",
      "parents": [
        "9b78145c0f280d4f01c460d6251eab2584181fa9"
      ],
      "author": {
        "name": "Vivek Trivedi",
        "email": "vtrivedi018@gmail.com",
        "time": "Thu Mar 15 23:58:52 2012 +0530"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 11:45:28 2012 -0400"
      },
      "message": "NFS: fix sb-\u003es_id in nfs debug prints\n\nNFS bdi flush thread in ps output is printed like \"flush-\u003cmajor number\nin decimal\u003e:\u003cminor number in decimal\u003e\"\nFor example:\n$ ps aux | grep flush\n 2079 root         0 SW   [flush-0:18]\n                                 ^^^^\n\nnfs_bdi_register()\n\u003d\u003d\u003e bdi_register_dev()\n\u003d\u003d\u003e bdi_register(bdi, NULL, \"%u:%u\", MAJOR(dev), MINOR(dev));\n                             ^^^^^\n\nHowever, NFS sb-\u003es_id store major:minor number in hex:\n\nnfs_initialise_sb()\n\u003d\u003d\u003e         snprintf(sb-\u003es_id, sizeof(sb-\u003es_id),\n                 \"%x:%x\", MAJOR(sb-\u003es_dev), MINOR(sb-\u003es_dev));\n                  ^^^^^\n\nIf we enable nfs debug prints using command:\n$ rpcdebug -m nfs -s all\n\nwrite to a file:\n$ dd if\u003d/dev/zero of\u003d\u003cNFS Mount\u003e/testfile.txt bs\u003d32768 count\u003d1\n\nWithout Patch:\n[ 2431.032000] NFS:     0 initiated write call (req 0:12/40, 32768 bytes\n@ offset 0)                                         ^^^^\n\nWith Patch:\n[ 2431.032000] NFS:     0 initiated write call (req 0:18/40, 32768 bytes\n@ offset 0)                                         ^^^^\n\nWe should store NFS \"s-\u003es_id\" in decimal to avoid confusion between NFS\nflush thread name(in ps output) and NFS debug prints.\n\nSigned-off-by: Vivek Trivedi \u003cvtrivedi018@gmail.com\u003e\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "18d98f6c04991dd3c12acf6f39cea40e9510640a",
      "tree": "2057833de8c2c6bb4e3530eed44249b3941b99d8",
      "parents": [
        "c6bfa1a16377b42496ecc0490a33516c0e414e7b"
      ],
      "author": {
        "name": "Sachin Bhamare",
        "email": "sbhamare@panasas.com",
        "time": "Mon Mar 19 20:47:58 2012 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:47 2012 -0400"
      },
      "message": "pnfs-obj: autologin: Add support for protocol autologin\n\nThe pnfs-objects protocol mandates that we autologin into devices not\npresent in the system, according to information specified in the\nget_device_info returned from the server.\n\nThe Protocol specifies two login hints.\n1. An IP address:port combination\n2. A string URI which is constructed as a URL with a protocol prefix\n   followed by :// and a string as address. For each  protocol prefix\n   the string-address format might be different.\n\nWe only support the second option. The first option is just redundant\nto the second one.\nNOTE: The Kernel part of autologin does not parse the URI string. It\njust channels it to a user-mode script. So any new login protocols should\nonly update the user-mode script which is a part of the nfs-utils package,\nbut the Kernel need not change.\n\nWe implement the autologin by using the call_usermodehelper() API.\n(Thanks to Steve Dickson \u003csteved@redhat.com\u003e for pointing it out)\nSo there is no running daemon needed, and/or special setup.\n\nWe Add the osd_login_prog Kernel module parameters which defaults to:\n\t/sbin/osd_login\n\nKernel try\u0027s to upcall the program specified in osd_login_prog. If the file is\nnot found or the execution fails Kernel will disable any farther upcalls, by\nzeroing out  osd_login_prog, Until Admin re-enables it by setting the\nosd_login_prog parameter to a proper program.\n\nAlso add text about the osd_login program command line API to:\n\tDocumentation/filesystems/nfs/pnfs.txt\nand documentation of the new  osd_login_prog  module parameter to:\n\tDocumentation/kernel-parameters.txt\n\nTODO: Add timeout option in the case osd_login program gets\n              stuck\n\nSigned-off-by: Sachin Bhamare \u003csbhamare@panasas.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c6bfa1a16377b42496ecc0490a33516c0e414e7b",
      "tree": "a45bb649475733474350d1420b6cb1079020b8f2",
      "parents": [
        "34e137cc7e3b63c254875e59cd48dcbe6757fe6c"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:42 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:46 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic rename code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34e137cc7e3b63c254875e59cd48dcbe6757fe6c",
      "tree": "ea509e7f715bcbf2fd3541062063348f547e6c6c",
      "parents": [
        "ea7c330362257c072791aeaf03bae2cebf9fb984"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:41 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:46 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic unlink code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ea7c330362257c072791aeaf03bae2cebf9fb984",
      "tree": "5633ea3278a8ad9b81891bd1fd149af76ad3fe7d",
      "parents": [
        "c6cb80d00be42f30716ec817b963bcec094433b5"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:45 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic read code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c6cb80d00be42f30716ec817b963bcec094433b5",
      "tree": "8049071fc2c5f01a730eb47bfa95ee095ce677df",
      "parents": [
        "6f00866ddd15724eb20eac4ddf6e2c6c1a6cfcdc"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:45 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic write code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f00866ddd15724eb20eac4ddf6e2c6c1a6cfcdc",
      "tree": "14c33fa0d8dfe765175c3972d1fd746ef766c150",
      "parents": [
        "ffa94db6042e6fd014ae0bed8832ac707ef2afe9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 14:12:46 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:44 2012 -0400"
      },
      "message": "NFS: Fix more NFS debug related build warnings\n\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": "3b3be88d67cc17d0f0ab6edaf131516793fc947e",
      "tree": "293bc2bcc7cf7a175786ec33a4e2aff8c5c7ebca",
      "parents": [
        "5ae67c4fee869c9b3c87b727a9ea511b6326b834"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 17 11:59:30 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 13:08:26 2012 -0400"
      },
      "message": "NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n\nEnsure that we conditionally drop the inode-\u003ei_lock when it is safe\nto do so in the commit loops.\nWe do so after locking the nfs_page, but before removing it from the\ncommit list. We can then use list_safe_reset_next to recover the loop\nafter the lock is retaken.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ae67c4fee869c9b3c87b727a9ea511b6326b834",
      "tree": "68fe22b71462c6e13eff3a6d637b79371c77441e",
      "parents": [
        "c4f1b62a4b50a01e8d820717906b674807ef9ca3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 19 16:17:18 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 13:08:25 2012 -0400"
      },
      "message": "NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n\nIt is quite possible for the release_lockowner RPC call to race with the\nclose RPC call, in which case, we cannot dereference lsp-\u003els_state in\norder to find the nfs_server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c4f1b62a4b50a01e8d820717906b674807ef9ca3",
      "tree": "00235f72dd714761d9536408d3c7342d0da10c6d",
      "parents": [
        "540a0f7584169651f485e8ab67461fcb06934e38"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Tue Mar 20 12:51:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 13:05:08 2012 -0400"
      },
      "message": "NFS: ncommit count is being double decremented\n\nThe decrement is handled by each call to nfs_request_remove_commit_list,\nno need to do it again in nfs_scan_commit.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b86ce2db3349f5c2af81769c2596ee0d5a63a47",
      "tree": "41d9a8973b50bb96929f3cbd6d9faf49cb2cc3dd",
      "parents": [
        "27a6d5c742ceff68b09396bb99cd6344afa85330"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:33 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:24 2012 +0800"
      },
      "message": "nfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "e49a29bd0eacce9d4956c4daf777a330115b369d",
      "tree": "e10e00806b44420f7cce9f43bf12c81fd5d898e3",
      "parents": [
        "9390f42546339cf111edd23c16d6cf74ca41974c"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Fri Mar 16 19:25:52 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 17 11:17:42 2012 -0400"
      },
      "message": "Try using machine credentials for RENEW calls\n\nUsing user credentials for RENEW calls will fail when the user\ncredentials have expired.\n\nTo avoid this, try using the machine credentials when making RENEW\ncalls. If no machine credentials have been set, fall back to using user\ncredentials as before.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9390f42546339cf111edd23c16d6cf74ca41974c",
      "tree": "f281aa1e7bed7fbf41c441eab605d6d7a1a9050b",
      "parents": [
        "8dd3775889345850ecddd689b5c200cdd91bd8c9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 16 13:52:45 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 17 11:17:42 2012 -0400"
      },
      "message": "NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n\n- Fix a race in which NFS_I(inode)-\u003ecommits_outstanding could potentially\n  go to zero (triggering a call to nfs_commit_clear_lock()) before we\u0027re\n  done sending out all the commit RPC calls.\n\n- If nfs_commitdata_alloc fails, there is no reason why we shouldn\u0027t\n  try to send off all the commits-to-ds.\n\n- Simplify the error handling.\n\n- Change pnfs_commit_list() to always return either\n  PNFS_ATTEMPTED or PNFS_NOT_ATTEMPTED.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "8dd3775889345850ecddd689b5c200cdd91bd8c9",
      "tree": "ea697cfcac3f3a927e90d0048e9ed76b5a3ea8e5",
      "parents": [
        "95a13f7b33be87d85d8e6652126a3f4d64d164db"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 15 17:16:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 17 11:09:33 2012 -0400"
      },
      "message": "NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n\nMove more pnfs-isms out of the generic commit code.\n\nBugfixes:\n\n- filelayout_scan_commit_lists doesn\u0027t need to get/put the lseg.\n  In fact since it is run under the inode-\u003ei_lock, the lseg_put()\n  can deadlock.\n\n- Ensure that we distinguish between what needs to be done for\n  commit-to-data server and what needs to be done for commit-to-MDS\n  using the new flag PG_COMMIT_TO_DS. Otherwise we may end up calling\n  put_lseg() on a bucket for a struct nfs_page that got written\n  through the MDS.\n\n- Fix a case where we were using list_del() on an nfs_page-\u003ewb_list\n  instead of list_del_init().\n\n- filelayout_initiate_commit needs to call filelayout_commit_release\n  on error instead of the mds_ops-\u003erpc_release(). Otherwise it won\u0027t\n  clear the commit lock.\n\nCleanups:\n\n- Let the files layout manage the commit lists for the pNFS case.\n  Don\u0027t expose stuff like pnfs_choose_commit_list, and the fact\n  that the commit buckets hold references to the layout segment\n  in common code.\n\n- Cast out the put_lseg() calls for the struct nfs_read/write_data-\u003elseg\n  into the pNFS layer from whence they came.\n\n- Let the pNFS layer manage the NFS_INO_PNFS_COMMIT bit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "95a13f7b33be87d85d8e6652126a3f4d64d164db",
      "tree": "f21f2f0655e2205029a9edb16d7dca4b8d4e033a",
      "parents": [
        "96dcadc2fdd111dca90d559f189a30c65394451a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 14 21:55:01 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 14 21:55:01 2012 -0400"
      },
      "message": "NFS: Fix a compile error when !defined NFS_DEBUG\n\nWe should use the \u0027ifdebug\u0027 wrapper rather than trying to inline\ntests of nfs_debug, so that the code compiles correctly when we\ndon\u0027t define NFS_DEBUG.\n\nReported-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "96dcadc2fdd111dca90d559f189a30c65394451a",
      "tree": "ea1e3a5855afde8cdacfe0f41eed00023bab6129",
      "parents": [
        "5318a29c1943e9719e71495db6efb6fc084a45a9"
      ],
      "author": {
        "name": "William Dauchy",
        "email": "wdauchy@gmail.com",
        "time": "Wed Mar 14 12:32:04 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 14 09:25:26 2012 -0400"
      },
      "message": "NFSv4: Rate limit the state manager for lock reclaim warning messages\n\nAdding rate limit on `Lock reclaim failed` messages since it could fill\nup system logs\nSigned-off-by: William Dauchy \u003cwdauchy@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5318a29c1943e9719e71495db6efb6fc084a45a9",
      "tree": "b274e3c6c2edc30abf2a0fc8d10eabffbf9598e1",
      "parents": [
        "e138ead73f872559778bb0c326e795206f96d3ce"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Mar 13 20:44:26 2012 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 13 23:47:59 2012 -0400"
      },
      "message": "pnfs-obj: Uglify objio_segment allocation for the sake of the principle :-(\n\nAt some past instance Linus Trovalds wrote:\n\u003e From: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\u003e commit a84a79e4d369a73c0130b5858199e949432da4c6 upstream.\n\u003e\n\u003e The size is always valid, but variable-length arrays generate worse code\n\u003e for no good reason (unless the function happens to be inlined and the\n\u003e compiler sees the length for the simple constant it is).\n\u003e\n\u003e Also, there seems to be some code generation problem on POWER, where\n\u003e Henrik Bakken reports that register r28 can get corrupted under some\n\u003e subtle circumstances (interrupt happening at the wrong time?).  That all\n\u003e indicates some seriously broken compiler issues, but since variable\n\u003e length arrays are bad regardless, there\u0027s little point in trying to\n\u003e chase it down.\n\u003e\n\u003e \"Just don\u0027t do that, then\".\n\nSince then any use of \"variable length arrays\" has become blasphemous.\nEven in perfectly good, beautiful, perfectly safe code like the one\nbelow where the variable length arrays are only used as a sizeof()\nparameter, for type-safe dynamic structure allocations. GCC is not\nexecuting any stack allocation code.\n\nI have produced a small file which defines two functions main1(unsigned numdevs)\nand main2(unsigned numdevs). main1 uses code as before with call to malloc\nand main2 uses code as of after this patch. I compiled it as:\n\tgcc -O2 -S see_asm.c\nand here is what I get:\n\n\u003csee_asm.s\u003e\nmain1:\n.LFB7:\n\t.cfi_startproc\n\tmov\t%edi, %edi\n\tleaq\t4(%rdi,%rdi), %rdi\n\tsalq\t$3, %rdi\n\tjmp\tmalloc\n\t.cfi_endproc\n.LFE7:\n\t.size\tmain1, .-main1\n\t.p2align 4,,15\n\t.globl\tmain2\n\t.type\tmain2, @function\nmain2:\n.LFB8:\n\t.cfi_startproc\n\tmov\t%edi, %edi\n\taddq\t$2, %rdi\n\tsalq\t$4, %rdi\n\tjmp\tmalloc\n\t.cfi_endproc\n.LFE8:\n\t.size\tmain2, .-main2\n\t.section\t.text.startup,\"ax\",@progbits\n\t.p2align 4,,15\n\u003c/see_asm.s\u003e\n\n*Exact* same code !!!\n\nSo please seriously consider not accepting this patch and leave the\nperfectly good code intact.\n\nCC: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e138ead73f872559778bb0c326e795206f96d3ce",
      "tree": "e134947deaeae4e347297440a6fd6ebe7fefcc97",
      "parents": [
        "9a3ba432330e504ac61ff0043dbdaba7cea0e35a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Mar 13 20:18:48 2012 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 13 15:33:08 2012 -0400"
      },
      "message": "NFS: null dereference in dev_remove()\n\nIn commit 5ffaf85541 \"NFS: replace global bl_wq with per-net one\" we\nmade \"msg\" a pointer instead of a struct stored in stack memory.  But we\nforgot to change the memset() here so we\u0027re still clearing stack memory\ninstead clearing the struct like we intended.  It will lead to a kernel\ncrash.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9a3ba432330e504ac61ff0043dbdaba7cea0e35a",
      "tree": "1efadb9ff2c7a662bf8cb6da9a7bd70595810b02",
      "parents": [
        "0097143c12e279f5d454e0f636a02afff102cc6a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 18:01:48 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 18:15:22 2012 -0400"
      },
      "message": "NFSv4: Rate limit the state manager warning messages\n\nPrevent the state manager from filling up system logs when recovery\nfails on the server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "11588f493a2441f09ceb2088d07cc012b53cbf75",
      "tree": "f1f0f598ee239edd9e423bc745d1be77641ce36c",
      "parents": [
        "4b7c8dd205d6df1629ccde9f6dcf6a85d34c37ff"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 12 11:33:00 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 12:51:42 2012 -0400"
      },
      "message": "NFS: Check return value from rpc_queue_upcall()\n\nThis function could fail to queue the upcall if rpc.idmapd is not running,\ncausing a warning message to be printed.  Instead, I want to check the\nreturn value and revoke the key if the upcall can\u0027t be run.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b7c8dd205d6df1629ccde9f6dcf6a85d34c37ff",
      "tree": "33088a369217ec62afa9068233d33e0913c1b0ee",
      "parents": [
        "09acfea5d8de419ebe84be43b08f7b79c965215f"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 12 11:28:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 12 12:51:40 2012 -0400"
      },
      "message": "NFS: Only define some function when v4.1 is enabled\n\nNow that the nfs4_cb_match_client() function is static, gcc notices that\nit is only used when CONFIG_NFS_V4_1 is enabled.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "17280175c587469b34757263c7cfc608f0ea2334",
      "tree": "34a3008bfd1055e9fdb0557ea563484b67433797",
      "parents": [
        "5ffaf8554163d9f3873988ce2f9977f6c6f408d2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 13:11:00 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 15:14:16 2012 -0400"
      },
      "message": "NFS: Fix a number of sparse warnings\n\nFix a number of \"warning: symbol \u0027foo\u0027 was not declared. Should it be\nstatic?\" conditions.\n\nFix 2 cases of \"warning: Using plain integer as NULL pointer\"\n\nfs/nfs/delegation.c:263:31: warning: restricted fmode_t degrades to integer\n  - We want to allow upgrades to a WRITE delegation, but should otherwise\n    consider servers that hand out duplicate delegations to be borken.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ffaf8554163d9f3873988ce2f9977f6c6f408d2",
      "tree": "ed026242a8580c8df03c9383ef32e6e7fb90f949",
      "parents": [
        "cb9c1c4a880bc734c2848f8647be2cfa336ee346"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Sun Mar 11 18:20:31 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 10:57:35 2012 -0400"
      },
      "message": "NFS: replace global bl_wq with per-net one\n\nThis queue is used for sleeping in kernel and it have to be per-net since we\ndon\u0027t want to wake any other waiters except in out network nemespace.\nBTW, move wq to per-net data is easy. But some way to handle upcall timeouts\nhave to be provided. On message destroy in case of timeout, tasks, waiting for\nmessage to be delivered, should be awakened. Thus, some data required to\nlocated the right wait queue. Chosen solution replaces rpc_pipe_msg object with\nnew introduced bl_pipe_msg object, containing rpc_pipe_msg and proper wq.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cb9c1c4a880bc734c2848f8647be2cfa336ee346",
      "tree": "84006417e491ba57da87a88212c5c9dda3fd4e96",
      "parents": [
        "d6d6dc7cdfda7c8f49a89a7b7261846f319da6d1"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Sun Mar 11 18:20:23 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 10:57:34 2012 -0400"
      },
      "message": "NFS: replace global bl_mount_reply with per-net one\n\nThis global variable is used for blocklayout downcall and thus can be corrupted\nif case of existence of multiple networks namespaces.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d6d6dc7cdfda7c8f49a89a7b7261846f319da6d1",
      "tree": "fd26cf912b676f2752c16ccce1f410872a2a485c",
      "parents": [
        "9994b62b5621f88828d442fcd03fe3ce4c43344b"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Mar 08 17:29:35 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 10 17:14:10 2012 -0500"
      },
      "message": "NFS: remove nfs_inode radix tree\n\nThe radix tree is only being used to compile lists of reqs needing commit.\nIt is simpler to just put the reqs directly into a list.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9994b62b5621f88828d442fcd03fe3ce4c43344b",
      "tree": "b337f13fa873d0931b81f6e9a51ac739e6e074f1",
      "parents": [
        "ad1e3968292e3af1c49ccbd0fb7d2674010f8efc"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Mar 08 17:29:34 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 10 17:13:58 2012 -0500"
      },
      "message": "NFS: remove NFS_PAGE_TAG_LOCKED\n\nThe last real use of this tag was removed by\ncommit 7f2f12d963 NFS: Simplify nfs_wb_page()\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ad1e3968292e3af1c49ccbd0fb7d2674010f8efc",
      "tree": "5eee458017d2deeff73c27740d1bddd742a05990",
      "parents": [
        "4fc8796d23819da814ec25b7793bde8f104f1a2a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 10 11:23:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 10 11:54:36 2012 -0500"
      },
      "message": "NFSv4.0: Re-establish the callback channel on NFS4ERR_CB_PATHDOWN\n\nWhen the NFSv4.0 server tells us that it can no-longer talk to us\non the callback channel, we should attempt a new SETCLIENTID in\norder to re-transmit the callback channel information.\n\nNote that as long as we do not change the boot verifier, this is\na safe procedure; the server is required to keep our state.\n\nAlso move the function nfs_handle_cb_pathdown to fs/nfs/nfs4state.c,\nand change the name in order to mark it as being specific to NFSv4.0.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4fc8796d23819da814ec25b7793bde8f104f1a2a",
      "tree": "d86513109dd792087091b6054a983271b2536f60",
      "parents": [
        "0032a7a749a49b2c044092a1d0af5cfd0077f35d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 17:42:01 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 22:38:55 2012 -0500"
      },
      "message": "NFSv4: Clean up nfs4_select_rw_stateid()\n\nEnsure that we select delegation stateids first, then\nlock stateids and then open stateids.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0032a7a749a49b2c044092a1d0af5cfd0077f35d",
      "tree": "b73ca09268f9b6f1c6b5c8bb9301b088a305830d",
      "parents": [
        "2dc317565b6fd264929b41aaa9674431d75178ef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 17:16:12 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 22:37:12 2012 -0500"
      },
      "message": "NFS: Don\u0027t copy read delegation stateids in setattr\n\nThe server will just return an NFS4ERR_OPENMODE anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2dc317565b6fd264929b41aaa9674431d75178ef",
      "tree": "dd944aeb038638086a6054f24cb0f74822cf1873",
      "parents": [
        "3114ea7a24d3264c090556a2444fc6d2c06176d4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Mar 08 11:03:53 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 08 11:05:48 2012 -0500"
      },
      "message": "NFSv4.1 cleanup DS stateid error handling\n\nThe error handler nfs4_state parameter is never NULL in the pNFS case as\nthe open_context must carry an nfs_state.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3114ea7a24d3264c090556a2444fc6d2c06176d4",
      "tree": "50b8f1f3f43c6eb93093abec368c070e2efdc7d2",
      "parents": [
        "cf470c3e004efe16d73dc8ba9b29bdc9a5327cda"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 16:39:06 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 17:11:19 2012 -0500"
      },
      "message": "NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE\n\nIf a setattr() fails because of an NFS4ERR_OPENMODE error, it is\nprobably due to us holding a read delegation. Ensure that the\nrecovery routines return that delegation in this case.\n\nReported-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "cf470c3e004efe16d73dc8ba9b29bdc9a5327cda",
      "tree": "57f8f72ef5af7d33d760570bd8d78e9b0face719",
      "parents": [
        "9cb8196839ab4ec87710526e9c43ac7f5dba69d3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 13:49:12 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 13:49:12 2012 -0500"
      },
      "message": "NFSv4: Don\u0027t free the nfs4_lock_state until after the release_lockowner\n\nOtherwise we can end up with sequence id problems if the client reuses\nthe owner_id before the server has processed the release_lockowner\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9cb8196839ab4ec87710526e9c43ac7f5dba69d3",
      "tree": "97ea8225d7ea1b7ba45785f25d042a18263eaf8e",
      "parents": [
        "4f1abd226d80ef763c50e3930b369b63dffbb312"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Mar 07 10:49:41 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 10:53:55 2012 -0500"
      },
      "message": "NFSv4.1 handle DS stateid errors\n\nHandle DS READ and WRITE stateid errors by recovering the stateid on the MDS.\n\nNFS4ERR_OLD_STATEID is ignored as the client always sends a\nstate sequenceid of zero for DS READ and WRITE stateids.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4f1abd226d80ef763c50e3930b369b63dffbb312",
      "tree": "6dfbcc0046ef135fadd2b6585e864c067b3bf1a6",
      "parents": [
        "d8e0539ebdff5ff27fa7eb019715d9dfb5171a3b"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Mar 06 21:58:20 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 10:34:27 2012 -0500"
      },
      "message": "NFS: add fh_crc to debug output\n\nPrint the filehandle crc in two debug messages\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d8e0539ebdff5ff27fa7eb019715d9dfb5171a3b",
      "tree": "c85febe66a9527be703fd82fd9e017df740364b3",
      "parents": [
        "ff2eb6818d0d5b2691c112f51c539a817fcc59fc"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Mar 06 20:46:43 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 07 10:34:07 2012 -0500"
      },
      "message": "NFS: add filehandle crc for debug display\n\nMatch wireshark\u0027s CRC-32 hash for easier debugging\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff2eb6818d0d5b2691c112f51c539a817fcc59fc",
      "tree": "a21cbf015c37babb6a913a30c7619b8670dda99e",
      "parents": [
        "475d4ba02c3748b69cc71fa5c11c4b281cac5928"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 11:40:12 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:50 2012 -0500"
      },
      "message": "NFSv4: Add a helper encode_uint64\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "475d4ba02c3748b69cc71fa5c11c4b281cac5928",
      "tree": "9f8d3368e12cc73ac095e36f86e19c252dc087cf",
      "parents": [
        "700195142185c05757cfd27f8070ae0e9e07710b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 11:27:16 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:49 2012 -0500"
      },
      "message": "NFSv4: More xdr cleanups\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "700195142185c05757cfd27f8070ae0e9e07710b",
      "tree": "93070a75b4c35b4d5c1ee519d5952760484da12d",
      "parents": [
        "cd93710e8d290711ba2e08e1d1a380013aad667d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 20:49:32 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:49 2012 -0500"
      },
      "message": "NFSv4: Cleanup - convert more functions to use encode_op_hdr\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd93710e8d290711ba2e08e1d1a380013aad667d",
      "tree": "28f1a04dabfa3eaa64b61ea4491654e9ba70d889",
      "parents": [
        "ab19b4813fdbdef8f9c8732d1f7a2a69ae78d00b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 02 17:14:31 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:48 2012 -0500"
      },
      "message": "NFS: Fix nfs4_verifier memory alignment\n\nClean up due to code review.\n\nThe nfs4_verifier\u0027s data field is not guaranteed to be u32-aligned.\nCasting an array of chars to a u32 * is considered generally\nhazardous.\n\nFix this by using a __be32 array to generate a verifier\u0027s contents,\nand then byte-copy the contents into the verifier field.  The contents\nof a verifier, for all intents and purposes, are opaque bytes.  Only\nlocal code that generates a verifier need know the actual content and\nformat.  Everyone else compares the full byte array for exact\nequality.\n\nAlso, sizeof(nfs4_verifer) is the size of the in-core verifier data\nstructure, but NFS4_VERIFIER_SIZE is the number of octets in an XDR\u0027d\nverifier.  The two are not interchangeable, even if they happen to\nhave the same value.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ab19b4813fdbdef8f9c8732d1f7a2a69ae78d00b",
      "tree": "eef3e453d0c80d4134a833b2b8118e5ba134b275",
      "parents": [
        "4ade9821602ada8f56f3a3eb444dedbe42f1730e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:48 2012 -0500"
      },
      "message": "NFSv4: Add a encode op helper\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ade9821602ada8f56f3a3eb444dedbe42f1730e",
      "tree": "1e045d135dcb70e8607cc46cb886af1fb94fc6f7",
      "parents": [
        "6fdfb0bc2a43f5deb612b7f79d9c7750708e0184"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:48 2012 -0500"
      },
      "message": "NFSv4: Add a helper for encoding NFSv4 sequence ids\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6fdfb0bc2a43f5deb612b7f79d9c7750708e0184",
      "tree": "1c144e8448a2a392c2e86e4d7d42734e1b0c3617",
      "parents": [
        "2d2f24add1ff903ff8e0ce61c5c05635cc636985"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:47 2012 -0500"
      },
      "message": "NFSv4: Minor clean ups for encode_string()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d2f24add1ff903ff8e0ce61c5c05635cc636985",
      "tree": "132ddb133179b95931d42a19e79d25f2db33339c",
      "parents": [
        "f597c53790f662662281b82b7692a22d2a4d4afa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:47 2012 -0500"
      },
      "message": "NFSv4: Simplify the struct nfs4_stateid\n\nReplace the union with the common struct stateid4 as defined in both\nRFC3530 and RFC5661. This makes it easier to access the sequence id,\nwhich will again make implementing support for parallel OPEN calls\neasier.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f597c53790f662662281b82b7692a22d2a4d4afa",
      "tree": "3567e1c7e232973fee14b7ddffa3545cd88392d0",
      "parents": [
        "1e3987c3052a48fbfc8f5d30214c825eff41192d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:46 2012 -0500"
      },
      "message": "NFSv4: Add helpers for basic copying of stateids\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1e3987c3052a48fbfc8f5d30214c825eff41192d",
      "tree": "7940587f55f176c6f0bc7c293834a376e6130037",
      "parents": [
        "ea9d23f51041036b5d5d062dae2fafe0f670449c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:46 2012 -0500"
      },
      "message": "NFSv4: Rename nfs4_copy_stateid()\n\nIt is really a function for selecting the correct stateid to use in a\nread or write situation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ea9d23f51041036b5d5d062dae2fafe0f670449c",
      "tree": "deda0b22af68a64d4817dc4430898605d354d532",
      "parents": [
        "cb17e556f6202c200d38a2e0c05a5bd29060389f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:46 2012 -0500"
      },
      "message": "NFSv4: Add a helper for encoding stateids\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cb17e556f6202c200d38a2e0c05a5bd29060389f",
      "tree": "721c791ba3bbd1ab85ddf109f2050b903cf6a590",
      "parents": [
        "d0b496d2fc08cc51000fcdd9739235d1cab890cd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:45 2012 -0500"
      },
      "message": "NFSv4: Add a helper for encoding opaque data\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d0b496d2fc08cc51000fcdd9739235d1cab890cd",
      "tree": "ff7ac1293aad02f070a88ec7432f5099896d4aa3",
      "parents": [
        "36281caa839f4441c793c81d2e3cc5ea44ad5aa2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:45 2012 -0500"
      },
      "message": "NFSv4: Rename encode_stateid() to encode_open_stateid()\n\nThe current version of encode_stateid really only applies to open stateids.\nYou can\u0027t use it for locks, delegations or layouts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36281caa839f4441c793c81d2e3cc5ea44ad5aa2",
      "tree": "be5471741713d77681fcf1e161b0748343748977",
      "parents": [
        "8e663f0e5fabf57065aed1cfdaff5b13057dce23"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:44 2012 -0500"
      },
      "message": "NFSv4: Further clean-ups of delegation stateid validation\n\nChange the name to reflect what we\u0027re really doing: testing two\nstateids for whether or not they match according the the rules in\nRFC3530 and RFC5661.\nMove the code from callback_proc.c to nfs4proc.c\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8e663f0e5fabf57065aed1cfdaff5b13057dce23",
      "tree": "844f5568113fe1c43a6d4ac93e9dfd5452682e06",
      "parents": [
        "a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:13:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:44 2012 -0500"
      },
      "message": "NFSv4.1: Fix matching of the stateids when returning a delegation\n\nnfs41_validate_delegation_stateid is broken if we supply a stateid with\na non-zero sequence id. Instead of trying to match the sequence id,\nthe function assumes that we always want to error. While this is\ntrue for a delegation callback, it is not true in general.\n\nAlso fix a typo in nfs4_callback_recall.\n\nReported-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5",
      "tree": "80d13543ee4f1928e0436919a19de40be2a3b12b",
      "parents": [
        "fa68a1ba1de349f0d1fcc54171b95236efe24148"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 19:56:44 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:43 2012 -0500"
      },
      "message": "NFS: Properly handle the case where the delegation is revoked\n\nIf we know that the delegation stateid is bad or revoked, we need to\nremove that delegation as soon as possible, and then mark all the\nstateids that relied on that delegation for recovery. We cannot use\nthe delegation as part of the recovery process.\n\nAlso note that NFSv4.1 uses a different error code (NFS4ERR_DELEG_REVOKED)\nto indicate that the delegation was revoked.\n\nFinally, ensure that setlk() and setattr() can both recover safely from\na revoked delegation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "fa68a1ba1de349f0d1fcc54171b95236efe24148",
      "tree": "d7f1d06a8e041133fa1473b46b1eacd9f71d54d0",
      "parents": [
        "7e03b7cc0736eefe7471782c344112ad6eba951e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:14:35 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 06 10:32:43 2012 -0500"
      },
      "message": "NFS: Fix a typo in _nfs_display_fhandle\n\nThe check for \u0027fh \u003d\u003d NULL\u0027 needs to come _before_ we dereference\nfh.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7e03b7cc0736eefe7471782c344112ad6eba951e",
      "tree": "691426bfac629a9e463d543518e8223a5af4c7f0",
      "parents": [
        "91e56aaedd7ebceacde782a3921fadef4b5d0e1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 04 18:12:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 05 15:27:01 2012 -0500"
      },
      "message": "NFS: Fix a compile issue when !CONFIG_NFS_V4_1\n\nThe attempt to display the implementation ID needs to be conditional on\nwhether or not CONFIG_NFS_V4_1 is defined\n\nReported-by: Bryan Schumaker \u003cBryan.Schumaker@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8aa0a410af8011d557877e558f9ff17c082c6840",
      "tree": "e347920bcaba78f6af0fecc626c1842f85aeeb83",
      "parents": [
        "54b50af089552bae368502e35dead67e81129b8d",
        "abe9a6d57b4544ac208401f9c0a4262814db2be4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 03 15:04:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 03 15:05:56 2012 -0500"
      },
      "message": "Merge commit \u0027nfs-for-3.3-4\u0027 into nfs-for-next\n\nConflicts:\n\tfs/nfs/nfs4proc.c\n\nBack-merge of the upstream kernel in order to fix a conflict with the\nslotid type conversion and implementation id patches...\n"
    },
    {
      "commit": "54b50af089552bae368502e35dead67e81129b8d",
      "tree": "8590bf9a496926cbd2e4678442650b1d4a1c6a1e",
      "parents": [
        "264e6351c59d22303582c45d79f0a5735f51d8d1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 02 16:58:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:10 2012 -0500"
      },
      "message": "NFS: Reduce debugging noise from encode_compound_hdr\n\nGet rid of\n\n  encode_compound: tag\u003d\n\nwhen XDR debugging is enabled.  The current Linux client never sets\ncompound tags.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "264e6351c59d22303582c45d79f0a5735f51d8d1",
      "tree": "e1e15aa257b54fc890d94eb4f874ab0606ac371c",
      "parents": [
        "81934ddb8eb62a85b8015c0f2b824a88510965a2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:02:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:10 2012 -0500"
      },
      "message": "NFS: Request fh_expire_type attribute in \"server caps\" operation\n\nThe fh_expire_type file attribute is a filesystem wide attribute that\nconsists of flags that indicate what characteristics file handles\non this FSID have.\n\nOur client doesn\u0027t support volatile file handles.  It should find\nout early (say, at mount time) whether the server is going to play\nshenanighans with file handles during a migration.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "81934ddb8eb62a85b8015c0f2b824a88510965a2",
      "tree": "db5988884f8a0309b488cba6623b1ed2c31af983",
      "parents": [
        "bb4dae5e5b5a92f0ffbcc6ac10c5e8afcd87934d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:57 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:09 2012 -0500"
      },
      "message": "NFS: Introduce NFS_ATTR_FATTR_V4_LOCATIONS\n\nThe Linux NFS client must distinguish between referral events (which\nit currently supports) and migration events (which it does not yet\nsupport).\n\nIn both types of events, an fs_locations array is returned.  But upper\nlayers, not the XDR layer, should make the distinction between a\nreferral and a migration.  There really isn\u0027t a way for an XDR decoder\nfunction to distinguish the two, in general.\n\nSlightly adjust the FATTR flags returned by decode_fs_locations()\nto set NFS_ATTR_FATTR_V4_LOCATIONS only if a non-empty locations\narray was returned from the server.  Then have logic in nfs4proc.c\ndistinguish whether the locations array is for a referral or\nsomething else.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bb4dae5e5b5a92f0ffbcc6ac10c5e8afcd87934d",
      "tree": "a6ad907fbee535fff2f9234d9ebfb850f1026337",
      "parents": [
        "20d27e929fb4790a339a4ddcc9a27f14db06055b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:48 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:09 2012 -0500"
      },
      "message": "NFS: Simplify arguments of encode_renew()\n\nClean up: pass just the clientid4 to encode_renew().  This enables it\nto be used by callers who might not have an full nfs_client.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20d27e929fb4790a339a4ddcc9a27f14db06055b",
      "tree": "e62d752180c2c7342d801f903c7f2ce2dd952075",
      "parents": [
        "31b8e2aec099f22d40277c424d8c24b2a4c95fce"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:31 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:08 2012 -0500"
      },
      "message": "NFS: Add a client-side function to display NFS file handles\n\nFor debugging, introduce a simplistic function to print NFS file\nhandles on the system console.  The main function is hooked into the\ndprintk debugging facility, but you can directly call the helper,\n_nfs_display_fhandle(), if you want to print a handle unconditionally.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31b8e2aec099f22d40277c424d8c24b2a4c95fce",
      "tree": "47092ef0ac344736a78afadd71e4808e4fe63dcc",
      "parents": [
        "2e738fdce22f9a7edf20281fd2d768ef9785922e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:01:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 17:18:04 2012 -0500"
      },
      "message": "NFS: Make clientaddr\u003d optional\n\nFor NFSv4 mounts, the clientaddr\u003d mount option has always been\nrequired.  Now we have rpc_localaddr() in the kernel, which was\nmodeled after the same logic in the mount.nfs command that constructs\nthe clientaddr\u003d mount option.  If user space doesn\u0027t provide a\nclientaddr\u003d mount option, the kernel can now construct its own.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4e0038b6b246e4145fc4a53dca61a556d17bc52c",
      "tree": "67055f0c5dca7a4a24b062b1320675ad468d7b69",
      "parents": [
        "2446ab6070861aba2dd9229463ffbc40016a9f33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:01:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:41 2012 -0500"
      },
      "message": "SUNRPC: Move clnt-\u003ecl_server into struct rpc_xprt\n\nWhen the cl_xprt field is updated, the cl_server field will also have\nto change.  Since the contents of cl_server follow the remote endpoint\nof cl_xprt, just move that field to the rpc_xprt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: simplify check_gss_callback_principal(), whitespace changes ]\n[ cel: forward ported to 3.4 ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2446ab6070861aba2dd9229463ffbc40016a9f33",
      "tree": "2e366c3236788936b9f4f58c0787ae01c265f4a4",
      "parents": [
        "a3ca5651cb5eebe2e56e510bbf5cd60abc301c9f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:00:56 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:38 2012 -0500"
      },
      "message": "SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field\n\nA migration event will replace the rpc_xprt used by an rpc_clnt.  To\nensure this can be done safely, all references to cl_xprt must now use\na form of rcu_dereference().\n\nSpecial care is taken with rpc_peeraddr2str(), which returns a pointer\nto memory whose lifetime is the same as the rpc_xprt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: fix lockdep splats and layering violations ]\n[ cel: forward ported to 3.4 ]\n[ cel: remove rpc_max_reqs(), add rpc_net_ns() ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a3ca5651cb5eebe2e56e510bbf5cd60abc301c9f",
      "tree": "d4534407c920f07bad65b523ece54fe30ec3b41d",
      "parents": [
        "02a2976c9180a7dcc43bc46cf69bd3687a9d7ea6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:00:40 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:34 2012 -0500"
      },
      "message": "NFS: Add debugging messages to NFSv4\u0027s CLOSE procedure\n\nCLOSE is new with NFSv4.  Sometimes it\u0027s important to know the timing\nof this operation compared to things like lease renewal.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02a2976c9180a7dcc43bc46cf69bd3687a9d7ea6",
      "tree": "0cf276340b9a6013b33e54092f35ab9196c8f095",
      "parents": [
        "88b8e133c46792d264c991065c2c395d0b3b5482"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:00:31 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:26 2012 -0500"
      },
      "message": "NFS: Clean up debugging in decode_pathname()\n\nI noticed recently that decode_attr_fs_locations() is not generating\nvery pretty debugging output.  The pathname components each appear on\na separate line of output, though that does not appear to be the\nintended display behavior.  The preferred way to generate continued\nlines of output on the console is to use pr_cont().\n\nNote that incoming pathname4 components contain a string that is not\nnecessarily NUL-terminated.  I did actually see some trailing garbage\non the console.  In addition to correcting the line continuation\nproblem, add a string precision format specifier to ensure that each\ncomponent string is displayed properly, and that vsnprintf() does\nnot Oops.\n\nSomeone pointed out that allowing incoming network data to possibly\ngenerate a console line of unbounded length may not be such a good\nidea.  Since this output will rarely be enabled, and there is a hard\nupper bound (NFS4_PATHNAME_MAXCOMPONENTS) in our implementation, this\nis probably not a major concern.\n\nIt might be useful to additionally sanity-check the length of each\nincoming component, however.  RFC 3530bis15 does not suggest a maximum\nnumber of UTF-8 characters per component for either the pathname4 or\ncomponent4 types.  However, we could invent one that is appropriate\nfor our implementation.\n\nAnother possibility is to scrap all of this and print these pathnames\nin upper layers after a reasonable amount of sanity checking in the\nXDR layer.  This would give us an opportunity to allocate a full\nbuffer so that the whole pathname would be output via a single\ndprintk.\n\nIntroduced by commit 7aaa0b3b: \"NFSv4: convert fs-locations-components\nto conform to RFC3530,\" (June 9, 2006).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88b8e133c46792d264c991065c2c395d0b3b5482",
      "tree": "b1830fe3f798160a9bf430e19e9f6f7405d20717",
      "parents": [
        "3862279a5fcf44d0c68fa54a507a5bcd2ab4f0b7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 01 17:00:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 15:36:13 2012 -0500"
      },
      "message": "NFS: Make nfs_cache_array.size a signed integer\n\nEliminate a number of implicit type casts in comparisons, and these\ncompiler warnings:\n\nfs/nfs/dir.c: In function ‘nfs_readdir_clear_array’:\nfs/nfs/dir.c:264:16: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\nfs/nfs/dir.c: In function ‘nfs_readdir_search_for_cookie’:\nfs/nfs/dir.c:352:16: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\nfs/nfs/dir.c: In function ‘nfs_do_filldir’:\nfs/nfs/dir.c:769:38: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\nfs/nfs/dir.c:780:9: warning: comparison between signed and unsigned\n\t\tinteger expressions [-Wsign-compare]\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3862279a5fcf44d0c68fa54a507a5bcd2ab4f0b7",
      "tree": "42f49fd908d7223c03b8594a8fe7a40f579b43e7",
      "parents": [
        "7bbceb6f2bdda67054bc66035a9543623e539126"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:06:39 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:06:39 2012 -0500"
      },
      "message": "NFS: Consolidate the parsing of the \u0027-ov4.x\u0027 and \u0027-overs\u003d4.x\u0027 mount options\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7bbceb6f2bdda67054bc66035a9543623e539126",
      "tree": "901a46726fcadbef13611926b699a6f5752a1397",
      "parents": [
        "0d71b058092fc98cfef8e8f6d913180a10a55397"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:00:20 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 14:00:20 2012 -0500"
      },
      "message": "NFS: Ensure we display the minor version correctly in /proc/mounts etc.\n\nThe \u0027minorversion\u0027 mount option is now deprecated, so we need to display\nthe minor version number in the \u0027vers\u003d\u0027 format.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0d71b058092fc98cfef8e8f6d913180a10a55397",
      "tree": "54dd66684853a75b86a19ad3eb9fa4c124468a08",
      "parents": [
        "7d2ed9ac22bc6bf0d34e8fd291a5295f373b384e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 13:59:49 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 02 13:59:49 2012 -0500"
      },
      "message": "NFS: Extend the -overs\u003d mount option to allow 4.x minorversions\n\nAllow the user to mount an NFSv4.0 or NFSv4.1 partition using a\nstandard syntax of \u0027-overs\u003d4.0\u0027, or \u0027-overs\u003d4.1\u0027 rather than the\nmore cumbersome \u0027-overs\u003d4,minorversion\u003d1\u0027.\n\nSee also the earlier patch by Dros Adamson, which added the\nLinux-specific syntax \u0027-ov4.0\u0027, \u0027-ov4.1\u0027.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d2ed9ac22bc6bf0d34e8fd291a5295f373b384e",
      "tree": "d6af20f85e68c075c6587afaa94f56fe001aae4b",
      "parents": [
        "9edbd953f8aeabf49b89c7c29ff9e31560775b27"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 15:20:26 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:22 2012 -0500"
      },
      "message": "NFSv4: parse and display server implementation ids\n\nShows the implementation ids in /proc/self/mountstats.  This doesn\u0027t break\nthe nfs-utils mountstats tool.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9edbd953f8aeabf49b89c7c29ff9e31560775b27",
      "tree": "aa33f44b9935c3b303d1448f89dae52ddc8705ea",
      "parents": [
        "db8ac8ba871ae7b97118cfb2913b4986867f09a7"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 15:20:25 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:21 2012 -0500"
      },
      "message": "NFSv4: fix server_scope memory leak\n\nserver_scope would never be freed if nfs4_check_cl_exchange_flags() returned\nnon-zero\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "db8ac8ba871ae7b97118cfb2913b4986867f09a7",
      "tree": "cae7a2bfb92ea435f356f767cb0f36a819cceace",
      "parents": [
        "57e62324e469e092ecc6c94a7a86fe4bd6ac5172"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 15:20:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:21 2012 -0500"
      },
      "message": "NFSv4: Send implementation id with exchange_id\n\nSend the nfs implementation id in EXCHANGE_ID requests unless the module\nparameter nfs.send_implementation_id is 0.\n\nThis adds a CONFIG variable for the nii_domain that defaults to \"kernel.org\".\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57e62324e469e092ecc6c94a7a86fe4bd6ac5172",
      "tree": "162a5ecd487bc842bc07cc8d4c14d4d1a337813d",
      "parents": [
        "59e6b9c11341e3b8ac5925427c903d4eae435bd8"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Feb 24 14:14:51 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 17:10:16 2012 -0500"
      },
      "message": "NFS: Store the legacy idmapper result in the keyring\n\nThis patch removes the old hashmap-based caching and instead uses a\n\"request key actor\" to place an upcall to the legacy idmapper rather\nthan going through /sbin/request-key.  This will only be used as a\nfallback if /etc/request-key.conf isn\u0027t configured to use nfsidmap.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0cb3284b535bd5eacc287632b55150c8e5d9edc7",
      "tree": "ef1bdc9d47837a16ff306c9c6fcfa2659511dc4b",
      "parents": [
        "a59c30acfbe701dc991f4f84abce27818120a2ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:50 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:50 2012 -0500"
      },
      "message": "NFSv4.1: Get rid of NFS4CLNT_LAYOUTRECALL\n\nThe NFS4CLNT_LAYOUTRECALL bit is a long-term impediment to scalability. It\nbasically stops all other recalls by a given server once any layout recall\nis requested.\n\nIf the recall is for a different file, then we don\u0027t care.\nIf the recall applies to the same file, then we\u0027re in one of two situations:\nEither we are in the case of a replay of an existing request, in which case\nthe session is supposed to deal with matters, or we are dealing with a\ncompletely different request, in which case we should just try to process\nit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a59c30acfbe701dc991f4f84abce27818120a2ac",
      "tree": "675fd98cb09e3d8bf021af05396defb4d3b6d51c",
      "parents": [
        "591ad7feaec5417681b4112f8df52fc43bb7c92e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:47 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 01 11:17:47 2012 -0500"
      },
      "message": "NFSv4.1: Get rid of redundant NFS4CLNT_LAYOUTRECALL tests\n\nThe NFS4CLNT_LAYOUTRECALL tests in pnfs_layout_process and\npnfs_update_layout are redundant.\n\nIn the case of a bulk layout recall, we\u0027re always testing for\nthe NFS_LAYOUT_BULK_RECALL flay anyway.\nIn the case of a file or segment recall, the call to\npnfs_set_layout_stateid() updates the layout_header \u0027barrier\u0027\nsequence id, which triggers the test in pnfs_layoutgets_blocked()\nand is less race-prone than NFS4CLNT_LAYOUTRECALL anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9dbca8d732e20b8d31a3094a8669c014e7ee262",
      "tree": "bb77ebab17bc03f7e534df359474685bc87ff09d",
      "parents": [
        "da3b462296e421e8f54b54b7d2706488661c36e2"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Feb 27 22:05:37 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 27 13:36:35 2012 -0500"
      },
      "message": "NFS: release per-net clients lock before calling PipeFS dentries creation\n\nv3:\n1) Lookup for client is performed from the beginning of the list on each PipeFS\nevent handling operation.\n\nLockdep is sad otherwise, because inode mutex is taken on PipeFS dentry\ncreation, which can be called on mount notification, where this per-net client\nlock is taken on clients list walk.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7df529af5fb4b4064f8cd62629e259ac79c0b4ca",
      "tree": "ca2995f28fb5c487926d88d6a9f2fb710667dca9",
      "parents": [
        "abd96698613eb27415e7028b6100be930920adc6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 26 17:34:22 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 26 17:34:22 2012 -0500"
      },
      "message": "NFSv4.1: Don\u0027t call nfs4_deviceid_purge_client() unless we\u0027re NFSv4.1\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "abd96698613eb27415e7028b6100be930920adc6",
      "tree": "8049bdcf2d4d9d699f26570424189261680f8a91",
      "parents": [
        "9937347a1ee6a67e450cc9e90750ce0b10abfe75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:46:49 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:46:49 2012 +0100"
      },
      "message": "NFS: Ensure struct nfs_client holds a reference to the net namespace\n\nOtherwise we have no guarantee that the net namespace won\u0027t just\ndisappear from underneath us once the task that created it\nis destroyed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "9937347a1ee6a67e450cc9e90750ce0b10abfe75",
      "tree": "051923a6fd655fb0dc0be0b90f7de117575a91a2",
      "parents": [
        "0a702195234eb77c4097148285cccf7f095de9cf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:44:07 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Feb 19 08:44:07 2012 +0100"
      },
      "message": "NFS: Ensure that the nfs_client \u0027net\u0027 field is always set\n\nCurrently, the nfs_parsed_mount_data-\u003enet field is initialised in\nthe nfs_parse_mount_options() function, which means that it only\ngets set if we\u0027re using text based mounts. The legacy binary\nmount interface is therefore broken.\n\nFix is to initialise the -\u003enet field in nfs_alloc_parsed_mount_data.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "abe9a6d57b4544ac208401f9c0a4262814db2be4",
      "tree": "7fb4e9f48bcc6f9269ff59be77c7d9ad9c15ed2d",
      "parents": [
        "f86f36a6ae625eda87a13e1ea102a908e08f491b"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Feb 16 11:17:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 17:34:03 2012 -0500"
      },
      "message": "NFSv4: fix server_scope memory leak\n\nserver_scope would never be freed if nfs4_check_cl_exchange_flags() returned\nnon-zero\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f86f36a6ae625eda87a13e1ea102a908e08f491b",
      "tree": "4facbd3378390f4a571bbc169e197a3373f39159",
      "parents": [
        "b9f9a03150969e4bd9967c20bce67c4de769058f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 14 20:33:19 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 17:33:39 2012 -0500"
      },
      "message": "NFSv4.1: Fix a NFSv4.1 session initialisation regression\n\nCommit aacd553 (NFSv4.1: cleanup init and reset of session slot tables)\nintroduces a regression in the session initialisation code. New tables\nnow find their sequence ids initialised to 0, rather than the mandated\nvalue of 1 (see RFC5661).\n\nFix the problem by merging nfs4_reset_slot_table() and nfs4_init_slot_table().\nSince the tbl-\u003emax_slots is initialised to 0, the test in\nnfs4_reset_slot_table for max_reqs !\u003d tbl-\u003emax_slots will automatically\npass for an empty table.\n\nReported-by: Vitaliy Gusev \u003cgusev.vitaliy@nexenta.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0a702195234eb77c4097148285cccf7f095de9cf",
      "tree": "40fead6b131fb3c24e3cd85e39fbba8057196457",
      "parents": [
        "b6bf6e7d6f6fae1ddcae9e02dfe676bdc8fe892c"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Feb 17 13:15:24 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 13:39:47 2012 -0500"
      },
      "message": "NFS: include filelayout DS rpc stats in mountstats\n\nInclude RPC statistics from all data servers in /proc/self/mountstats for pNFS\nfilelayout mounts.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6bf6e7d6f6fae1ddcae9e02dfe676bdc8fe892c",
      "tree": "cf7b9ee68592ef5fc145999405e70c6f537f56d3",
      "parents": [
        "d7c32675021bd750d8e0e726f2f81f746e8cab01"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Feb 17 13:05:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 13:38:03 2012 -0500"
      },
      "message": "NFSv4.1 set highest_used_slotid to NFS4_NO_SLOT\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d7c32675021bd750d8e0e726f2f81f746e8cab01",
      "tree": "873a67e2006ea589d44ca7d4c9514ece4f34a133",
      "parents": [
        "dbb9c2a22d32492544765e798386daa2d9da27d2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Feb 15 16:35:17 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 15:05:16 2012 -0500"
      },
      "message": "nfs: Clean up debugging in nfs_follow_mountpoint()\n\nClean up: Fix a debugging message which had an obsolete function name\nin it (nfs_follow_mountpoint).\n\nIntroduced by commit 36d43a43 \"NFS: Use d_automount() rather than\nabusing follow_link()\" (January 14, 2011)\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4b9a0c1c89464dabafef974960f509ce33ae1c0",
      "tree": "54b90f1c3f403db513bebe3bf1e7fdddc202515e",
      "parents": [
        "571b7554016941ef0f0c3c61be72561e2bc55f5e"
      ],
      "author": {
        "name": "Vitaliy Gusev",
        "email": "gusev.vitaliy@gmail.com",
        "time": "Wed Feb 15 19:38:25 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 11:16:11 2012 -0500"
      },
      "message": "nfs41: Verify channel\u0027s attributes accordingly to RFC v2\n\n ca_maxoperations:\n\n      For the backchannel, the server MUST\n      NOT change the value the client offers.  For the fore channel,\n      the server MAY change the requested value.\n\n  ca_maxrequests:\n\n       For the backchannel, the server MUST NOT change the\n       value the client offers.  For the fore channel, the server MAY\n       change the requested value.\n\nSigned-off-by: Vitaliy Gusev \u003cgusev.vitaliy@nexenta.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "571b7554016941ef0f0c3c61be72561e2bc55f5e",
      "tree": "a8ad7cc44feb613af22775211d377606c737b575",
      "parents": [
        "2f09c24216cd789653eb8efbf8be88409eb8d581"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Wed Feb 01 14:06:41 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:52 2012 -0500"
      },
      "message": "NFS: dont allow minorversion\u003d opt when vers !\u003d 4\n\nDon\u0027t allow invalid \u0027vers\u0027 and \u0027minorversion\u0027 combinations in mount options,\nsuch as \"vers\u003d3,minorversion\u003d1\".\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "685f50f9188ac1e8244d0340a9d6ea36b6136cec",
      "tree": "ddb20fcea10937841e1c2af8b2da961ca0848354",
      "parents": [
        "e3da87066f950076fe274b58f0d0adc7d9f9d412"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 13:39:15 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "NFSv4: Further reduce the footprint of the idmapper\n\nDon\u0027t allocate the legacy idmapper tables until we actually need\nthem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "e3da87066f950076fe274b58f0d0adc7d9f9d412",
      "tree": "871295188aaa75d9bb04355cd999b466a19a4770",
      "parents": [
        "d073e9b541e1ac3f52d72c3a153855d9a9ee3278"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 08 13:21:38 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:51 2012 -0500"
      },
      "message": "NFSv4: The idmapper now depends on keyring functionality\n\nAdd the appropriate \u0027select KEYS\u0027 to the NFSv4 Kconfig entry.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "d073e9b541e1ac3f52d72c3a153855d9a9ee3278"
}
