)]}'
{
  "log": [
    {
      "commit": "2992c4bd5742b31a0ee00a76eee9c1c284507418",
      "tree": "b2af7d776ec6a4ae69b5f245ee0586359a99eabd",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79",
        "1650add23578b5ca35c1f1e863987180a8c03779"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 21 18:20:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 21 18:20:55 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix decode_secinfo_maxsz\n  NFSv4.1: Fix an off-by-one error in pnfs_generic_pg_test\n  NFSv4.1: Fix some issues with pnfs_generic_pg_test\n  NFSv4.1: file layout must consider pg_bsize for coalescing\n  pnfs-obj: No longer needed to take an extra ref at add_device\n  SUNRPC: Ensure the RPC client only quits on fatal signals\n  NFSv4: Fix a readdir regression\n  nfs4.1: mark layout as bad on error path in _pnfs_return_layout\n  nfs4.1: prevent race that allowed use of freed layout in _pnfs_return_layout\n  NFSv4.1: need to put_layout_hdr on _pnfs_return_layout error path\n  NFS: (d)printks should use %zd for ssize_t arguments\n  NFSv4.1: fix break condition in pnfs_find_lseg\n  nfs4.1: fix several problems with _pnfs_return_layout\n  NFSv4.1: allow zero fh array in filelayout decode layout\n  NFSv4.1: allow nfs_fhget to succeed with mounted on fileid\n  NFSv4.1: Fix a refcounting issue in the pNFS device id cache\n  NFSv4.1: deprecate headerpadsz in CREATE_SESSION\n  NFS41: do not update isize if inode needs layoutcommit\n  NLM: Don\u0027t hang forever on NLM unlock requests\n  NFS: fix umount of pnfs filesystems\n"
    },
    {
      "commit": "5afa9133cfe67f1bfead6049a9640c9262a7101c",
      "tree": "7b410b2d33069b3bad042ebe1944557533cc76c4",
      "parents": [
        "ee7b75fc4f3ae49e1f25bf56219bb5de3c29afaf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 17 10:14:59 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 17 10:17:19 2011 -0400"
      },
      "message": "SUNRPC: Ensure the RPC client only quits on fatal signals\n\nFix a couple of instances where we were exiting the RPC client on\narbitrary signals. We should only do so on fatal signals.\n\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0b760113a3a155269a3fba93a409c640031dd68f",
      "tree": "699dc3e0ebe2df11b0c67045c046deafdb56282d",
      "parents": [
        "9e3bd4e24e94d60d2e0762e919aab6c9a7fc0c5b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 31 15:15:34 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 15 11:24:27 2011 -0400"
      },
      "message": "NLM: Don\u0027t hang forever on NLM unlock requests\n\nIf the NLM daemon is killed on the NFS server, we can currently end up\nhanging forever on an \u0027unlock\u0027 request, instead of aborting. Basically,\nif the rpcbind request fails, or the server keeps returning garbage, we\nreally want to quit instead of retrying.\n\nTested-by: Vasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b084f598df36b62dfae83c10ed17f0b66b50f442",
      "tree": "afc1539781e533fc5db158f674eb1a1d88f00347",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 31 12:24:58 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 06 15:07:15 2011 -0400"
      },
      "message": "nfsd: fix dependency of nfsd on auth_rpcgss\n\nCommit b0b0c0a26e84 \"nfsd: add proc file listing kernel\u0027s gss_krb5\nenctypes\" added an nunnecessary dependency of nfsd on the auth_rpcgss\nmodule.\n\nIt\u0027s a little ad hoc, but since the only piece of information nfsd needs\nfrom rpcsec_gss_krb5 is a single static string, one solution is just to\nshare it with an include file.\n\nCc: stable@kernel.org\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nCc: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cd1acdf1723d71b28175f95b04305f1cc74ce363",
      "tree": "7ab58883eccd314be3d8efafd59a124d4ffbb861",
      "parents": [
        "fac04863cef53a69830590b2e1c54345068a9747",
        "9342077011d54f42fa1b88b7bc1f7008dcf5fff9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:10:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:10:13 2011 -0700"
      },
      "message": "Merge branch \u0027pnfs-submit\u0027 of git://git.open-osd.org/linux-open-osd\n\n* \u0027pnfs-submit\u0027 of git://git.open-osd.org/linux-open-osd: (32 commits)\n  pnfs-obj: pg_test check for max_io_size\n  NFSv4.1: define nfs_generic_pg_test\n  NFSv4.1: use pnfs_generic_pg_test directly by layout driver\n  NFSv4.1: change pg_test return type to bool\n  NFSv4.1: unify pnfs_pageio_init functions\n  pnfs-obj: objlayout_encode_layoutcommit implementation\n  pnfs: encode_layoutcommit\n  pnfs-obj: report errors and .encode_layoutreturn Implementation.\n  pnfs: encode_layoutreturn\n  pnfs: layoutret_on_setattr\n  pnfs: layoutreturn\n  pnfs-obj: osd raid engine read/write implementation\n  pnfs: support for non-rpc layout drivers\n  pnfs-obj: define per-inode private structure\n  pnfs: alloc and free layout_hdr layoutdriver methods\n  pnfs-obj: objio_osd device information retrieval and caching\n  pnfs-obj: decode layout, alloc/free lseg\n  pnfs-obj: pnfs_osd XDR client implementation\n  pnfs-obj: pnfs_osd XDR definitions\n  pnfs-obj: objlayoutdriver module skeleton\n  ...\n"
    },
    {
      "commit": "a74d70b63f1a0230831bcca3145d85ae016f9d4c",
      "tree": "24392a2843b19e81a1a38d88b34e772bd688502b",
      "parents": [
        "b11b06d90a41766c2d31f0acb8a87aa0f2a7188f",
        "c47d832bc0155153920e507f075647519bad09a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd: make local functions static\n  NFSD: Remove unused variable from nfsd4_decode_bind_conn_to_session()\n  NFSD: Check status from nfsd4_map_bcts_dir()\n  NFSD: Remove setting unused variable in nfsd_vfs_read()\n  nfsd41: error out on repeated RECLAIM_COMPLETE\n  nfsd41: compare request\u0027s opcnt with session\u0027s maxops at nfsd4_sequence\n  nfsd v4.1 lOCKT clientid field must be ignored\n  nfsd41: add flag checking for create_session\n  nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly\n  nfsd4: fix wrongsec handling for PUTFH + op cases\n  nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller\n  nfsd4: introduce OPDESC helper\n  nfsd4: allow fh_verify caller to skip pseudoflavor checks\n  nfsd: distinguish functions of NFSD_MAY_* flags\n  svcrpc: complete svsk processing on cb receive failure\n  svcrpc: take advantage of tcp autotuning\n  SUNRPC: Don\u0027t wait for full record to receive tcp data\n  svcrpc: copy cb reply instead of pages\n  svcrpc: close connection if client sends short packet\n  svcrpc: note network-order types in svc_process_calldir\n  ...\n"
    },
    {
      "commit": "f1d1c9fa8f360990e263bdcb73e35ab6fbdc41fe",
      "tree": "91468535e200f890fd532d5cbb50df59035278e0",
      "parents": [
        "2ff55e98d6e662a4887d2c688a4ab2ae510a97df",
        "176e21ee2ec89cae8d45cf1a850ea45a45428fb8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:20:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:20:02 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.40\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.40\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  SUNRPC: Support for RPC over AF_LOCAL transports\n  SUNRPC: Remove obsolete comment\n  SUNRPC: Use AF_LOCAL for rpcbind upcalls\n  SUNRPC: Clean up use of curly braces in switch cases\n  NFS: Revert NFSROOT default mount options\n  SUNRPC: Rename xs_encode_tcp_fragment_header()\n  nfs,rcu: convert call_rcu(nfs_free_delegation_callback) to kfree_rcu()\n  nfs41: Correct offset for LAYOUTCOMMIT\n  NFS: nfs_update_inode: print current and new inode size in debug output\n  NFSv4.1: Fix the handling of NFS4ERR_SEQ_MISORDERED errors\n  NFSv4: Handle expired stateids when the lease is still valid\n  SUNRPC: Deal with the lack of a SYN_SENT sk-\u003esk_state_change callback...\n"
    },
    {
      "commit": "f7da7a129d57bfe0f74573dc03531c63e1360fae",
      "tree": "6efcd0fbdde9bb816ebc70731f1c47b8335ccfe3",
      "parents": [
        "35c8bb543c9e83197e6375142d1d1c2ee3cf017d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu May 19 14:16:47 2011 -0400"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:32 2011 +0300"
      },
      "message": "SUNRPC: introduce xdr_init_decode_pages\n\nInitialize xdr_stream and xdr_buf using an array of page pointers\nand length of buffer.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "176e21ee2ec89cae8d45cf1a850ea45a45428fb8",
      "tree": "4e1231617d193b3fe62ea5bd4df5e4d8fe8b9e80",
      "parents": [
        "559649efb9b0d248541933197bdf7b75529da457"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@ORACLE.COM",
        "time": "Mon May 09 15:22:44 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Support for RPC over AF_LOCAL transports\n\nTI-RPC introduces the capability of performing RPC over AF_LOCAL\nsockets.  It uses this mainly for registering and unregistering\nlocal RPC services securely with the local rpcbind, but we could\nalso conceivably use it as a generic upcall mechanism.\n\nThis patch provides a client-side only implementation for the moment.\nWe might also consider a server-side implementation to provide\nAF_LOCAL access to NLM (for statd downcalls, and such like).\n\nAutobinding is not supported on kernel AF_LOCAL transports at this\ntime.  Kernel ULPs must specify the pathname of the remote endpoint\nwhen an AF_LOCAL transport is created.  rpcbind supports registering\nservices available via AF_LOCAL, so the kernel could handle it with\nsome adjustment to -\u003erpcbind and -\u003eset_port.  But we don\u0027t need this\nfeature for doing upcalls via well-known named sockets.\n\nThis has not been tested with ULPs that move a substantial amount of\ndata.  Thus, I can\u0027t attest to how robust the write_space and\ncongestion management logic is.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "559649efb9b0d248541933197bdf7b75529da457",
      "tree": "9b05d731d8f69e7a922d21c0b29340ea799e79c0",
      "parents": [
        "7402ab19cdd5943c7dd4f3399afe3abda8077ef5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 09 15:23:04 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Remove obsolete comment\n\nClean up.  The documenting comment at the top of net/sunrpc/clnt.c is\nout of date.  We adopted BSD\u0027s RTO estimation mechanism years ago.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7402ab19cdd5943c7dd4f3399afe3abda8077ef5",
      "tree": "70c2a418124011a1c8337ec6b221c945846b3f4a",
      "parents": [
        "da09eb93033e7204cb3e3f3140b46cf108c42c8f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 09 15:22:55 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Use AF_LOCAL for rpcbind upcalls\n\nAs libtirpc does in user space, have our registration API try using an\nAF_LOCAL transport first when registering and unregistering.\n\nThis means we don\u0027t chew up privileged ports, and our registration is\nbound to an \"owner\" (the effective uid of the process on the sending\nend of the transport).  Only that \"owner\" may unregister the service.\n\nThe kernel could probe rpcbind via an rpcbind query to determine\nwhether rpcbind has an AF_LOCAL service. For simplicity, we use the\nsame technique that libtirpc uses: simply fail over to network\nloopback if creating an AF_LOCAL transport to the well-known rpcbind\nservice socket fails.\n\nThis means we open-code the pathname of the rpcbind socket in the\nkernel.  For now we have to do that anyway because the kernel\u0027s\nRPC over AF_LOCAL implementation does not support autobind.  That may\nbe undesirable in the long term.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "da09eb93033e7204cb3e3f3140b46cf108c42c8f",
      "tree": "549b82e88f751b5398afb5b4582f7a60b7136caf",
      "parents": [
        "4251c94833aa516c1fc7a0f8f504a26eadd4b91e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 09 15:22:25 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Clean up use of curly braces in switch cases\n\nClean up.  Preferred style is not to use curly braces around\nswitch cases.  I\u0027m about to add another case that needs a third\ntype cast.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "61677eeec29e87edc03a1061ae0a04b92507450d",
      "tree": "a305e0359d5c2b3cd611f9989bf18f4202c48cb2",
      "parents": [
        "26f04dde681c6a48b2bacfc5fe01fef204419b0c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 09 15:22:34 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Rename xs_encode_tcp_fragment_header()\n\nClean up: Use a more generic name for xs_encode_tcp_fragment_header();\nit\u0027s appropriate to use for all stream transport types.  We\u0027re about\nto add new stream transport.\n\nAlso, move it to a place where it is more easily shared amongst the\nvarious send_request methods.  And finally, replace the \"htonl\" macro\ninvocation with its modern equivalent.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe19a96b10032035a35779f42ad59e35d6dd8ffd",
      "tree": "12277ec0de8e30806f3fd4287da9cc6433d69615",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 18 20:21:23 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:00 2011 -0400"
      },
      "message": "SUNRPC: Deal with the lack of a SYN_SENT sk-\u003esk_state_change callback...\n\nThe TCP connection state code depends on the state_change() callback\nbeing called when the SYN_SENT state is set. However the networking layer\ndoesn\u0027t actually call us back in that case.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4c171acc20794af16a27da25e11ec4e9cad5d9fa",
      "tree": "fb097384d709b7bda982902d999f658bb4f07b2c",
      "parents": [
        "20e0ec119b2c6cc412addefbe169f4f5e38701e8",
        "8dc4abdf4c82d0e1c47f14b6615406d31975ea66"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 12:13:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 12:13:57 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  RDMA/cma: Save PID of ID\u0027s owner\n  RDMA/cma: Add support for netlink statistics export\n  RDMA/cma: Pass QP type into rdma_create_id()\n  RDMA: Update exported headers list\n  RDMA/cma: Export enum cma_state in \u003crdma/rdma_cm.h\u003e\n  RDMA/nes: Add a check for strict_strtoul()\n  RDMA/cxgb3: Don\u0027t post zero-byte read if endpoint is going away\n  RDMA/cxgb4: Use completion objects for event blocking\n  IB/srp: Fix integer -\u003e pointer cast warnings\n  IB: Add devnode methods to cm_class and umad_class\n  IB/mad: Return EPROTONOSUPPORT when an RDMA device lacks the QP required\n  IB/uverbs: Add devnode method to set path/mode\n  RDMA/ucma: Add .nodename/.mode to tell userspace where to create device node\n  RDMA: Add netlink infrastructure\n  RDMA: Add error handling to ib_core_init()\n"
    },
    {
      "commit": "b26f9b9949013fec31b23c426fc463164ae08891",
      "tree": "072bbf5abb93baea33a4aebaad2381ff69563a0b",
      "parents": [
        "9a7147b506ccae8552b0cf218b3c02982012eb4d"
      ],
      "author": {
        "name": "Sean Hefty",
        "email": "sean.hefty@intel.com",
        "time": "Thu Apr 01 17:08:41 2010 +0000"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed May 25 13:46:23 2011 -0700"
      },
      "message": "RDMA/cma: Pass QP type into rdma_create_id()\n\nThe RDMA CM currently infers the QP type from the port space selected\nby the user.  In the future (eg with RDMA_PS_IB or XRC), there may not\nbe a 1-1 correspondence between port space and QP type.  For netlink\nexport of RDMA CM state, we want to export the QP type to userspace,\nso it is cleaner to explicitly associate a QP type to an ID.\n\nModify rdma_create_id() to allow the user to specify the QP type, and\nuse it to make our selections of datagram versus connected mode.\n\nSigned-off-by: Sean Hefty \u003csean.hefty@intel.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\n"
    },
    {
      "commit": "1495f230fa7750479c79e3656286b9183d662077",
      "tree": "e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5",
      "parents": [
        "a09ed5e00084448453c8bada4dcd31e5fbfc2f21"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "vmscan: change shrinker API by passing shrink_control struct\n\nChange each shrinker\u0027s API by consolidating the existing parameters into\nshrink_control struct.  This will simplify any further features added w/o\ntouching each file of shrinker.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix warning]\n[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]\n[akpm@linux-foundation.org: fix xfs warning]\n[akpm@linux-foundation.org: update gfs2]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57d19e80f459dd845fb3cfeba8e6df8471bac142",
      "tree": "8254766715720228db3d50f1ef3c7fe003c06d65",
      "parents": [
        "ee9ec4f82049c678373a611ce20ac67fe9ad836e",
        "e64851f5a0ad6ec991f74ebb3108c35aa0323d5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  b43: fix comment typo reqest -\u003e request\n  Haavard Skinnemoen has left Atmel\n  cris: typo in mach-fs Makefile\n  Kconfig: fix copy/paste-ism for dell-wmi-aio driver\n  doc: timers-howto: fix a typo (\"unsgined\")\n  perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c\n  md, raid5: Fix spelling error in comment (\u0027Ofcourse\u0027 --\u003e \u0027Of course\u0027).\n  treewide: fix a few typos in comments\n  regulator: change debug statement be consistent with the style of the rest\n  Revert \"arm: mach-u300/gpio: Fix mem_region resource size miscalculations\"\n  audit: acquire creds selectively to reduce atomic op overhead\n  rtlwifi: don\u0027t touch with treewide double semicolon removal\n  treewide: cleanup continuations and remove logging message whitespace\n  ath9k_hw: don\u0027t touch with treewide double semicolon removal\n  include/linux/leds-regulator.h: fix syntax in example code\n  tty: fix typo in descripton of tty_termios_encode_baud_rate\n  xtensa: remove obsolete BKL kernel option from defconfig\n  m68k: fix comment typo \u0027occcured\u0027\n  arch:Kconfig.locks Remove unused config option.\n  treewide: remove extra semicolons\n  ...\n"
    },
    {
      "commit": "70f23fd66bc821a0e99647f70a809e277cc93c4c",
      "tree": "3e768b77e63c6364ef32cf257c9449369afd215f",
      "parents": [
        "c719864f15676af92b705589c93ba1468b89cd24"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Tue May 10 10:16:21 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 10 10:16:21 2011 +0200"
      },
      "message": "treewide: fix a few typos in comments\n\n- kenrel -\u003e kernel\n- whetehr -\u003e whether\n- ttt -\u003e tt\n- sss -\u003e ss\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "07f9479a40cc778bc1462ada11f95b01360ae4ff",
      "tree": "0676cf38df3844004bb3ebfd99dfa67a4a8998f5",
      "parents": [
        "9d5e6bdb3013acfb311ab407eeca0b6a6a3dedbf",
        "cd2e49e90f1cae7726c9a2c54488d881d7f1cd1c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 26 10:22:15 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 26 10:22:59 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forwarded to current state of Linus\u0027 tree as there are patches to be\napplied for files that didn\u0027t exist on the old branch.\n"
    },
    {
      "commit": "7494d00c7b826b6ceb79ec33892bd0ef59be5614",
      "tree": "1a8a6d056047135108ffc8ea311ccd80d1fd28fd",
      "parents": [
        "fd954ae124e8a866e9cc1bc3de9a07be5492f608"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 24 14:28:45 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 24 14:28:45 2011 -0400"
      },
      "message": "SUNRPC: Allow RPC calls to return ETIMEDOUT instead of EIO\n\nOn occasion, it is useful for the NFS layer to distinguish between\nsoft timeouts and other EIO errors due to (say) encoding errors,\nor authentication errors.\n\nThe following patch ensures that the default behaviour of the RPC\nlayer remains to return EIO on soft timeouts (until we have\naudited all the callers).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "468f86134ee515234afe5c5b3f39f266c50e61a5",
      "tree": "912d0d587ffa2897ce16ed1258e8f52b23308b61",
      "parents": [
        "47c2199b6eb5fbe38ddb844db7cdbd914d304f9c"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Apr 18 15:57:32 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 18 17:05:48 2011 -0400"
      },
      "message": "NFSv4.1: Don\u0027t update sequence number if rpc_task is not sent\n\nIf we fail to contact the gss upcall program, then no message will\nbe sent to the server.  The client still updated the sequence number,\nhowever, and this lead to NFS4ERR_SEQ_MISMATCH for the next several\nRPC calls.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e3b2854faabd10438f5e7e34e078b099c3375577",
      "tree": "71e0e77eeca9ae206e1a71ae7117a538df3ac2fb",
      "parents": [
        "c3dfc2808ab82b13f8b6db62189da959c2eadeea"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 15 12:58:56 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 15 18:28:18 2011 -0400"
      },
      "message": "SUNRPC: Fix the SUNRPC Kerberos V RPCSEC_GSS module dependencies\n\nSince kernel 2.6.35, the SUNRPC Kerberos support has had an implicit\ndependency on a number of additional crypto modules. The following\npatch makes that dependency explicit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d1a8016a2d1e75021ecc8715e3c81442d7218eb6",
      "tree": "b2aaef4f3aa4566765c6e3c743c74929a7790af2",
      "parents": [
        "79a48a1f5d99ab66cf83d2d5d805e7a0e08452ed"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 13 14:31:28 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 15:12:22 2011 -0400"
      },
      "message": "NFS: Fix infinite loop in gss_create_upcall()\n\nThere can be an infinite loop if gss_create_upcall() is called without\nthe userspace program running.  To prevent this, we return -EACCES if\nwe notice that pipe_version hasn\u0027t changed (indicating that the pipe\nhas not been opened).\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6eab04a87677a37cf15b52e2b4b4fd57917102ad",
      "tree": "dc92e25473e7e5c9183312d7feeeaeabb2157baf",
      "parents": [
        "9f0af69b2dd34d2c21817d599db7bdb3c972a759"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Fri Apr 08 19:49:08 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Apr 10 17:01:05 2011 +0200"
      },
      "message": "treewide: remove extra semicolons\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8985ef0b8af895c3b85a8c1b7108e0169fcbd20b",
      "tree": "0e71ed0ca7c913b435a291cb975cd5f4f58809b8",
      "parents": [
        "d6c558379abc27241c75b8c30fc8c94b82537d5e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Apr 09 10:03:10 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Apr 10 10:47:46 2011 -0400"
      },
      "message": "svcrpc: complete svsk processing on cb receive failure\n\nCurrently when there\u0027s some failure to receive a callback (because we\ncouldn\u0027t find a matching xid, for example), we exit svc_recv with\nsk_tcplen still set but without any pages saved with the socket.  This\nwill cause a crash later in svc_tcp_restore_pages.\n\nInstead, make sure we reset that tcp information whether the callback\nreceived failed or succeeded.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "94c8a984ae2adbd9a9626fb42e0f2faf3e36e86f",
      "tree": "a4beddd64501ef00ad41c8fd5974340bec2fcf73",
      "parents": [
        "f9fa0bc1fabe1d861e46d80ecbe7e85da359195c",
        "37adb89fadd65ce47f7e5cfd564938a76b351948"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:47:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:47:35 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Change initial mount authflavor only when server returns NFS4ERR_WRONGSEC\n  NFS: Fix a signed vs. unsigned secinfo bug\n  Revert \"net/sunrpc: Use static const char arrays\"\n"
    },
    {
      "commit": "9660439861aa8dbd5e2b8087f33e20760c2c9afc",
      "tree": "612460d547807056e10cebcd97156a555601d6c3",
      "parents": [
        "31d68ef65c7d49def19c1bae4e01b87d66cf5a56"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Oct 21 14:13:47 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:40 2011 -0400"
      },
      "message": "svcrpc: take advantage of tcp autotuning\n\nAllow the NFSv4 server to make use of TCP autotuning behaviour, which\nwas previously disabled by setting the sk_userlocks variable.\n\nSet the receive buffers to be big enough to receive the whole RPC\nrequest, and set this for the listening socket, not the accept socket.\n\nRemove the code that readjusts the receive/send buffer sizes for the\naccepted socket. Previously this code was used to influence the TCP\nwindow management behaviour, which is no longer needed when autotuning\nis enabled.\n\nThis can improve IO bandwidth on networks with high bandwidth-delay\nproducts, where a large tcp window is required.  It also simplifies\nperformance tuning, since getting adequate tcp buffers previously\nrequired increasing the number of nfsd threads.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nCc: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "31d68ef65c7d49def19c1bae4e01b87d66cf5a56",
      "tree": "e55082c9573cb189f352c5fa9eb1c9d0ef5cf2d0",
      "parents": [
        "586c52cc61b5b84c70102208b78269ef5924bf49"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Feb 24 11:25:33 2011 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:40 2011 -0400"
      },
      "message": "SUNRPC: Don\u0027t wait for full record to receive tcp data\n\nEnsure that we immediately read and buffer data from the incoming TCP\nstream so that we grow the receive window quickly, and don\u0027t deadlock on\nlarge READ or WRITE requests.\n\nAlso do some minor exit cleanup.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "586c52cc61b5b84c70102208b78269ef5924bf49",
      "tree": "c218a2ab64877297dd530c9997e4bbfb6a12577a",
      "parents": [
        "cc6c2127f2316c2b2ad1e8919b45cde5e03f65aa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 18 17:47:56 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:40 2011 -0400"
      },
      "message": "svcrpc: copy cb reply instead of pages\n\nIt\u0027s much simpler just to copy the cb reply data than to play tricks\nwith pages.  Callback replies will typically be very small (at least\nuntil we implement cb_getattr, in which case files with very long ACLs\ncould pose a problem), so there\u0027s no loss in efficiency.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cc6c2127f2316c2b2ad1e8919b45cde5e03f65aa",
      "tree": "d75c2fe1f4e0be7756b0277e9c707b5dc03c9912",
      "parents": [
        "48e6555c7b3bf0d92f8167d8b8b8ecf4a3fdab84"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 15:03:35 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:40 2011 -0400"
      },
      "message": "svcrpc: close connection if client sends short packet\n\nIf the client sents a record too short to contain even the beginning of\nthe rpc header, then just close the connection.\n\nThe current code drops the record data and continues.  I don\u0027t see the\npoint.  It\u0027s a hopeless situation and simpler just to cut off the\nconnection completely.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "48e6555c7b3bf0d92f8167d8b8b8ecf4a3fdab84",
      "tree": "7f66e9a7cc801b0759d49e18eec5741d617692de",
      "parents": [
        "5ee78d483c5812228e971e145b912e0a7e35e571"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 14:52:03 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:40 2011 -0400"
      },
      "message": "svcrpc: note network-order types in svc_process_calldir\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5ee78d483c5812228e971e145b912e0a7e35e571",
      "tree": "0d4003ba3802f8e26d44c45a3fc0cdcb95f68999",
      "parents": [
        "0601f793921157603831d00a9541d92e8f5763f6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 18 17:47:56 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:39 2011 -0400"
      },
      "message": "SUNRPC: svc_tcp_recvfrom cleanup\n\nMinor cleanup in preparation for later patches.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0601f793921157603831d00a9541d92e8f5763f6",
      "tree": "41441d91749c300a76f7b633ec36040046be601a",
      "parents": [
        "6221f222c0ebf1acdf7abcf927178f40e1a65e2a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 18 17:47:56 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 14:36:39 2011 -0400"
      },
      "message": "SUNRPC: requeue tcp socket less frequently\n\nDon\u0027t requeue the socket in some cases where we know it\u0027s unnecessary.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0867659fa3c245bf203d837a82e0f6ea5079c2c5",
      "tree": "b4055632e89463046fd32ba20d3a691fd798da95",
      "parents": [
        "6221f222c0ebf1acdf7abcf927178f40e1a65e2a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 06 10:13:32 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 06 11:18:17 2011 -0700"
      },
      "message": "Revert \"net/sunrpc: Use static const char arrays\"\n\nThis reverts commit 411b5e05617593efebc06241dbc56f42150f2abe.\n\nOlga Kornievskaia reports:\n\nProblem: linux client mounting linux server using rc4-hmac-md5\nenctype. gssd fails with create a context after receiving a reply from\nthe server.\n\nDiagnose: putting printout statements in the server kernel and\nkerberos libraries revealed that client and server derived different\nintegrity keys.\n\nServer kernel code was at fault due the the commit\n\n[aglo@skydive linux-pnfs]$ git show 411b5e05617593efebc06241dbc56f42150f2abe\n\nTrond: The problem is that since it relies on virt_to_page(), you cannot\ncall sg_set_buf() for data in the const section.\n\nReported-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\t[2.6.36+]\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "a271c5a0dea418931b6a903ef85adc30ad4c54be",
      "tree": "1f2e926c8d7c4f635d703bc2c2470120408a0738",
      "parents": [
        "a0e7e3cf7932d6c77de0dc79a40dbaeb8060b544"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Mar 27 17:48:57 2011 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 27 17:55:36 2011 +0200"
      },
      "message": "NFS: Ensure that rpc_release_resources_task() can be called twice.\n\nBUG: atomic_dec_and_test(): -1: atomic counter underflow at:\nPid: 2827, comm: mount.nfs Not tainted 2.6.38 #1\nCall Trace:\n [\u003cffffffffa02223a0\u003e] ? put_rpccred+0x44/0x14e [sunrpc]\n [\u003cffffffffa021bbe9\u003e] ? rpc_ping+0x4e/0x58 [sunrpc]\n [\u003cffffffffa021c4a5\u003e] ? rpc_create+0x481/0x4fc [sunrpc]\n [\u003cffffffffa022298a\u003e] ? rpcauth_lookup_credcache+0xab/0x22d [sunrpc]\n [\u003cffffffffa028be8c\u003e] ? nfs_create_rpc_client+0xa6/0xeb [nfs]\n [\u003cffffffffa028c660\u003e] ? nfs4_set_client+0xc2/0x1f9 [nfs]\n [\u003cffffffffa028cd3c\u003e] ? nfs4_create_server+0xf2/0x2a6 [nfs]\n [\u003cffffffffa0295d07\u003e] ? nfs4_remote_mount+0x4e/0x14a [nfs]\n [\u003cffffffff810dd570\u003e] ? vfs_kern_mount+0x6e/0x133\n [\u003cffffffffa029605a\u003e] ? nfs_do_root_mount+0x76/0x95 [nfs]\n [\u003cffffffffa029643d\u003e] ? nfs4_try_mount+0x56/0xaf [nfs]\n [\u003cffffffffa0297434\u003e] ? nfs_get_sb+0x435/0x73c [nfs]\n [\u003cffffffff810dd59b\u003e] ? vfs_kern_mount+0x99/0x133\n [\u003cffffffff810dd693\u003e] ? do_kern_mount+0x48/0xd8\n [\u003cffffffff810f5b75\u003e] ? do_mount+0x6da/0x741\n [\u003cffffffff810f5c5f\u003e] ? sys_mount+0x83/0xc0\n [\u003cffffffff8100293b\u003e] ? system_call_fastpath+0x16/0x1b\n\nWell, so, I think this is real bug of nfs codes somewhere. With some\nreview, the code\n\nrpc_call_sync()\n    rpc_run_task\n        rpc_execute()\n            __rpc_execute()\n                rpc_release_task()\n                    rpc_release_resources_task()\n                        put_rpccred()                \u003c\u003d release cred\n    rpc_put_task\n        rpc_do_put_task()\n            rpc_release_resources_task()\n                put_rpccred()                        \u003c\u003d release cred again\n\nseems to be release cred unintendedly.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40471856f2e38e9bfa8d605295e8234421110dd6",
      "tree": "9757e42e40bdbfcff7c52ab133e32b5c2203153b",
      "parents": [
        "ae005cbed12d0b340b04b59d6f5c56e710b3895d",
        "0acd2201920d0968919f4f5797d63f7b6f2b19d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:03:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:03:28 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.39\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.39\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (28 commits)\n  Cleanup XDR parsing for LAYOUTGET, GETDEVICEINFO\n  NFSv4.1 convert layoutcommit sync to boolean\n  NFSv4.1 pnfs_layoutcommit_inode fixes\n  NFS: Determine initial mount security\n  NFS: use secinfo when crossing mountpoints\n  NFS: Add secinfo procedure\n  NFS: lookup supports alternate client\n  NFS: convert call_sync() to a function\n  NFSv4.1 remove temp code that prevented ds commits\n  NFSv4.1: layoutcommit\n  NFSv4.1: filelayout driver specific code for COMMIT\n  NFSv4.1: remove GETATTR from ds commits\n  NFSv4.1: add generic layer hooks for pnfs COMMIT\n  NFSv4.1: alloc and free commit_buckets\n  NFSv4.1: shift filelayout_free_lseg\n  NFSv4.1: pull out code from nfs_commit_release\n  NFSv4.1: pull error handling out of nfs_commit_list\n  NFSv4.1: add callback to nfs4_commit_done\n  NFSv4.1: rearrange nfs_commit_rpcsetup\n  NFSv4.1: don\u0027t send COMMIT to ds for data sync writes\n  ...\n"
    },
    {
      "commit": "0acd2201920d0968919f4f5797d63f7b6f2b19d4",
      "tree": "9b241d264f42eff3ff4eeffb67616fca0490e460",
      "parents": [
        "8f70e95f9f4159184f557a1db60c909d7c1bd2e3",
        "35124a0994fc02545b14b9fa3aad000b3331f1c0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 24 17:03:14 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 24 17:03:14 2011 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.39\u0027 into nfs-for-next\n"
    },
    {
      "commit": "8f70e95f9f4159184f557a1db60c909d7c1bd2e3",
      "tree": "80acf6fa7d35d29ba03798fb6745ad9791f965c9",
      "parents": [
        "7ebb931598cd95cccea10d4bc4c0123a464ea565"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Mar 24 17:12:31 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 24 13:52:42 2011 -0400"
      },
      "message": "NFS: Determine initial mount security\n\nWhen sec\u003d\u003csomething\u003e is not presented as a mount option,\nwe should attempt to determine what security flavor the\nserver is using.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7ebb931598cd95cccea10d4bc4c0123a464ea565",
      "tree": "dec1af6eefdbbc3ce42346d7c6d407088eaf509e",
      "parents": [
        "5a5ea0d485c9715c86bf858bbdc5f6d373b3db88"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Mar 24 17:12:30 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 24 13:52:42 2011 -0400"
      },
      "message": "NFS: use secinfo when crossing mountpoints\n\nA submount may use different security than the parent\nmount does.  We should figure out what sec flavor the\nsubmount uses at mount time.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc87c55120b0a5b0c4d731183f8bb348981aba65",
      "tree": "c5a4f94ed6cc1678072c125f2cae08f04ce4f2b8",
      "parents": [
        "5818fcc8bd1b27af4d40b8357b91a56cc3fae6a4",
        "4be34b9d69c97211ff4eb00d79078f3c1593804d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 08:20:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 08:20:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux:\n  SUNRPC: Remove resource leak in svc_rdma_send_error()\n  nfsd: wrong index used in inner loop\n  nfsd4: fix comment and remove unused nfsd4_file fields\n  nfs41: make sure nfs server return right ca_maxresponsesize_cached\n  nfsd: fix compile error\n  svcrpc: fix bad argument in unix_domain_find\n  nfsd4: fix struct file leak\n  nfsd4: minor nfs4state.c reshuffling\n  svcrpc: fix rare race on unix_domain creation\n  nfsd41: modify the members value of nfsd4_op_flags\n  nfsd: add proc file listing kernel\u0027s gss_krb5 enctypes\n  gss:krb5 only include enctype numbers in gm_upcall_enctypes\n  NFSD, VFS: Remove dead code in nfsd_rename()\n  nfsd: kill unused macro definition\n  locks: use assign_type()\n"
    },
    {
      "commit": "246408dcd5dfeef2df437ccb0ef4d6ee87805f58",
      "tree": "681179a81ef914616f33edf83129a716081b9054",
      "parents": [
        "b8413f98f997bb3ed7327e6d7117e7e91ce010c3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 22 18:40:10 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 22 18:42:33 2011 -0400"
      },
      "message": "SUNRPC: Never reuse the socket port after an xs_close()\n\nIf we call xs_close(), we\u0027re in one of two situations:\n - Autoclose, which means we don\u0027t expect to resend a request\n - bind+connect failed, which probably means the port is in use\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "179198373cf374f0ef793f1023c1cdd83b53674d",
      "tree": "9c7f9e82b936864b9d8cf91b3d4121a3c8d2671c",
      "parents": [
        "374e55251cacfb68d331bb8a574b2de8160aacc2",
        "8e26de238fd794c8ea56a5c98bf67c40cfeb051d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 17 17:40:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 17 17:40:00 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.39\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.39\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (54 commits)\n  RPC: killing RPC tasks races fixed\n  xprt: remove redundant check\n  SUNRPC: Convert struct rpc_xprt to use atomic_t counters\n  SUNRPC: Ensure we always run the tk_callback before tk_action\n  sunrpc: fix printk format warning\n  xprt: remove redundant null check\n  nfs: BKL is no longer needed, so remove the include\n  NFS: Fix a warning in fs/nfs/idmap.c\n  Cleanup: Factor out some cut-and-paste code.\n  cleanup: save 60 lines/100 bytes by combining two mostly duplicate functions.\n  NFS: account direct-io into task io accounting\n  gss:krb5 only include enctype numbers in gm_upcall_enctypes\n  RPCRDMA: Fix FRMR registration/invalidate handling.\n  RPCRDMA: Fix to XDR page base interpretation in marshalling logic.\n  NFSv4: Send unmapped uid/gids to the server when using auth_sys\n  NFSv4: Propagate the error NFS4ERR_BADOWNER to nfs4_do_setattr\n  NFSv4: cleanup idmapper functions to take an nfs_server argument\n  NFSv4: Send unmapped uid/gids to the server if the idmapper fails\n  NFSv4: If the server sends us a numeric uid/gid then accept it\n  NFSv4.1: reject zero layout with zeroed stripe unit\n  ...\n"
    },
    {
      "commit": "4be34b9d69c97211ff4eb00d79078f3c1593804d",
      "tree": "2e6b53f9b195829a7f02ea4b834b817f568426f3",
      "parents": [
        "5a02ab7c3c4580f94d13c683721039855b67cda6"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sat Jan 22 22:40:20 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 17 14:38:03 2011 -0400"
      },
      "message": "SUNRPC: Remove resource leak in svc_rdma_send_error()\n\nWe leak the memory allocated to \u0027ctxt\u0027 when we return after\n\u0027ib_dma_mapping_error()\u0027 returns !\u003d0.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8e26de238fd794c8ea56a5c98bf67c40cfeb051d",
      "tree": "3c8d0e6b1e6e0782b13221ee6c39e5be09552dd9",
      "parents": [
        "ba3c578de274a5438bafbce03f9225936698051c"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Mar 17 18:54:23 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 17 12:39:00 2011 -0400"
      },
      "message": "RPC: killing RPC tasks races fixed\n\nRPC task RPC_TASK_QUEUED bit is set must be checked before trying to wake up\ntask rpc_killall_tasks() because task-\u003etk_waitqueue can not be set (equal to\nNULL).\nAlso, as Trond Myklebust mentioned, such approach (instead of checking\ntk_waitqueue to NULL) allows us to \"optimise away the call to\nrpc_wake_up_queued_task() altogether for those\ntasks that aren\u0027t queued\".\n\nHere is an example of dereferencing of tk_waitqueue equal to NULL:\n\nCPU 0               \tCPU 1\t\t\t\tCPU 2\n--------------------\t---------------------\t--------------------------\nnfs4_run_open_task\nrpc_run_task\nrpc_execute\nrpc_set_active\nrpc_make_runnable\n(waiting)\n\t\t\trpc_async_schedule\n\t\t\tnfs4_open_prepare\n\t\t\tnfs_wait_on_sequence\n\t\t\t\t\t\tnfs_umount_begin\n\t\t\t\t\t\trpc_killall_tasks\n\t\t\t\t\t\trpc_wake_up_task\n\t\t\t\t\t\trpc_wake_up_queued_task\n\t\t\t\t\t\tspin_lock(tk_waitqueue \u003d\u003d NULL)\n\t\t\t\t\t\tBUG()\n\t\t\trpc_sleep_on\n\t\t\tspin_lock(\u0026q-\u003elock)\n\t\t\t__rpc_sleep_on\n\t\t\ttask-\u003etk_waitqueue \u003d q\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@openvz.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba3c578de274a5438bafbce03f9225936698051c",
      "tree": "fd7b7f821334806583d76104995c126485bce5c6",
      "parents": [
        "a8de240a9074b72b156d9e6d53f00076e6cd5f03"
      ],
      "author": {
        "name": "j223yang@asset.uwaterloo.ca",
        "email": "j223yang@asset.uwaterloo.ca",
        "time": "Wed Mar 16 11:16:22 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 17 12:39:00 2011 -0400"
      },
      "message": "xprt: remove redundant check\n\nremove redundant check.\n\nSigned-off-by: Jinqiu Yang \u003ccrindy646@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a8de240a9074b72b156d9e6d53f00076e6cd5f03",
      "tree": "9436ca858870ce89af75703b61a2c25889db354e",
      "parents": [
        "e020c6800c9621a77223bf2c1ff68180e41e8ebf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 15 19:56:30 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 17 12:38:59 2011 -0400"
      },
      "message": "SUNRPC: Convert struct rpc_xprt to use atomic_t counters\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e020c6800c9621a77223bf2c1ff68180e41e8ebf",
      "tree": "80e6ede1f189ad1a666fe5ad3c0aa1679b95ac47",
      "parents": [
        "986d4abbddf9e76184f6cabf66654ea8e61bcde5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 15 19:56:30 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 17 12:38:41 2011 -0400"
      },
      "message": "SUNRPC: Ensure we always run the tk_callback before tk_action\n\nThis fixes a race in which the task-\u003etk_callback() puts the rpc_task\nto sleep, setting a new callback. Under certain circumstances, the current\ncode may end up executing the task-\u003etk_action before it gets round to the\ncallback.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "7a6362800cb7d1d618a697a650c7aaed3eb39320",
      "tree": "087f9bc6c13ef1fad4b392c5cf9325cd28fa8523",
      "parents": [
        "6445ced8670f37cfc2c5e24a9de9b413dbfc788d",
        "ceda86a108671294052cbf51660097b6534672f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 16:29:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 16:29:25 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1480 commits)\n  bonding: enable netpoll without checking link status\n  xfrm: Refcount destination entry on xfrm_lookup\n  net: introduce rx_handler results and logic around that\n  bonding: get rid of IFF_SLAVE_INACTIVE netdev-\u003epriv_flag\n  bonding: wrap slave state work\n  net: get rid of multiple bond-related netdevice-\u003epriv_flags\n  bonding: register slave pointer for rx_handler\n  be2net: Bump up the version number\n  be2net: Copyright notice change. Update to Emulex instead of ServerEngines\n  e1000e: fix kconfig for crc32 dependency\n  netfilter ebtables: fix xt_AUDIT to work with ebtables\n  xen network backend driver\n  bonding: Improve syslog message at device creation time\n  bonding: Call netif_carrier_off after register_netdevice\n  bonding: Incorrect TX queue offset\n  net_sched: fix ip_tos2prio\n  xfrm: fix __xfrm_route_forward()\n  be2net: Fix UDP packet detected status in RX compl\n  Phonet: fix aligned-mode pipe socket buffer header reserve\n  netxen: support for GbE port settings\n  ...\n\nFix up conflicts in drivers/staging/brcm80211/brcmsmac/wl_mac80211.c\nwith the staging updates.\n"
    },
    {
      "commit": "bd2895eeade5f11f3e5906283c630bbdb4b57454",
      "tree": "4d98f4fcd80c7d062afce28823d08aee53e66f82",
      "parents": [
        "016aa2ed1cc9cf704cf76d8df07751b6daa9750f",
        "24d51add7438f9696a7205927bf9de3c5c787a58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix build failure introduced by s/freezeable/freezable/\n  workqueue: add system_freezeable_wq\n  rds/ib: use system_wq instead of rds_ib_fmr_wq\n  net/9p: replace p9_poll_task with a work\n  net/9p: use system_wq instead of p9_mux_wq\n  xfs: convert to alloc_workqueue()\n  reiserfs: make commit_wq use the default concurrency level\n  ocfs2: use system_wq instead of ocfs2_quota_wq\n  ext4: convert to alloc_workqueue()\n  scsi/scsi_tgt_lib: scsi_tgtd isn\u0027t used in memory reclaim path\n  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()\n  misc/iwmc3200top: use system_wq instead of dedicated workqueues\n  i2o: use alloc_workqueue() instead of create_workqueue()\n  acpi: kacpi*_wq don\u0027t need WQ_MEM_RECLAIM\n  fs/aio: aio_wq isn\u0027t used in memory reclaim path\n  input/tps6507x-ts: use system_wq instead of dedicated workqueue\n  cpufreq: use system_wq instead of dedicated workqueues\n  wireless/ipw2x00: use system_wq instead of dedicated workqueues\n  arm/omap: use system_wq in mailbox\n  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n"
    },
    {
      "commit": "986d4abbddf9e76184f6cabf66654ea8e61bcde5",
      "tree": "911372f76d30665c08957ee5422cc408137c43b7",
      "parents": [
        "4d4a76f3309edc671918a767b336492fbc80a16d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Mar 15 17:11:59 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 15 20:17:32 2011 -0400"
      },
      "message": "sunrpc: fix printk format warning\n\nFix printk format build warning:\n\nnet/sunrpc/xprtrdma/verbs.c:1463: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027dma_addr_t\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4d4a76f3309edc671918a767b336492fbc80a16d",
      "tree": "d35e5df0599c095c69bbcae6b5a3207623da07a0",
      "parents": [
        "8f68cd42d85f31fb58dd2cabf3ff4aad0a2bafd9"
      ],
      "author": {
        "name": "j223yang@asset.uwaterloo.ca",
        "email": "j223yang@asset.uwaterloo.ca",
        "time": "Thu Mar 10 12:40:28 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 15 20:16:14 2011 -0400"
      },
      "message": "xprt: remove redundant null check\n\n\u0027req\u0027 is dereferenced before checked for NULL.\nThe patch simply removes the check.\n\nSigned-off-by: Jinqiu Yang\u003ccrindy646@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f8628220bb395104697be9c447c1085846dfc97c",
      "tree": "3d62b0b7082ddc18b8a191f5e353a02a645dc4e0",
      "parents": [
        "5c635e09cec0feeeb310968e51dad01040244851"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Thu Mar 03 00:51:41 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:27 2011 -0500"
      },
      "message": "gss:krb5 only include enctype numbers in gm_upcall_enctypes\n\nMake the value in gm_upcall_enctypes just the enctype values.\nThis allows the values to be used more easily elsewhere.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5c635e09cec0feeeb310968e51dad01040244851",
      "tree": "6f776276df4d20b221c02f776a677f8719f9a0aa",
      "parents": [
        "bd7ea31b9e8a342be76e0fe8d638343886c2d8c5"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Wed Feb 09 19:45:34 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:27 2011 -0500"
      },
      "message": "RPCRDMA: Fix FRMR registration/invalidate handling.\n\nWhen the rpc_memreg_strategy is 5, FRMR are used to map RPC data.\nThis mode uses an FRMR to map the RPC data, then invalidates\n(i.e. unregisers) the data in xprt_rdma_free. These FRMR are used\nacross connections on the same mount, i.e. if the connection goes\naway on an idle timeout and reconnects later, the FRMR are not\ndestroyed and recreated.\n\nThis creates a problem for transport errors because the WR that\ninvalidate an FRMR may be flushed (i.e. fail) leaving the\nFRMR valid. When the FRMR is later used to map an RPC it will fail,\ntearing down the transport and starting over. Over time, more and\nmore of the FRMR pool end up in the wrong state resulting in\nseemingly random disconnects.\n\nThis fix keeps track of the FRMR state explicitly by setting it\u0027s\nstate based on the successful completion of a reg/inv WR. If the FRMR\nis ever used and found to be in the wrong state, an invalidate WR\nis prepended, re-syncing the FRMR state and avoiding the connection loss.\n\nSigned-off-by: Tom Tucker \u003ctom@ogc.us\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd7ea31b9e8a342be76e0fe8d638343886c2d8c5",
      "tree": "bc56c61372dcd6ff08cca605f4eb7359ce025048",
      "parents": [
        "b064eca2cf6440bf9d5843b24cc4010624031694"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Wed Feb 09 19:45:28 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:27 2011 -0500"
      },
      "message": "RPCRDMA: Fix to XDR page base interpretation in marshalling logic.\n\nThe RPCRDMA marshalling logic assumed that xdr-\u003epage_base was an\noffset into the first page of xdr-\u003epage_list. It is in fact an\noffset into the xdr-\u003epage_list itself, that is, it selects the\nfirst page in the page_list and the offset into that page.\n\nThe symptom depended in part on the rpc_memreg_strategy, if it was\nFRMR, or some other one-shot mapping mode, the connection would get\ntorn down on a base and bounds error. When the badly marshalled RPC\nwas retransmitted it would reconnect, get the error, and tear down the\nconnection again in a loop forever. This resulted in a hung-mount. For\nthe other modes, it would result in silent data corruption. This bug is\nmost easily reproduced by writing more data than the filesystem\nhas space for.\n\nThis fix corrects the page_base assumption and otherwise simplifies\nthe iov mapping logic.\n\nSigned-off-by: Tom Tucker \u003ctom@ogc.us\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cbdabc7f8bf14ca1d40ab1cb86f64b3bc09716e8",
      "tree": "16939b96996e8380d91d7e2743e811cf5c49f629",
      "parents": [
        "dc70d7b3189597f313df7bd2da849cfc39063b15"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Mar 01 01:34:20 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:43 2011 -0500"
      },
      "message": "NFSv4.1: filelayout async error handler\n\nUse our own async error handler.\nMark the layout as failed and retry i/o through the MDS on specified errors.\n\nUpdate the mds_offset in nfs_readpage_retry so that a failed short-read retry\nto a DS gets correctly resent through the MDS.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eabf5baaaaf41b6a0273043cfb06d53dca67acef",
      "tree": "d3af759bccd76ecb3b1f1b5ec027193051b55734",
      "parents": [
        "cee6a5372f8804f58acc87f07816f64db36718e2"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Feb 11 15:42:36 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:40 2011 -0500"
      },
      "message": "RPC: clarify rpc_run_task error handling\n\nrpc_run_task can only fail if it is not passed in a preallocated task.\nHowever, that is not at all clear with the current code.  So\nremove several impossible to occur failure checks.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cee6a5372f8804f58acc87f07816f64db36718e2",
      "tree": "66e07d4404e95fe7abcf60a9c72286328dd6a07f",
      "parents": [
        "f49f9baac8f63de9cbc17a0a84e04060496e8e76"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Feb 11 15:42:35 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:40 2011 -0500"
      },
      "message": "RPC: remove check for impossible condition in rpc_make_runnable\n\nqueue_work() only returns 0 or 1, never a negative value.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4cea288aaf0e11647880cc487350b1dc45d9febc",
      "tree": "6ea19d6d0b7b833f39077941a795f83b81448b36",
      "parents": [
        "3fa0b4e201d254b52a251fa348bd53e53000cff6"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Feb 22 21:54:34 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:58 2011 -0500"
      },
      "message": "sunrpc: Propagate errors from xs_bind() through xs_create_sock()\n\nxs_create_sock() is supposed to return a pointer or an ERR_PTR-encoded\nerror, but it currently returns 0 if xs_bind() fails.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: stable@kernel.org [v2.6.37]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a5e502681007779d4762fb3ef7e80a3ecd1cfe6b",
      "tree": "bfa3e8658e93fd8c64eff33cca5904c9f32ae055",
      "parents": [
        "d2224e7afbf2a6556f4f8f25bc0e96d99ec4d2bd"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sat Jan 22 21:40:20 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:54 2011 -0500"
      },
      "message": "SUNRPC: Remove resource leak in svc_rdma_send_error()\n\nWe leak the memory allocated to \u0027ctxt\u0027 when we return after\n\u0027ib_dma_mapping_error()\u0027 returns !\u003d0.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bf294b41cefcb22fc3139e0f42c5b3f06728bd5e",
      "tree": "250251c040a2d2e278b5a2ddd03c8d20a27be129",
      "parents": [
        "214d93b02c4fe93638ad268613c9702a81ed9192"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 21 11:05:41 2011 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:52 2011 -0500"
      },
      "message": "SUNRPC: Close a race in __rpc_wait_for_completion_task()\n\nAlthough they run as rpciod background tasks, under normal operation\n(i.e. no SIGKILL), functions like nfs_sillyrename(), nfs4_proc_unlck()\nand nfs4_do_close() want to be fully synchronous. This means that when we\nexit, we want all references to the rpc_task to be gone, and we want\nany dentry references etc. held by that task to be released.\n\nFor this reason these functions call __rpc_wait_for_completion_task(),\nfollowed by rpc_put_task() in the expectation that the latter will be\nreleasing the last reference to the rpc_task, and thus ensuring that the\ncallback_ops-\u003erpc_release() has been called synchronously.\n\nThis patch fixes a race which exists due to the fact that\nrpciod calls rpc_complete_task() (in order to wake up the callers of\n__rpc_wait_for_completion_task()) and then subsequently calls\nrpc_put_task() without ensuring that these two steps are done atomically.\n\nIn order to avoid adding new spin locks, the patch uses the existing\nwaitqueue spin lock to order the rpc_task reference count releases between\nthe waiting process and rpciod.\nThe common case where nobody is waiting for completion is optimised for by\nchecking if the RPC_TASK_ASYNC flag is cleared and/or if the rpc_task\nreference count is 1: in those cases we drop trying to grab the spin lock,\nand immediately free up the rpc_task.\n\nThose few processes that need to put the rpc_task from inside an\nasynchronous context and that do not care about ordering are given a new\nhelper: rpc_put_task_async().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "352b5d13c0684ba8cd103aa20cb74f105334562a",
      "tree": "a54ffeec78ed69035c4c99faa61e472230d14076",
      "parents": [
        "0997b173609b9229ece28941c118a2a9b278796e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 09 22:40:30 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 09 22:40:30 2011 -0500"
      },
      "message": "svcrpc: fix bad argument in unix_domain_find\n\n\"After merging the nfsd tree, today\u0027s linux-next build (powerpc\nppc64_defconfig) produced this warning:\n\nnet/sunrpc/svcauth_unix.c: In function \u0027unix_domain_find\u0027:\nnet/sunrpc/svcauth_unix.c:58: warning: passing argument 1 of\n+\u0027svcauth_unix_domain_release\u0027 from incompatible pointer type\nnet/sunrpc/svcauth_unix.c:41: note: expected \u0027struct auth_domain *\u0027 but\nargument\n+is of type \u0027struct unix_domain *\u0027\n\nIntroduced by commit 8b3e07ac908d (\"svcrpc: fix rare race on unix_domain\ncreation\").\"\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8b3e07ac908d005bb791410f594cce8744f6806a",
      "tree": "8b1d3cf7295110738dc8a59e3f44f443ded97859",
      "parents": [
        "5ece3cafbd88d4da5c734e1810c4a2e6474b57b2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 22:50:47 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 08 11:51:29 2011 -0500"
      },
      "message": "svcrpc: fix rare race on unix_domain creation\n\nNote that \"new\" here is not yet fully initialized; auth_domain_put\nshould be called only on auth_domains that have actually been added to\nthe hash.\n\nBefore this fix, two attempts to add the same domain at once could\ncause the hlist_del in auth_domain_put to fail.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "540c8cb6a576f34a9a0b04467f46bb6e67a1f852",
      "tree": "583e162558ea9515e58318e03f8f637bedfb9ac4",
      "parents": [
        "46d4cef9cf54f2f8b15216e3f6dad69750c69e0c"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Wed Mar 02 19:51:41 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 12:06:48 2011 -0500"
      },
      "message": "gss:krb5 only include enctype numbers in gm_upcall_enctypes\n\nMake the value in gm_upcall_enctypes just the enctype values.\nThis allows the values to be used more easily elsewhere.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "eaefd1105bc431ef329599e307a07f2a36ae7872",
      "tree": "658eeed417654c8f6015d4d5f957f5a1b5e9521f",
      "parents": [
        "04cfa852ff8dab923640500ee850d19e75bacabc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Feb 18 03:26:36 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 10:19:31 2011 -0800"
      },
      "message": "net: add __rcu annotations to sk_wq and wq\n\nAdd proper RCU annotations/verbs to sk_wq and wq members\n\nFix __sctp_write_space() sk_sleep() abuse (and sock-\u003ewq access)\n\nFix sunrpc sk_sleep() abuse too\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81",
      "tree": "8de75c837b55874cc8a81a29bdedbc62668d4481",
      "parents": [
        "4149efb22da66e326fc48baf80d628834509f7f0",
        "6f576d57f1fa0d6026b495d8746d56d949989161"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.39\n"
    },
    {
      "commit": "778be232a207e79088ba70d832ac25dfea6fbf1a",
      "tree": "307249459e5ef45c4b3651c7fc5c454cdb3e0c92",
      "parents": [
        "80c30e8de4f81851b1f712bcc596e11d53bc76f1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Jan 25 15:38:01 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 25 15:26:51 2011 -0500"
      },
      "message": "NFS do not find client in NFSv4 pg_authenticate\n\nThe information required to find the nfs_client cooresponding to the incoming\nback channel request is contained in the NFS layer. Perform minimal checking\nin the RPC layer pg_authenticate method, and push more detailed checking into\nthe NFS layer where the nfs_client can be found.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ada609ee2ac2e03bd8abb07f9b3e92cd2e650f19",
      "tree": "ccc1051a961b12448420428b5a400a6333d3e821",
      "parents": [
        "c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 25 14:35:54 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 25 14:35:54 2011 +0100"
      },
      "message": "workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n\nWQ_RESCUER is now an internal flag and should only be used in the\nworkqueue implementation proper.  Use WQ_MEM_RECLAIM instead.\n\nThis doesn\u0027t introduce any functional difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: dm-devel@redhat.com\nCc: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "b9d919a4ac6cf031b8e065f82ad8f1b0c9ed74b1",
      "tree": "3139b066396956fd3794df0cb1aa74dcc9f1cb28",
      "parents": [
        "7c955fca3e1d8132982148267d9efcafae849bb6",
        "357f54d6b38252737116a6d631f6ac28ded018ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "message": "Merge branch \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (89 commits)\n  NFS fix the setting of exchange id flag\n  NFS: Don\u0027t use vm_map_ram() in readdir\n  NFSv4: Ensure continued open and lockowner name uniqueness\n  NFS: Move cl_delegations to the nfs_server struct\n  NFS: Introduce nfs_detach_delegations()\n  NFS: Move cl_state_owners and related fields to the nfs_server struct\n  NFS: Allow walking nfs_client.cl_superblocks list outside client.c\n  pnfs: layout roc code\n  pnfs: update nfs4_callback_recallany to handle layouts\n  pnfs: add CB_LAYOUTRECALL handling\n  pnfs: CB_LAYOUTRECALL xdr code\n  pnfs: change lo refcounting to atomic_t\n  pnfs: check that partial LAYOUTGET return is ignored\n  pnfs: add layout to client list before sending rpc\n  pnfs: serialize LAYOUTGET(openstateid)\n  pnfs: layoutget rpc code cleanup\n  pnfs: change how lsegs are removed from layout list\n  pnfs: change layout state seqlock to a spinlock\n  pnfs: add prefix to struct pnfs_layout_hdr fields\n  pnfs: add prefix to struct pnfs_layout_segment fields\n  ...\n"
    },
    {
      "commit": "f0418aa4b1103f959d64dc18273efa04ee0140e9",
      "tree": "01457cfe70d614dcdb12759247212602c2c2c008",
      "parents": [
        "99de8ea962bbc11a51ad4c52e3dc93bee5f6ba70"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 08 13:48:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n\nThis allows us to reuse the xprt associated with a server connection if\none has already been set up.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "99de8ea962bbc11a51ad4c52e3dc93bee5f6ba70",
      "tree": "1cda6aaeabe8fc4e3502104005c06a3888bb0bf4",
      "parents": [
        "d75faea330dbd1873c9094e9926ae306590c0998"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 08 12:45:44 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: keep backchannel xprt as long as server connection\n\nMultiple backchannels can share the same tcp connection; from rfc 5661 section\n2.10.3.1:\n\n\tA connection\u0027s association with a session is not exclusive.  A\n\tconnection associated with the channel(s) of one session may be\n\tsimultaneously associated with the channel(s) of other sessions\n\tincluding sessions associated with other client IDs.\n\nHowever, multiple backchannels share a connection, they must all share\nthe same xid stream (hence the same rpc_xprt); the only way we have to\nmatch replies with calls at the rpc layer is using the xid.\n\nSo, keep the rpc_xprt around as long as the connection lasts, in case\nwe\u0027re asked to use the connection as a backchannel again.\n\nRequests to create new backchannel clients over a given server\nconnection should results in creating new clients that reuse the\nexisting rpc_xprt.\n\nBut to start, just reject attempts to associate multiple rpc_xprt\u0027s with\nthe same underlying bc_xprt.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d75faea330dbd1873c9094e9926ae306590c0998",
      "tree": "36b8e50ad2d94c75e77dacd98ff02036ddd0f65f",
      "parents": [
        "dcbeaa68dbbdacbbb330a86c7fc95a28473fc209"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Nov 30 19:15:01 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: move sk_bc_xprt to svc_xprt\n\nThis seems obviously transport-level information even if it\u0027s currently\nused only by the server socket code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "68c404b18f6fba404b2753622d0459c68ee128ae",
      "tree": "c1ec0bb12f19d91071b461cc2831d9d3dd4c74f3",
      "parents": [
        "d035c36c58dd9183ad6aa7875dea89893faedb55",
        "6650239a4b01077e80d5a4468562756d77afaa59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:48:02 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:48:02 2011 -0500"
      },
      "message": "Merge branch \u0027bugfixes\u0027 into nfs-for-2.6.38\n\nConflicts:\n\tfs/nfs/nfs2xdr.c\n\tfs/nfs/nfs3xdr.c\n\tfs/nfs/nfs4xdr.c\n"
    },
    {
      "commit": "6650239a4b01077e80d5a4468562756d77afaa59",
      "tree": "505c9a1dc26c26608ce6a5981093a6357d4f3638",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 08 17:45:38 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:45:01 2011 -0500"
      },
      "message": "NFS: Don\u0027t use vm_map_ram() in readdir\n\nvm_map_ram() is not available on NOMMU platforms, and causes trouble\non incoherrent architectures such as ARM when we access the page data\nthrough both the direct and the virtual mapping.\n\nThe alternative is to use the direct mapping to access page data\nfor the case when we are not crossing a page boundary, but to copy\nthe data into a linear scratch buffer when we are accessing data\nthat spans page boundaries.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: stable@kernel.org  [2.6.37]\n"
    },
    {
      "commit": "23d69b09b78c4876e134f104a3814c30747c53f1",
      "tree": "40744de4f4126c21027ce537264524095e0e7979",
      "parents": [
        "e744070fd4ff9d3114277e52d77afa21579adce2",
        "569ff2de2e1c8ac67c8df3a7367d46d0d9460a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)\n  usb: don\u0027t use flush_scheduled_work()\n  speedtch: don\u0027t abuse struct delayed_work\n  media/video: don\u0027t use flush_scheduled_work()\n  media/video: explicitly flush request_module work\n  ioc4: use static work_struct for ioc4_load_modules()\n  init: don\u0027t call flush_scheduled_work() from do_initcalls()\n  s390: don\u0027t use flush_scheduled_work()\n  rtc: don\u0027t use flush_scheduled_work()\n  mmc: update workqueue usages\n  mfd: update workqueue usages\n  dvb: don\u0027t use flush_scheduled_work()\n  leds-wm8350: don\u0027t use flush_scheduled_work()\n  mISDN: don\u0027t use flush_scheduled_work()\n  macintosh/ams: don\u0027t use flush_scheduled_work()\n  vmwgfx: don\u0027t use flush_scheduled_work()\n  tpm: don\u0027t use flush_scheduled_work()\n  sonypi: don\u0027t use flush_scheduled_work()\n  hvsi: don\u0027t use flush_scheduled_work()\n  xen: don\u0027t use flush_scheduled_work()\n  gdrom: don\u0027t use flush_scheduled_work()\n  ...\n\nFixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c\nas per Tejun.\n"
    },
    {
      "commit": "b4a45f5fe8078bfc10837dbd5b98735058bc4698",
      "tree": "df6f13a27610a3ec7eb4a661448cd779a8f84c79",
      "parents": [
        "01539ba2a706ab7d35fc0667dff919ade7f87d63",
        "b3e19d924b6eaf2ca7d22cba99a517c5171007b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin: (57 commits)\n  fs: scale mntget/mntput\n  fs: rename vfsmount counter helpers\n  fs: implement faster dentry memcmp\n  fs: prefetch inode data in dcache lookup\n  fs: improve scalability of pseudo filesystems\n  fs: dcache per-inode inode alias locking\n  fs: dcache per-bucket dcache hash locking\n  bit_spinlock: add required includes\n  kernel: add bl_list\n  xfs: provide simple rcu-walk ACL implementation\n  btrfs: provide simple rcu-walk ACL implementation\n  ext2,3,4: provide simple rcu-walk ACL implementation\n  fs: provide simple rcu-walk generic_check_acl implementation\n  fs: provide rcu-walk aware permission i_ops\n  fs: rcu-walk aware d_revalidate method\n  fs: cache optimise dentry and inode for rcu-walk\n  fs: dcache reduce branches in lookup path\n  fs: dcache remove d_mounted\n  fs: fs_struct use seqlock\n  fs: rcu-walk for path lookup\n  ...\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "4a19de0f4b693139bb10b7cc3cfe1f618576ba67",
      "tree": "c947ed534254d08c5b8836349303844134a13d19",
      "parents": [
        "42acd021824578fa0eeb6eb58d457c23ec5dc9c0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:35 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:25 2011 -0500"
      },
      "message": "NFS rename client back channel transport field\n\nDifferentiate from server backchannel\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nAcked-by: Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c2618c6f29c41a0a966f14f05c8bf45fcabb750",
      "tree": "c247cfda9f847028e1d43cab1e69d2cd8a2146a4",
      "parents": [
        "f4eecd5da3422e82e88e36c33cbd2595eebcacb1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:31 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:24 2011 -0500"
      },
      "message": "NFS associate sessionid with callback connection\n\nThe sessions based callback service is started prior to the CREATE_SESSION call\nso that it can handle CB_NULL requests which can be sent before the\nCREATE_SESSION call returns and the session ID is known.\n\nSet the callback sessionid after a sucessful CREATE_SESSION.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16b2d1e1d12de000404d7c845d0db1226511f84d",
      "tree": "8ad973bbcee7a1d5bb34ce855ef41324e253c181",
      "parents": [
        "1f11a034cdc4b45ee56d51b87a9e37cb776fb15b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:27 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC register and unregister the back channel transport\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f11a034cdc4b45ee56d51b87a9e37cb776fb15b",
      "tree": "7d99e63af6a6c0b371ab1ee48da16edc73ab942c",
      "parents": [
        "71e161a6a9fa021a280e564254fcda894e6fbd14"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:26 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC new transport for the NFSv4.1 shared back channel\n\nMove the current sock create and destroy routines into the new transport ops.\nBack channel socket will be destroyed by the svc_closs_all call in svc_destroy.\n\nAdded check: only TCP supported on shared back channel.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nAcked-by: Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "71e161a6a9fa021a280e564254fcda894e6fbd14",
      "tree": "df454328272a688e7a8a160c32ec4ab4f4ec7702",
      "parents": [
        "4b5b3ba16be1b195d2e1161746637acd4b9fed4f"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:25 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC fix bc_send print\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b5b3ba16be1b195d2e1161746637acd4b9fed4f",
      "tree": "6e58eb24836d73b8fd756d9dff7199a88a9ebafe",
      "parents": [
        "64c2ce8b72eceec4030b04bca32d098b3d1431bb"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:24 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC move svc_drop to caller of svc_process_common\n\nThe NFSv4.1 shared back channel does not need to call svc_drop because the\ncallback service never outlives the single connection it services, and it\nreuses it\u0027s buffers and keeps the trasport.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nAcked-by: Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdef7aa5d4020fd94ffcbf0078d6bd9e5a111e19",
      "tree": "270c2b03e9cb5cf5451b0e229c5a328727ef743a",
      "parents": [
        "6bab93f87ec703bf6650875881b11f9f27d7da56"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 14:12:47 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:25 2011 -0500"
      },
      "message": "svcrpc: ensure cache_check caller sees updated entry\n\nSupposes cache_check runs simultaneously with an update on a different\nCPU:\n\n\tcache_check\t\t\ttask doing update\n\t^^^^^^^^^^^\t\t\t^^^^^^^^^^^^^^^^^\n\n\t1. test for CACHE_VALID\t\t1\u0027. set entry-\u003edata\n\t   \u0026 !CACHE_NEGATIVE\n\n\t2. use entry-\u003edata\t\t2\u0027. set CACHE_VALID\n\nIf the two memory writes performed in step 1\u0027 and 2\u0027 appear misordered\nwith respect to the reads in step 1 and 2, then the caller could get\nstale data at step 2 even though it saw CACHE_VALID set on the cache\nentry.\n\nAdd memory barriers to prevent this.\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6bab93f87ec703bf6650875881b11f9f27d7da56",
      "tree": "1042182b79c43747404fe91b03b3b958246c3a9c",
      "parents": [
        "da165dd60e136d0609e0a2c0c2a9b9a5372200d6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 03 15:10:27 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:24 2011 -0500"
      },
      "message": "svcrpc: take lock on turning entry NEGATIVE in cache_check\n\nWe attempt to turn a cache entry negative in place.  But that entry may\nalready have been filled in by some other task since we last checked\nwhether it was valid, so we could be modifying an already-valid entry.\nIf nothing else there\u0027s a likely leak in such a case when the entry is\neventually put() and contents are not freed because it has\nCACHE_NEGATIVE set.\n\nSo, take the cache_lock just as sunrpc_cache_update() does.\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9e701c610923aaeac8b38b9202a686d1cc9ee35d",
      "tree": "1b2d65df63858a2cd35a4154e6d8a9fea3e716a3",
      "parents": [
        "d76d1815f3e72fb627ad7f95ef63120b0a557c9c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 21:56:36 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:22 2011 -0500"
      },
      "message": "svcrpc: simpler request dropping\n\nCurrently we use -EAGAIN returns to determine when to drop a deferred\nrequest.  On its own, that is error-prone, as it makes us treat -EAGAIN\nreturns from other functions specially to prevent inadvertent dropping.\n\nSo, use a flag on the request instead.\n\nReturning an error on request deferral is still required, to prevent\nfurther processing, but we no longer need worry that an error return on\nits own could result in a drop.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d76d1815f3e72fb627ad7f95ef63120b0a557c9c",
      "tree": "e639629aabf50fe9b5441286ff12cfc4ec77de98",
      "parents": [
        "3beb6cd1d448e7ded938bbd676493e6a08e9a6cd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 21:28:34 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:21 2011 -0500"
      },
      "message": "svcrpc: avoid double reply caused by deferral race\n\nCommit d29068c431599fa \"sunrpc: Simplify cache_defer_req and related\nfunctions.\" asserted that cache_check() could determine success or\nfailure of cache_defer_req() by checking the CACHE_PENDING bit.\n\nThis isn\u0027t quite right.\n\nWe need to know whether cache_defer_req() created a deferred request,\nin which case sending an rpc reply has become the responsibility of the\ndeferred request, and it is important that we not send our own reply,\nresulting in two different replies to the same request.\n\nAnd the CACHE_PENDING bit doesn\u0027t tell us that; we could have\nsuccesfully created a deferred request at the same time as another\nthread cleared the CACHE_PENDING bit.\n\nSo, partially revert that commit, to ensure that cache_check() returns\n-EAGAIN if and only if a deferred request has been created.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bdd5f05d91e8ae68075b812ce244c918d3d752cd",
      "tree": "45e5e9d403ee26a666cd9fbcfee5e26ea6511d50",
      "parents": [
        "31f7aa65f536995c6d933c57230919ae408952a5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 04 13:31:45 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:48:02 2011 -0500"
      },
      "message": "SUNRPC: Remove more code when NFSD_DEPRECATED is not configured\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n[bfields@redhat.com: moved svcauth_unix_purge outside ifdef\u0027s.]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "31f7aa65f536995c6d933c57230919ae408952a5",
      "tree": "61b9620af68d846b70a1b256d29c2a0b91febef0",
      "parents": [
        "22b6dee842c6341b49bc09cc5728eb2f8f2b3766"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 24 14:03:38 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:47:29 2011 -0500"
      },
      "message": "svcrpc: modifying valid sunrpc cache entries is racy\n\nOnce a sunrpc cache entry is VALID, we should be replacing it (and\nallowing any concurrent users to destroy it on last put) instead of\ntrying to update it in place.\n\nOtherwise someone referencing the ip_map we\u0027re modifying here could try\nto use the m_client just as we\u0027re putting the last reference.\n\nThe bug should only be seen by users of the legacy nfsd interfaces.\n\n(Thanks to Neil for suggestion to use sunrpc_invalidate.)\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "beb0f0a9fba1fa98b378329a9a5b0a73f25097ae",
      "tree": "33b5cdc0d628a48da74e2aadd0caafb6898d6350",
      "parents": [
        "51f128ea1c9224c1e3cf6c6a1498431d97699668"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 20 21:19:26 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 04 13:10:38 2011 -0500"
      },
      "message": "kernel panic when mount NFSv4\n\nOn Tue, 2010-12-14 at 16:58 +0800, Mi Jinlong wrote:\n\u003e Hi,\n\u003e\n\u003e When testing NFSv4 at RHEL6 with kernel 2.6.32, I got a kernel panic\n\u003e at NFS client\u0027s __rpc_create_common function.\n\u003e\n\u003e The panic place is:\n\u003e   rpc_mkpipe\n\u003e     __rpc_lookup_create()          \u003c\u003d\u003d\u003d find pipefile *idmap*\n\u003e     __rpc_mkpipe()                 \u003c\u003d\u003d\u003d pipefile is *idmap*\n\u003e       __rpc_create_common()\n\u003e        ******  BUG_ON(!d_unhashed(dentry)); ******    *panic*\n\u003e\n\u003e It means that the dentry\u0027s d_flags have be set DCACHE_UNHASHED,\n\u003e but it should not be set here.\n\u003e\n\u003e Is someone known this bug? or give me some idea?\n\u003e\n\u003e A reproduce program is append, but it can\u0027t reproduce the bug every time.\n\u003e the export is: \"/nfsroot       *(rw,no_root_squash,fsid\u003d0,insecure)\"\n\u003e\n\u003e And the panic message is append.\n\u003e\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e #!/bin/sh\n\u003e\n\u003e LOOPTOTAL\u003d768\n\u003e LOOPCOUNT\u003d0\n\u003e ret\u003d0\n\u003e\n\u003e while [ $LOOPCOUNT -ne $LOOPTOTAL ]\n\u003e do\n\u003e \t((LOOPCOUNT +\u003d 1))\n\u003e \tservice nfs restart\n\u003e \t/usr/sbin/rpc.idmapd\n\u003e \tmount -t nfs4 127.0.0.1:/ /mnt|| return 1;\n\u003e \tls -l /var/lib/nfs/rpc_pipefs/nfs/*/\n\u003e \tumount /mnt\n\u003e \techo $LOOPCOUNT\n\u003e done\n\u003e\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e Code: af 60 01 00 00 89 fa 89 f0 e8 64 cf 89 f0 e8 5c 7c 64 cf 31 c0 8b 5c 24 10 8b\n\u003e 74 24 14 8b 7c 24 18 8b 6c 24 1c 83 c4 20 c3 \u003c0f\u003e 0b eb fc 8b 46 28 c7 44 24 08 20\n\u003e de ee f0 c7 44 24 04 56 ea\n\u003e EIP:[\u003cf0ee92ea\u003e] __rpc_create_common+0x8a/0xc0 [sunrpc] SS:ESP 0068:eccb5d28\n\u003e ---[ end trace 8f5606cd08928ed2]---\n\u003e Kernel panic - not syncing: Fatal exception\n\u003e Pid:7131, comm: mount.nfs4 Tainted: G     D   -------------------2.6.32 #1\n\u003e Call Trace:\n\u003e  [\u003cc080ad18\u003e] ? panic+0x42/0xed\n\u003e  [\u003cc080e42c\u003e] ? oops_end+0xbc/0xd0\n\u003e  [\u003cc040b090\u003e] ? do_invalid_op+0x0/0x90\n\u003e  [\u003cc040b10f\u003e] ? do_invalid_op+0x7f/0x90\n\u003e  [\u003cf0ee92ea\u003e] ? __rpc_create_common+0x8a/0xc0[sunrpc]\n\u003e  [\u003cf0edc433\u003e] ? rpc_free_task+0x33/0x70[sunrpc]\n\u003e  [\u003cf0ed6508\u003e] ? prc_call_sync+0x48/0x60[sunrpc]\n\u003e  [\u003cf0ed656e\u003e] ? rpc_ping+0x4e/0x60[sunrpc]\n\u003e  [\u003cf0ed6eaf\u003e] ? rpc_create+0x38f/0x4f0[sunrpc]\n\u003e  [\u003cc080d80b\u003e] ? error_code+0x73/0x78\n\u003e  [\u003cf0ee92ea\u003e] ? __rpc_create_common+0x8a/0xc0[sunrpc]\n\u003e  [\u003cc0532bda\u003e] ? d_lookup+0x2a/0x40\n\u003e  [\u003cf0ee94b1\u003e] ? rpc_mkpipe+0x111/0x1b0[sunrpc]\n\u003e  [\u003cf10a59f4\u003e] ? nfs_create_rpc_client+0xb4/0xf0[nfs]\n\u003e  [\u003cf10d6c6d\u003e] ? nfs_fscache_get_client_cookie+0x1d/0x50[nfs]\n\u003e  [\u003cf10d3fcb\u003e] ? nfs_idmap_new+0x7b/0x140[nfs]\n\u003e  [\u003cc05e76aa\u003e] ? strlcpy+0x3a/0x60\n\u003e  [\u003cf10a60ca\u003e] ? nfs4_set_client+0xea/0x2b0[nfs]\n\u003e  [\u003cf10a6d0c\u003e] ? nfs4_create_server+0xac/0x1b0[nfs]\n\u003e  [\u003cc04f1400\u003e] ? krealloc+0x40/0x50\n\u003e  [\u003cf10b0e8b\u003e] ? nfs4_remote_get_sb+0x6b/0x250[nfs]\n\u003e  [\u003cc04f14ec\u003e] ? kstrdup+0x3c/0x60\n\u003e  [\u003cc0520739\u003e] ? vfs_kern_mount+0x69/0x170\n\u003e  [\u003cf10b1a3c\u003e] ? nfs_do_root_mount+0x6c/0xa0[nfs]\n\u003e  [\u003cf10b1b47\u003e] ? nfs4_try_mount+0x37/0xa0[nfs]\n\u003e  [\u003cf10afe6d\u003e] ? nfs4_validate_text_mount_data+-x7d/0xf0[nfs]\n\u003e  [\u003cf10b1c42\u003e] ? nfs4_get_sb+0x92/0x2f0\n\u003e  [\u003cc0520739\u003e] ? vfs_kern_mount+0x69/0x170\n\u003e  [\u003cc05366d2\u003e] ? get_fs_type+0x32/0xb0\n\u003e  [\u003cc052089f\u003e] ? do_kern_mount+0x3f/0xe0\n\u003e  [\u003cc053954f\u003e] ? do_mount+0x2ef/0x740\n\u003e  [\u003cc0537740\u003e] ? copy_mount_options+0xb0/0x120\n\u003e  [\u003cc0539a0e\u003e] ? sys_mount+0x6e/0xa0\n\nHi,\n\nDoes the following patch fix the problem?\n\nCheers\n  Trond\n\n--------------------------\nSUNRPC: Fix a BUG in __rpc_create_common\n\nFrom: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\nMi Jinlong reports:\n\nWhen testing NFSv4 at RHEL6 with kernel 2.6.32, I got a kernel panic\nat NFS client\u0027s __rpc_create_common function.\n\nThe panic place is:\n  rpc_mkpipe\n      __rpc_lookup_create()          \u003c\u003d\u003d\u003d find pipefile *idmap*\n      __rpc_mkpipe()                 \u003c\u003d\u003d\u003d pipefile is *idmap*\n        __rpc_create_common()\n         ******  BUG_ON(!d_unhashed(dentry)); ****** *panic*\n\nThe test is wrong: we can find ourselves with a hashed negative dentry here\nif the idmapper tried to look up the file before we got round to creating\nit.\n\nJust replace the BUG_ON() with a d_drop(dentry).\n\nReported-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "17f7f4d9fcce8f1b75b5f735569309dee7665968",
      "tree": "14d7e49ca0053a0fcab3c33b5023bf3f90c5c08a",
      "parents": [
        "041110a439e21cd40709ead4ffbfa8034619ad77",
        "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/fib_frontend.c\n"
    },
    {
      "commit": "b3bcedadf23264c3b7afcbfbfe1965a17ef1352c",
      "tree": "119c1b242836023b2fca36a7ec7d9642780d2908",
      "parents": [
        "aa69947399a119d7f1b35bbcd62c849839b35449"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Dec 21 10:52:24 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 21 11:51:26 2010 -0500"
      },
      "message": "net/sunrpc/clnt.c: Convert sprintf_symbol to %ps\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3c0ceea83ba3741226ea04eb1804d254da2642f",
      "tree": "dfbc7b1945536e95e5d52dc88f3044add69ea98f",
      "parents": [
        "66c941f4aa8aef397a757001af61073db23b39e5"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Nov 14 18:08:11 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:22 2010 -0500"
      },
      "message": "net/sunrpc/auth_gss/gss_krb5_crypto.c: Use normal negative error value return\n\nAnd remove unnecessary double semicolon too.\n\nNo effect to code, as test is !\u003d 0.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "66c941f4aa8aef397a757001af61073db23b39e5",
      "tree": "5b3e1d1d210eef44f99c9ff716ec17cba93a89fd",
      "parents": [
        "5b6a599f0da3722dea9ecc01d97f54061662ce49"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Wed Dec 15 14:47:20 2010 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:21 2010 -0500"
      },
      "message": "net: sunrpc: kill unused macros\n\nThese macros never be used for several years.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3942302ea9e1dffa933021b20bf1642046e7641b",
      "tree": "c6b878198ab33ee5893f24b7366b9c209d71a2dc",
      "parents": [
        "7c96aef75949a56ec427fc6a2522dace2af33605"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Nov 15 11:27:01 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:19 2010 -0500"
      },
      "message": "sunrpc: svc_sock_names should hold ref to socket being closed.\n\nCurrently svc_sock_names calls svc_close_xprt on a svc_sock to\nwhich it does not own a reference.\nAs soon as svc_close_xprt sets XPT_CLOSE, the socket could be\nfreed by a separate thread (though this is a very unlikely race).\n\nIt is safer to hold a reference while calling svc_close_xprt.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7c96aef75949a56ec427fc6a2522dace2af33605",
      "tree": "ca65368231d4c5b39e3adce558bfe15d712809c7",
      "parents": [
        "18b631f83810e95eeb2e1839889b27142bd8d6d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Nov 15 11:27:01 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:18 2010 -0500"
      },
      "message": "sunrpc: remove xpt_pool\n\nThe xpt_pool field is only used for reporting BUGs.\nAnd it isn\u0027t used correctly.\n\nIn particular, when it is cleared in svc_xprt_received before\nXPT_BUSY is cleared, there is no guarantee that either the\ncompiler or the CPU might not re-order to two assignments, just\nsetting xpt_pool to NULL after XPT_BUSY is cleared.\n\nIf a different cpu were running svc_xprt_enqueue at this moment,\nit might see XPT_BUSY clear and then xpt_pool non-NULL, and\nso BUG.\n\nThis could be fixed by calling\n  smp_mb__before_clear_bit()\nbefore the clear_bit.  However as xpt_pool isn\u0027t really used,\nit seems safest to simply remove xpt_pool.\n\nAnother alternate would be to change the clear_bit to\nclear_bit_unlock, and the test_and_set_bit to test_and_set_bit_lock.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    }
  ],
  "next": "ec66ee3797e5848356cf593c6ec7aabf30a00cf1"
}
